[back] [prev] [next] [index] [root]
PolySig
Computes the signature of a monic squarefree polynomial.
Syntax:
s := PolySig(f);
Description:
Computes the signature of a monic squarefree polynomial f(x)
of degree n over {\Bbb Z}
or over an absolut order o.
In the first case the PolySig function returns a
list containing the number r_1 of real roots and the
number r_2 of pairs of complex roots of the given polynomial.
In the second case the PolySig function returns a
list s containing lists of the type above.
Let [r_1, r_2] be the signature of the generating polynomial
of o and for 1\le i\le r_1 let
f^{(i)}(x)\in {\Bbb R}[x] be the polynomial received
by applying the i-the real embedding of Q(o) in {\Bbb C}
to the coefficients of f.
The i-th entry of s is the
signature of the polynomial
f^{(i)}(x)\in {\Bbb R}[x] (1\le i\le r_1).
For r_1+1\le i\le r_1 + r_2 the i-th entry of s is
[n, 0].
The algorithm is based on cite[Algorithm 4.1.11]{Cohen}.
Example:
kash> f:= Poly(Zx,[1,7,4,9,6,1]);
x^5 + 7*x^4 + 4*x^3 + 9*x^2 + 6*x + 1
kash> s:= PolySig(f);
[ 3, 1 ]
kash> p:= Poly(Zx,[1,1,1,0,0,-2]);
x^5 + x^4 + x^3 - 2
kash> o:= Order(p);
Generating polynomial: x^5 + x^4 + x^3 - 2
kash> ox:= PolyAlg(o);
Univariate Polynomial Ring in x over Generating polynomial: x^5 + x^4 + x^3 - \
2
kash> f:= Poly(ox,[Elt(o,[1,0,0,0,0]),Elt(o,[-12,13,3,20,-19]),
> Elt(o,[-1,12,-5,7,-12])]);
x^2 + [-12, 13, 3, 20, -19]*x + [-1, 12, -5, 7, -12]
kash> PolySig(f);
> [ [ 2, 0 ], [ 2, 0 ], [ 2, 0 ] ]
<- back[back] [prev] [next] [index] [root]