# Singular          #### 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 near-zero-determination,
(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 ==> : ==> 3 ==> : ==> : ==> 1 ==> : ==> -3 ==> : ==> : ==> -2.828427125 ==> : ==> -1.414213562 ==> : ==> : ==> 2.828427125 ==> : ==> 1.414213562 ```

### Misc 