check_program.py

back to table · edit · history · where entries came from · files · download

697 bytes, as of the version from 2026-11-02 06:20 (current). Recorded here, not run.

import numberdb.sage as numberdb
from sage.libs.pari import pari
from pathlib import Path
import json
from generate import period
from checks import R,agrees
p=Path(__file__).parent
doc=(json.loads((p/'table-document.json').read_text())
     if (p/'table-document.json').exists() else numberdb.table('T669'))
code=doc['Programs']['program-pari']['code']
assert code.splitlines()[0]==r'\p 120'
body=code.split('\n',1)[1]
pari('default(realprecision,120)')
for D in [-3,-4,-7,-23,-163,-995]:
 text=str(pari(body.replace('D = -23;',f'D = {D};')))
 value=R(text).add_error(R(10)**(-115))
 assert agrees(period(D),value,350)
 print(D,text)
print('Displayed PARI/GP program agrees on six test fields.')