Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

To change real precision in gp run gp.default("realprecision",256)

To change real precision in gp run gp.default("realprecision",256). However, this issue here is not in pari's precision per se, but in loss of precision when pari's object is converted to Sage (it may be a bug in cypari2). Here is an equivalent code with explicit precision control (for both Sage and Pari) based on 'gp.' interface:

myC = ComplexField(200)             # in bits
gp.default("realprecision",60)    # in decimal digits

K.<a>=CyclotomicField(3)
E=gp.ellinit([0,0,0,0,-432*(1+3*a)^4])
S=gp.mfinit([63,2,Mod(37,63)])
L=gp.mfeigenbasis(S)
symb = gp.mfsymbol(L[1])

def phiE(c):
    return myC(gp.mfsymboleval(symb,[gp.oo(), c]))*2*myC(pi)*I

print(phiE(gp.oo()))
print(phiE(0))
print(phiE(1/1000))

To change real precision in gp run gp.default("realprecision",256). However, this issue here is not in pari's precision per se, but in loss of precision when pari's object is converted to Sage (it may be a bug in cypari2). Here is an equivalent code with explicit precision control (for both Sage and Pari) based on 'gp.' gp. interface:

myC = ComplexField(200)             # in bits
gp.default("realprecision",60)    # in decimal digits

K.<a>=CyclotomicField(3)
E=gp.ellinit([0,0,0,0,-432*(1+3*a)^4])
S=gp.mfinit([63,2,Mod(37,63)])
L=gp.mfeigenbasis(S)
symb = gp.mfsymbol(L[1])

def phiE(c):
    return myC(gp.mfsymboleval(symb,[gp.oo(), c]))*2*myC(pi)*I

print(phiE(gp.oo()))
print(phiE(0))
print(phiE(1/1000))

To change real precision in gp run gp.default("realprecision",256).

However, this issue here in your code is not in pari's precision per se, but in loss of precision when pari's object is converted to Sage (it may be a bug in cypari2). Here is an equivalent code with explicit precision control (for both Sage and Pari) based on gp. interface:

myC = ComplexField(200)         # precision in bits
bits, we use it for conversion to Sage
gp.default("realprecision",60)    # precision in decimal digits
digits for pari's routines

K.<a>=CyclotomicField(3)
E=gp.ellinit([0,0,0,0,-432*(1+3*a)^4])
S=gp.mfinit([63,2,Mod(37,63)])
L=gp.mfeigenbasis(S)
symb = gp.mfsymbol(L[1])

def phiE(c):
    return myC(gp.mfsymboleval(symb,[gp.oo(), c]))*2*myC(pi)*I

print(phiE(gp.oo()))
print(phiE(0))
print(phiE(1/1000))