
D.8.3.12 triang_solve
Procedure from library solve.lib (see solve_lib).
 Usage:
 triang_solve(l,p [,d] ); l=list, p,d=integers
l is a list of finitely many triangular systems, such that the union of
their varieties equals the variety of the initial ideal.
p>0: gives precision of complex numbers in digits,
d>0: gives precision (1<d<p) for nearzerodetermination,
(default: d=1/2*p).
 Assume:
 the ground field has char 0;
l was computed using the algorithm of Lazard or the algorithm of
Moeller (see triang.lib).
 Return:
 ring
R with the same number of variables, but with complex
coefficients (and precision p). R comes with a list
rlist of numbers, in which the complex roots of l are stored.
Example:
 LIB "solve.lib";
ring r = 0,(x,y),lp;
// compute the intersection points of two curves
ideal s= x2 + y2  10, x2 + xy + 2y2  16;
def R=triang_solve(triangLfak(stdfglm(s)),10);
==>
==> // 'triang_solve' created a ring, in which a list rlist of numbers (the
==> // complex solutions) is stored.
==> // To access the list of complex solutions, type (if the name R was assig\
ned
==> // to the return value):
==> setring R; rlist;
setring R; rlist;
==> [1]:
==> [1]:
==> 1
==> [2]:
==> 3
==> [2]:
==> [1]:
==> 1
==> [2]:
==> 3
==> [3]:
==> [1]:
==> 2.8284271247
==> [2]:
==> 1.4142135624
==> [4]:
==> [1]:
==> 2.8284271247
==> [2]:
==> 1.4142135624

