07/15/2011, 09:34 PM
(This post was last modified: 11/21/2011, 09:36 PM by sheldonison.)
I'm attatching a new version of kneser.gp. The new version has two major modifications, as well as a fix to the earlier reported loss of precision bug with base b=exp(Pi/2). The first major modification is to generate a Taylor series for the superf and inverse superf functions, which eliminates most of the long strings of logarithms and exponents in the iterative process for generating the sexp Taylor series. This, along with other changes, results in an approximately 5x-7x performance improvement over the earlier version. Smaller bases closer to eta see the biggest performance improvements. The range of supported bases is init(1.449) to init(100000), along with some support for bases<eta. The second major change is to use pari-gp internal polynomials for the xsexp and xtheta Taylor series functions, respectively used for the sexp(z) and riemaprx(z) functions. pari-gp polynomials are also returned by the sexptaylor(w,r) and slogtaylor(w,r) functions, which generate a Taylor series centered at w, with sample radius "r". This update allows the use of many internal pari-gp polynomial functions.
This version of the code also includes complex plane support for cheta(z), and sexpeta(z), the two superfunctions for base=\( \eta \), as well as their inverse functions, invcheta(z), and invsexpeta(z). The default precision for these functions is 50 decimal digits, or 167 binary bits, but if precision is manually modified by inputting on the command line "\p 134" followed by "init;", then the precision for these base=\( \eta \) functions are also similarly increased.
With the default precision of "\p 67", for the command "init(exp(1));loop", my laptop takes about 4.3 seconds for 13 iterations, to generate a series accurate to 110 binary bits (33 decimal digits). If the precision is manually modified via "\p 134", then "init;loop" for the base e default, it takes about 40 seconds, for 26 iterations, with results accurate to ~225 binary digits.
- Sheldon
For the most recent code version: go to the Nov 21st, 2011 thread.
kneser.gp (Size: 33.72 KB / Downloads: 907)
This version of the code also includes complex plane support for cheta(z), and sexpeta(z), the two superfunctions for base=\( \eta \), as well as their inverse functions, invcheta(z), and invsexpeta(z). The default precision for these functions is 50 decimal digits, or 167 binary bits, but if precision is manually modified by inputting on the command line "\p 134" followed by "init;", then the precision for these base=\( \eta \) functions are also similarly increased.
With the default precision of "\p 67", for the command "init(exp(1));loop", my laptop takes about 4.3 seconds for 13 iterations, to generate a series accurate to 110 binary bits (33 decimal digits). If the precision is manually modified via "\p 134", then "init;loop" for the base e default, it takes about 40 seconds, for 26 iterations, with results accurate to ~225 binary digits.
- Sheldon
For the most recent code version: go to the Nov 21st, 2011 thread.
kneser.gp (Size: 33.72 KB / Downloads: 907)