edgarcosta / endomorphisms

Rigorous computation of the endomorphism ring of a Jacobian
GNU General Public License v2.0
10 stars 8 forks source link

PolarizationBasis issues #32

Closed gmarus77 closed 4 years ago

gmarus77 commented 4 years ago

I have issues trying to run PolarizationBasis(). Application of this function to some period matrix results in this error for me:

In file "/Applications/Magma/package/endomorphisms/endomorphisms/magma/heuristi\ c/Linear.m", line 18, column 46:

return NumericalSolution(A, B : Epsilon := CCepscomp); ^ Runtime error in: Attribute 'epscomp' for this structure is valid but not assigned

I am not able to understand what goes wrong..

edgarcosta commented 4 years ago

@gmarus77, could you give us the input matrix? For example with:

printf "%m", P;
JRSijsling commented 4 years ago

The reason for this error is most like that one should define any matrix over a ComplexFieldExtra rather than over a ComplexField. So for example

CC<I> = ComplexFieldExtra(300);

followed by a line defining the matrix. Of course the precision used should not be higher than that of the matrix itself.

The reason for this annoying convention is that LLL calculations are fairly finnicky, and that adding these extra parameters helps when things go wrong. I will take care that they are not needed in PolarizationBasis in the next push.

JRSijsling commented 4 years ago

The latest push should solve this issue. There is a corresponding example file in examples/Polarizations.m. Please let me know if this indeed works for you.

gmarus77 commented 4 years ago

@edgarcosta I have been using hcperiods to compute the period matrices and all my attempts resulted in that error. Here is one example of such a matrix that comes from a curve $y^3=x^5-1$ with prec:=100.

