Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

After inserting some prints, i decided to perform exact arithmetics as long as i could.

(Expanding the "polynomial" g was showing a much simpler "polynomial". Then i made a true polynomial out of it, in order to use the relations satisfied by $\xi$, the primitive root of order $32$ with the complex embedding $\exp(2\pi i/32)$. Computations could be then instantly done w.r.t. the wanted precision.)

Slightly changed code:

PREC   = 165
coef02 = [ 1/k for k in [1..10**3] ]
RRR    = RealField(prec = PREC)
ME     = 32
m      = 40

F.<xi> = CyclotomicField(ME)

def test(m, c, precision):
    M = 3*m
    g = coef02[M]
    for k in [ M-1..2, step=-1 ]:    # Horner
        g = x*g + coef02[k]

    g = g.expand()
    g = g.polynomial(QQ)

    disk     = [ xi^k for k in range(ME) ]
    gamma    = abs(c)/2
    ellipse  = [ gamma*(1+c^2/4/gamma^2/w) for w in disk ]

    gvals    = [ g(x=z) for z in ellipse ]
    gabsvals = [ abs( a.complex_embedding( PREC ) ) for a in gvals ]

    epsilon1 = max( gabsvals )
    return epsilon1

for c in [1/2..10, step=1/2]:
    # for ell in [1..10]:
    if True:
        print "c = %4s -> %s" % ( c, test(m, c, PREC) )

Results:

c =  1/2 -> 0.5451774444795624753378569716654125445795323421817
c =    1 -> 3.877132750163312268194055765884982005629693463214
c =  3/2 -> 1.515428179650201079251313202796991675611785000224e19
c =    2 -> 5.539239522130613509638371201851936011597427063094e33
c =  5/2 -> 1.254347365744115869605098307063077516259244950897e45
c =    3 -> 2.485622007123562697065591352164619348140520368265e54
c =  7/2 -> 1.840038623607799316523292031320351173032744393937e62
c =    4 -> 1.220236022233173046095362930456016538046036458529e69
c =  9/2 -> 1.277831294399228135782148313824375408273976668569e75
c =    5 -> 3.115249330363268000457437128132669088002585033222e80
c = 11/2 -> 2.333289819982865723165430200076136015690563123553e85
c =    6 -> 6.591269725218075592564330647475925557514987984406e89
c = 13/2 -> 8.207311589847995050609430607861848821939923069317e93
c =    7 -> 5.085511066693174056991376957615614330916905538649e97
c = 15/2 -> 1.726432056041238224907347764787556059619499068072e101
c =    8 -> 3.470108034398171310085902662737894563375023273487e104
c = 17/2 -> 4.400366924707123401372401158677839663730509791993e107
c =    9 -> 3.710533637845394896264923862712625167668124571656e110
c = 19/2 -> 2.174358483775499706197907609995433166935905001082e113
c =   10 -> 9.191254911989823075908386272607123115557791656833e115

I hope this answers practically the question, although it deviates from RRR.