| #### D.8.4.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]:
    ==>    [1]:
    ==> -1
    ==>    [2]:
    ==> 3
    ==> [2]:
    ==>    [1]:
    ==> 1
    ==>    [2]:
    ==> -3
    ==> [3]:
    ==>    [1]:
    ==> -2.828427125
    ==>    [2]:
    ==> -1.414213562
    ==> [4]:
    ==>    [1]:
    ==> 2.828427125
    ==>    [2]:
    ==> 1.414213562

User manual for Singular version 4.4.1, 2025, generated by texi2html.