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

 


OrderShort

Tries to find a "better" primitive polynomial for the given order.

Syntax:

o1 := OrderShort(o);
o1 := OrderShort(o, modus);
o1 := OrderShort(o, modus, iterations);

order
  o1  
order
  o  
integer
  modus  
integer
  iterations  

See also:  Order

Description:

Tries to find a polynomial for which the corresponding equation order is of smaller index. If modus is given (and not zero), the search is for a polynomial for which modus does not divide the index of the equation order. When using on large fields, this routine may take a long time (O(2^{deg})). You can specify an upper bound for the number of iterations with the optional third argument. If an invalid or no argument is given, this bound is set to 15. Note that this function only tries to find a better polynomial, it may fail, even if there is a better one.


Example:

This function is useful, if you merge two fields. The final equation order is a maximal order.

kash> o1 := Order(Z,2,2);
Generating polynomial: x^2 - 2

kash> o2:= Order(o1,2,3);
      F[1]
        /
       /
   E1[1]
  /
 /
Q
F  [ 1]     x^2 - 3
E 1[ 1]     x^2 - 2

kash> o3:=OrderAbs(o2);
Generating polynomial: x^4 - 10*x^2 + 1

kash> o4:=OrderShort(o3);
> Generating polynomial: x^4 - 4*x^2 + 1
Discriminant: 2304 



<- back[back] [prev] [next] [index] [root]