Dokchitser Project for Sage Days 11


  1. Modularize the code (break into the following classes and sort dependencies)
  2. Stuff still computed using gp:
    • Delta polynomials in _recursions_at_infinity (search for comment below)
    • _without_gp (gamma_series) has this line
      • sinser = sage_eval(rs(gp_eval('Vec(sin(Pi*(%s)))'%(z0+x))))
    • init_Ginf: still uses pari (see below)
    • Ginf: still uses pari to evaluate continued fraction
  3. Doctest everything, making sure it all works 100% and fix issues with coercion, complex inputs, etc., as they are systematically uncovered.
  4. Possibly maybe change from digits to bits prec.
  5. Optimize.

From Jen:

Here's the version (closest to Dokchitser's original pari code) that still uses continued fraction approximation:

(needs to run:

The version with Pade approximation ( has a negligible speedup but only really works for low precision. I'm not sure if Pade gives us a means of computing bounds (I think Mike Rubinstein said that continued fractions won't). Also, doesn't work for imaginary inputs yet - some coercion with SymbolicRing that I didn't try.

Dokchiter's Paper: dokchitser.pdf

days11/projects/dokchitser (last edited 2008-11-14 13:42:12 by localhost)