#### 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]:
    ==>    [1]:
    ==>       -1
    ==>    [2]:
    ==>       3
    ==> [2]:
    ==>    [1]:
    ==>       1
    ==>    [2]:
    ==>       -3
    ==> [3]:
    ==>    [1]:
    ==>       -2.8284271247
    ==>    [2]:
    ==>       -1.4142135624
    ==> [4]:
    ==>    [1]:
    ==>       2.8284271247
    ==>    [2]:
    ==>       1.4142135624

User manual for Singular version 4-0-3, 2016, generated by texi2html.