[back] [prev] [next] [index] [root]

 


PolySig

Computes the signature of a monic squarefree polynomial.

Syntax:

s := PolySig(f);

polynomial
  f  
list
  s  

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]