Calculation of maximal order fails even when using "maximize_at_primes"

asked 2018-01-18 15:58:26 +0200

biasse gravatar image

updated 2018-01-18 21:12:12 +0200

I would like to calculate the maximal order of a field for which I already know at which primes we should maximize.

This means that the discriminant does not have to be factored, which is normally the bottleneck of this algorithm.

I did

d = [2,3,5,7,11,13,17,19]
K.<y> = NumberField([x^2 - di for di in d], maximize_at_primes=[2])
RR = K.maximal_order()

The last command did not finish overnight, but gave the following warning:

"***   Warning: MPQS: number too big to be factored with MPQS,
    giving up."

Which seems to indicate that the program is indeed trying to perform a large factorization despite the command "maximize_at_primes=[2]"

Meanwhile, Magma has no problem performing this computation in a few hours:

R<x> := PolynomialRing(Integers());
K := NumberField([x^2 - 2,x^2 - 3 , x^2-5,x^2-7,x^2 - 11,x^2 - 13 , x^2 - 17 , x^2 - 19]:Abs);
O := MaximalOrder(K: Ramification := [2]);

Am I doing something wrong ?

JF Biasse

edit retag flag offensive close merge delete

Comments

It works with

dList = [2, 3, 5, 7, 11, 13, 17, ] # 19 ]
R.<x> = QQ[x]
K.<y> = NumberField( [x^2 - d for d in dList], maximize_at_primes=[2] )
OK = K.maximal_order()

but...

***   Warning: increasing stack size to 32000000.
verbose 1 (6543: free_module.py, multimod echelon) Multimodular echelon algorithm on 128 x 128 matrix
verbose 2 (6543: free_module.py, multimod echelon) height_guess = 2076385617243711727353355782311411899772372408038309933386259999677333955016854228620026448792887828786397991320445399766866678950732790947545067887986660268471278769895143492372467042027529879207196673345345584512908590113904289000422474215540912881...

and there are many other digits (totally 423).

Adding the 19 in the dList seems to be too much for the resources here.

dan_fulea gravatar imagedan_fulea ( 2018-01-20 05:28:45 +0200 )edit