"""Independent Arb enclosure of C4 and the C3(delta) hand-off. Different prime cutoffs and a direct coefficient recurrence; imports no author code. """ import os for k in ['OPENBLAS_NUM_THREADS','OMP_NUM_THREADS','MKL_NUM_THREADS','NUMEXPR_NUM_THREADS']:os.environ[k]='1' from pathlib import Path import math,json from flint import arb,ctx ctx.prec=256;ctx.threads=1 OUT=Path(__file__).resolve().parent/'resume1' def primes(n): s=bytearray(b'\x01')*(n+1);s[:2]=b'\x00\x00' for p in range(2,math.isqrt(n)+1): if s[p]:s[p*p::p]=b'\x00'*len(s[p*p::p]) return [i for i in range(13,n+1) if s[i]] BIG,SMALL,SPLIT=200000,3000,20 pr=primes(BIG); ps=[p for p in pr if p<=SMALL] def bounds(x): return [x.lower().str(28),x.upper().str(28)] def point_up(x):return arb(x.upper()) def coefficients(LX): km=int(float(LX)/math.log(13)); lx=arb(LX) assert km*arb(13).log()=1 and d2*li>=2 and li>logY rsum=sum(R[K:km],arb(0)) windows=sum((ct*(ct*(1+logY)*R[k-2]+sum((A[a]*R[k-1-a] for a in range(2,k)),arb(0)))/(li-logY) for k in range(K+1,km+1)),arb(0)) small=li*(-d*li).exp();sq=2*arb('1.5').zeta()*li*(-d2*li/2).exp() main=(1+arb(480)/(840*logY))*rsum/(1-d-d2) win=arb(480)/135*windows/(1-d-d2) rest=arb(480)/135*(small+sq)+win lhs=main+rest rhs=(1-arb(480)/(840*(arb('4e18')-2).log()))*(1-arb('1e-18'))-arb(480)/135*arb('1e-18') record={k:v.str(28) for k,v in [('S',S),('main',main),('window',win),('small',small),('squarefull',sq),('rest',rest),('lhs_majorant',lhs),('rhs',rhs)]} assert lhs