> printf "%m", MB; KMatrixSpace(ComplexField(100), 4, 8) ! Matrix(ComplexField(100), 4, 8, [ 2.45667355330102809921676187465783828668660845366014678883572161764810309697173\ 8245253037149674559190p100 + 1.418361137309383011753470676696722525498747606135\ 394684259711212760048267893473023942597853633159786p100*$.1, -4.5647690330004277777125508616431991041937434590844246505814935127808922386218\ 69464203407020206370062p100 - 0.47977655837795140511883282984933823504458225384\ 25204163483487731297428088383055497571911701726533359p100*$.1, 2.69788320419578755499168552608405805653947663577639677824148319104282661547837\ 2293183022978911685739p100 - 3.713317665797921305842294626195403091896330917243\ 398675322884997326485274617375925006584526314372666p100*$.1, 1.15379889531678513496013457749573557689222035774419131789309465541225891339489\ 0196895561461886759105p100 - 1.998438308405516206496075118987209199844063836527\ 792606873280624384623826503624903536323950716308436p100*$.1, 3.40636787200652057592804297299784707859727738744854528074004007347712706299644\ 1709028029506981885522E-108p100 - 2.8367222746187660235069413533934450509974952\ 12270789368519422425520096535786946047885195707266319571p100*$.1, 1.86688582880464022272086533555914104765426682330802787234001032173806562314349\ 7171020384041294684323p100 - 4.193094224175872710961127456044741326940913171085\ 919091671233770456228083455681474763775696487026002p100*$.1, 4.56476903300042777771255086164319910419374345908442465058149351278089223862186\ 9464203407020206370062p100 - 0.479776558377951405118832829849338235044582253842\ 5204163483487731297428088383055497571911701726533359p100*$.1, -2.3075977906335702699202691549914711537844407154883826357861893108245178267897\ 80393791122923773518210p100 - 1.35451903247634763631185179927942984527232724472\ 5951819069630157707969474184619367009896173109338055E-107p100*$.1, 1.31003541399200751795172021120871502394829393429669848992833520865387417054243\ 2764048782411450248537p100 - 0.756349298916228371251741641887834695117210051749\ 0223451470244127490240694607205276298431364603931420p100*$.1, -0.9955276908190076971677212970014339406164388881640156490039067896021339660650\ 212483370695854174883424p100 - 2.2359918030194378956114361642570257751706098008\ 92619027935913616774568610139180048252269268747882631p100*$.1, -1.4386618586590998559318506111528521147138011667817853919212295356645981880709\ 81774523800728366323288p100 + 1.98014817192983988340737247059032901151139745601\ 3495773348252847711583929242305997699815086846962731p100*$.1, 1.50441187663726433244212726452226339664471617992564671899312878504646814539308\ 3690260428105727715048p100 + 2.605717805845783890010656226127927076315729963779\ 268471413723640690248653280437319799718979206628964p100*$.1, 6.81273574401304115185608594599569415719455477489709056148008014695425412599288\ 3418056059013963771043E-108p100 + 1.5126985978324567425034832837756693902344201\ 03498044690294048825498048138921441055259686272920786284p100*$.1, 2.43418954947810755309957190815428605533024005494580104092513632526673215413600\ 3022860870313783811630p100 - 0.255843631089598012204063693666696763659212344879\ 1232545876607690629846808968740505524541819009199009p100*$.1, 0.99552769081900769716772129700143394061643888816401564900390678960213396606502\ 12483370695854174883424p100 - 2.23599180301943789561143616425702577517060980089\ 2619027935913616774568610139180048252269268747882631p100*$.1, -3.0088237532745286648842545290445267932894323598512934379862575700929362907861\ 67380520856211455430095p100 - 1.31875573690326061824402952072524543627673646731\ 5703297688981185264099231007382757478105405155293037E-108p100*$.1, 1.82772564312702020833115481926652718289017984807007373147905761369248626766824\ 5899752699924628892800p100 - 1.055237892064166990839365114322688486896223614482\ 480582326975671048282251658223446333788681981615903p100*$.1, 0.27118873383313338583634766256641214149204712110074812261800252582696967628624\ 73856531970719399308999p100 - 1.27584268254269770662214854593628275871412511451\ 3378386474878895558237568254753568064793552110607461p100*$.1, -1.2405065412310278463799880395669636711253143916867720636755148889403224104973\ 30890006248527685371095p100 + 0.40306500855171885470376613364758146153192817250\ 56141063299313699048104758838881168729240595159316478p100*$.1, -1.5683891582703175068371820909552176120880115232276003635160465305787151582794\ 02825232052508805076773p100 - 2.71652970816437514141817716737213079919949099303\ 8717663405884897333744189200741354804550942179709946p100*$.1, -1.4477063456027712447694182635240850084038428896656317443145170312277790017734\ 87726336912540467301347E-107p100 + 2.110475784128333981678730228645376973792447\ 228964961164653951342096564503316446892667577363963231806p100*$.1, 0.96931780739789446054364037700055152963326727058602394105751236311335273421108\ 35043530514557454401948p100 - 0.87277767399097885191838241228870129718219694200\ 77642801449475256534270923708654511918694925946758136p100*$.1, -0.2711887338331333858363476625664121414920471211007481226180025258269696762862\ 473856531970719399308999p100 - 1.2758426825426977066221485459362827587141251145\ 13378386474878895558237568254753568064793552110607461p100*$.1, 3.13677831654063501367436418191043522417602304645520072703209306115743031655880\ 5650464105017610153545p100 + 4.365128591039190660697212413483183598800735214622\ 947687610290517628445536885670694189480063423539747E-109p100*$.1, 5.24817792699030574208579778896785793882243064469443223993048628852659164770259\ 4321701051296726180337p100 - 3.030036938902905132271056312861209652043394205085\ 944393230814039184216069678332138867628756193570926p100*$.1, -2.7833238211402234102488130392985351205211960634433108691199904180672034243702\ 97946737622362811323253p100 + 2.50611602514517486379242335605907339394806279997\ 6890620111586900962333734088953715974906690809517723p100*$.1, 3.56202205317711416344347186551212018303599975616970930119819785220386755386310\ 4638057546132488260314p100 + 1.157371123493221238235022886587103094377273336825\ 844989544204218021179396227208812685686923143790604p100*$.1, 1.25996020641514150102236188885582677960742384330152101657530672026465573182622\ 7750640972829198844774p100 + 2.182315093025995166042701567268987207654384865643\ 455088127435319207904503564674865947743346008492225p100*$.1, -1.1922287552022822015748150405492464775090470856069908482590140257169944720487\ 54598159810327443659933E-107p100 + 6.060073877805810264542112625722419304086788\ 410171888786461628078368432139356664277735257512387141852p100*$.1, -0.7786982320368907531946588262135850625148036927263984320782074341366641294928\ 066913199237696769370608p100 + 3.6634871486383961020274462426461764883253361368\ 02735609655791118983513130316162528660593613953308327p100*$.1, 2.78332382114022341024881303929853512052119606344331086911999041806720342437029\ 7946737622362811323253p100 + 2.506116025145174863792423356059073393948062799976\ 890620111586900962333734088953715974906690809517723p100*$.1, -2.5199204128302830020447237777116535592148476866030420331506134405293114636524\ 55501281945658397689548p100 - 1.95082119418891636354185763150330649077083972386\ 4805485119035205099580052461045397928810920005563969E-108p100*$.1 ])

