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

 


OrderPMaximal

Computes the p-maximal overorder of an order.

Syntax:

op := OrderPMaximal(o,p, str);
op := OrderPMaximal(o,p,b, str);

order
  op  
order
  o  
rational prime or prime ideal
  p  
integer
  b  
up to 3 optional strings
   str  

See also:  OrderMaximal, Order

Description:

Let o be an arbitrary order and let p be a prime (in the absolute case: a rational prime number, in the relative case a prime ideal). OrderPMaximal computes the p-maximal overorder o_p of o subject to the constraint \nu_p(o_p:o) \le b. If the third argument b is omitted, its default value is \infty. You can control the algorithm and additional techniques using the optional argument list str (1-3 strings) with the values {\tt "Round2" XOR "Round4", "Split" XOR "NoSplit", "Dedekind" XOR "NoDedekind".} Their behavior is explained in the description of OrderMaximal. A special order of these strings is not necessary, but you can use just one of these devices in each string. If you leave one of them unspecified, the algorithm tries to find the best solution (with respect to the running time). If you want further information about the Round2-Algorithm and the Dedekind-test, see Fr1, about the Round4-Algorithm and algebra-splitting see Bai1.


Example:

Compute a maximal order by computing p-maximal orders:

kash> o := Order (Poly (Zx,[1,0, 73, -280, -2399]));
Generating polynomial: x^4 + 73*x^2 - 280*x - 2399

kash> Factor (Abs (Disc (o)));
[ [ 2, 4 ], [ 5, 2 ], [ 11, 1 ], [ 19, 1 ], [ 191, 1 ], [ 823, 2 ] ]
kash> O := OrderPMaximal (o, 2, 4,"Round4");;
kash> O := OrderPMaximal (O, 5, 2,"Round2", "NoSplit");;
kash> O := OrderPMaximal (O, 823);;
kash> Disc (O);
-997975



Example:

We test our results:

kash> O := OrderMaximal (O);;
kash> Disc (O);
> -997975


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