On Mon, Jul 28, 2003 at 01:32:25PM +0100, Derek Holt wrote: > Dear GAP Forum, > > (I sent this message early in July, but I did not see it appear in the > GAP Forum, so apologies if it appears twice!) > > I have an expression, z, say, involving the n-th roots of unity E(n), which > evaluates to a real number (i.e. ComplexCojugate(z) = z.) For example > z := E(5) + E(5)^-1 + E(3) + E(3)^-1; > > Is there any way to test within GAP whether z is greater than 0, numerically?
I believe there is two answers:
1) You can't, because z is defined up to conjugacy and some conjugates
can be positive and other negative. For example z:=E(8)+E(-8) can be both
sqrt(2) and -sqrt(2).
2) You can use Sturm algorithm with the minimal polynomial of z.
At least that will tell you how many positive conjugates there are.
I don't know if this algorithm is available in GAP, but it is not
difficult to implement.
In your example, Sturm algorithm show there are two negative roots.