gmarus77 commented 4 years ago

@JRSijsling Thank you, I will try it again right now!

Also, if you do not mind, I have a question (probably a trivial question since I am new to magma) 1)how does ComplexFieldExtra(300) differ form regular ComplexField? I could not find ComplexFieldExtra in the handbook.

gmarus77 commented 4 years ago

@JRSijsling Now it works -- thank you so much!

PolarizationBasis(MB);

[ 0  0  0  0 -1  0  0  0]
[ 0  0  0  0  0 -1  0  0]
[ 0  0  0  0  0  0 -1  0]
[ 0  0  0  0  0  0  0 -1]
[ 1  0  0  0  0  0  0  0]
[ 0  1  0  0  0  0  0  0]
[ 0  0  1  0  0  0  0  0]
[ 0  0  0  1  0  0  0  0],

[ 0  0 -1  0 -2 -1 -1  0]
[ 0  0  1  1  1  1  1 -1]
[ 1 -1  0 -1 -1 -1  0  0]
[ 0 -1  1  0  0 -1  0 -1]
[ 2 -1  1  0  0  0  1  0]
[ 1 -1  1  1  0  0  1 -1]
[ 1 -1  0  0 -1 -1  0 -1]
[ 0  1  0  1  0  1  1  0],

[ 0  1  0  2  0  0  1 -1]
[-1  0  1  1  0  1  0 -1]
[ 0 -1  0 -1  1  0  1  0]
[-2 -1  1  0  1 -1  0 -2]
[ 0  0 -1 -1  0  1  0  2]
[ 0 -1  0  1 -1  0  1 -1]
[-1  0 -1  0  0 -1  0 -1]
[ 1  1  0  2 -2  1  1  0],

[ 0  1  0  0  2  0  1  0]
[-1  0  1  0  0  1 -1  1]
[ 0 -1  0  1  1  1  2 -1]
[ 0  0 -1  0  0  1  1  0]
[-2  0 -1  0  0  1  0  0]
[ 0 -1 -1 -1 -1  0  1  0]
[-1  1 -2 -1  0 -1  0  1]
[ 0 -1  1  0  0  0 -1  0]`

And one more question: Is there a Magma functionality that computes the symplectic automorphism group in MAGMA? (similar to symplectic_automorphism_group() in SageMath).

JRSijsling commented 4 years ago

@gmarus77

Also, if you do not mind, I have a question (probably a trivial question since I am new to magma) 1)how does ComplexFieldExtra(300) differ form regular ComplexField? I could not find ComplexFieldExtra in the handbook.

That is a completely valid question. The reason that you do not see it in the handbook is that basically this package adds some bells and whistles to a usual ComplexField when creating a ComplexFieldExtra, see endomorphisms/magma/heuristic/CCExtra.m.

JRSijsling commented 4 years ago

@gmarus77

And one more question: Is there a Magma functionality that computes the symplectic automorphism group in MAGMA? (similar to symplectic_automorphism_group() in SageMath).

There is, and I just made sure that it could be invoked also without creating a ComplexFieldExtra. You do need that if you want to recognize things over a number field though. Examples are in examples/Polarizations.m after pulling the new version.

gmarus77 commented 4 years ago

@JRSijsling Thank you for all your help! I will take a look at examples/Polarizations.m and endomorphisms/magma/heuristic/CCExtra.m