D.7.5.5 Roots
.............
Procedure from library zeroset.lib (see zeroset_lib).

Usage:
Roots(f); where f is a polynomial

Purpose:
compute all roots of f in a finite extension of the ground field
without multiplicities.

Return:
ring, a polynomial ring over an extension field of the ground field,
containing a list 'roots' and polynomials 'newA' and 'f':
    - 'roots' is the list of roots of the polynomial f (no multiplicities)
  - if the ground field is Q(a') and the extension field is Q(a), then
    'newA' is the representation of a' in Q(a). 
    If the basering contains a parameter 'a' and the minpoly remains unchanged
    then 'newA' = 'a'.
    If the basering does not contain a parameter then 'newA' = 'a' (default).
  - 'f' is the polynomial f in Q(a) (a' being substituted by 'newA')
  

Assume:
ground field to be Q or a simple extension of Q given by a minpoly

Example:
LIB "zeroset.lib";
ring R = (0,a), x, lp;
minpoly = a2+1;
poly f = x3 - a;
def R1 = Roots(f);
==> 
==> // 'Roots' created a new ring which contains the list 'roots' and
==> // the polynomials 'f' and 'newA'
==> // To access the roots, newA and the new representation of f, type
==>    def R = Roots(f); setring R; roots; newA; f;
==> 
setring R1;
minpoly;
==> (a4-a2+1)
newA;
==> (a3)
f;
==> x3+(-a3)
roots;
==> [1]:
==>    (-a3)
==> [2]:
==>    (a3-a)
==> [3]:
==>    (a)
map F;
F[1] = roots[1];
F(f);
==> 0

<font size="-1">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; User manual for <a href="http://www.singular.uni-kl.de/"><i>Singular</i></a> version 2-0-4, October 2002,
generated by <a href="http://www.gnu.org/software/texinfo/"><i>texi2html</i></a>.
</font>

</body>
</html>
