Markus Grassl on Mon, 13 Sep 2021 15:13:28 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

L-functions of ray class fields


Hello,

I am starting to explore the functionality to evaluate L-functions of ray class fields in PARI.

Consider the following example:

? K=bnfinit(y^2-17);
? R=bnrinit(K,[idealmul(K,2,idealprimedec(K,67)[1]),[1,0]]);
? bnrL1(R,,6)
%4 = [[[1], [1, 4.6813241993142229813724993536627094553 - 8.4322667558249138026399771101886499112*I]], [[21], [1, 4.6813241993142229813724993536627094553 + 8.4322667558249138026399771101886499112*I]], [[2], [2, 6.3756475827398270768754053111142630950 + 3.4449491388840500435340479558492319541*I]], [[20], [2, 6.3756475827398270768754053111142630950 - 3.4449491388840500435340479558492319541*I]], [[3], [1, 1.8176412452792445685452917639782820438 + 8.1087111168555415180774671308124835738*I]], [[19], [1, 1.8176412452792445685452917639782820438 - 8.1087111168555415180774671308124835738*I]], [[4], [2, 13.027815482743074487743390534933297287 + 0.88359205191900244784635327303065940484*I]], [[18], [2, 13.027815482743074487743390534933297287 - 0.88359205191900244784635327303065940484*I]], [[5], [1, 2.5527929851018839706883146043176223674 + 2.4709644601318872186239009175976115844*I]], [[17], [1, 2.5527929851018839706883146043176223674 - 2.4709644601318872186239009175976115844*I]], [[6], [2, 12.495028553553517386708818153272708569 - 5.4157831189482750965669967865804134134*I]], [[16], [2, 12.495028553553517386708818153272708569 + 5.4157831189482750965669967865804134134*I]], [[7], [1, 7.1027958306138907563417304036053871846 - 0.24059212752995490581398008244864857107*I]], [[15], [1, 7.1027958306138907563417304036053871846 + 0.24059212752995490581398008244864857107*I]], [[8], [2, 14.265317146978462660569542252329777896 + 2.1542555597527981860150224115045079800*I]], [[14], [2, 14.265317146978462660569542252329777896 - 2.1542555597527981860150224115045079800*I]], [[9], [1, 6.0062963732258649061069597262777665120 - 2.5947495211455705686663393666315214238*I]], [[13], [1, 6.0062963732258649061069597262777665120 + 2.5947495211455705686663393666315214238*I]], [[10], [2, 7.1348353979754889346703592814984752773 + 4.8332226980570368777116504489464839454*I]], [[12], [2, 7.1348353979754889346703592814984752773 - 4.8332226980570368777116504489464839454*I]], [[11], [2, 9.1674266723728085060682576777395605957]], [[0], [4, -2.1158243606952919602922760674236098378]]]

First, it seems as if the function bnrL1 was single-threaded, while lfun used multiple cores. Is there a simple way to use multi-threading?

I tried to directly evaluate the L-functions, e.g.

? lfun(lfuncreate([R,[1]]),0,1)
%7 = 0.90384905518988545678200390170972794465 - 2.3724351853612471172697035833485504030*I

But this does not remove the Euler factors, which I request above by setting the third bit of the flag. Is there a simple way to define the L-function with the Euler factors removed so that I can get particular values as they would be returned by bnrL1?


Thanks

Markus