back to table · edit · history · where entries came from · files · download
1779 bytes, as of the version from 2026-11-02 01:06 (current). Recorded here, not run.
"""Exact polynomial and independent Arb controls for numberdb.org/T664."""
import numberdb.sage as numberdb
from sage.rings.real_arb import RealBallField
from sage.env import SAGE_VERSION
from collections import Counter
import json,sys,mpmath
from pathlib import Path
a=[(0,0,0),(1,0,0),(1,1,0),(1,1,1)]
b=[(0,0,0),(0,0,1),(0,1,1),(1,1,1)]
p=Counter(tuple(v[i]+w[i]-1 for i in range(3)) for v in a for w in b)
q=Counter({(0,0,0):4})
positive=[(1,0,0),(0,1,0),(0,0,1),(1,1,0),(0,1,1),(1,1,1)]
for e in positive:q[e]+=1;q[tuple(-v for v in e)]+=1
assert p==q
# Q(xz,y/z,z/x)+k has precisely the 12 face-centred cubic exponents.
trans=lambda e:(e[0]-e[2],e[1],e[0]-e[1]+e[2])
fcc={trans(e) for e in q if e!=(0,0,0)}
expected=set()
for zero in range(3):
for sign1 in [-1,1]:
for sign2 in [-1,1]:
e=[sign1,sign2];e.insert(zero,0);expected.add(tuple(e))
assert fcc==expected
# A linear form 1+U+V+W results under U=x,V=xy,W=xyz; determinant 1.
# Therefore Q+4=|1+U+V+W|^2 on the torus, with range [0,16].
R=RealBallField(650)
x=7*R(3).zeta()/R.pi()**2
rows=json.load(Path(__file__).with_name('numerical-values.json').open())
assert abs(x-R(rows['-4']['value210']))<R(10)**(-190)
# Ball independently implements both zeta and gamma, no mpmath in this check.
w=9*(R(1)/3).gamma()**6/(R(2)**(R(14)/3)*R.pi()**4)
assert w.is_finite()
# m(Q_-3)=6 sqrt(3)/(5 pi)*L(2,chi_-3); Arb Hurwitz zeta.
L=((R(2)).zeta(R(1)/3)-(R(2)).zeta(R(2)/3))/9
v=6*R(3).sqrt()*L/(5*R.pi())
assert abs(v-R(rows['-3']['value210']))<R(10)**(-185)
print(json.dumps({'factorization':True,'fcc_exponents':True,'smyth_arb_agreement_digits_at_least':190,'dirichlet_arb_agreement_digits_at_least':185,'sage':SAGE_VERSION,'numberdb':numberdb.__version__,'mpmath':mpmath.__version__,'python':sys.version},indent=2))