07/23/2011, 12:54 PM
(This post was last modified: 11/21/2011, 09:34 PM by sheldonison.)

(07/23/2011, 05:48 AM)deepblue Wrote: Is it continuous at 1/2? I got...You're using the initial seed approximation, which is a three term taylor series, along with iterative logs/exps. After initialization, you need to "loop" through iteratively calculating the Kneser theta mapping. After 13 iterations (which takes about 4 seconds), you'll get results accurate to 110 binary bits.

sexp(1/2)=1.6376...

sexp(1/2+10^-30)=1.6489...

Code:

`gp > init(exp(1));loop`

base 2.71828182845904523536029

fixed point 0.318131505204764135312654 + 1.33723570143068940890116*I

Pseudo Period 4.44695072006700782711228 + 1.05793999115693918376341*I

generating superf taylor series; inverse Schroder equation, scnt 235

generating isuperf taylor series; Schroder equation, scnt 235

sexp(-0.5)= 0.49855114028767537891166401244655

1=loopcnt 8.842977061 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856330616566898032298548529033

2=loopcnt 17.67523398 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328805247482985620720695870

3=loopcnt 26.43624250 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794127685577078081234199

4=loopcnt 35.02171218 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111357966546850464454

5=loopcnt 43.44600587 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443478679527238125

6=loopcnt 52.16036487 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443467429889486618

7=loopcnt 60.48849684 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443467961715088127

8=loopcnt 69.25315295 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443467961906029415

9=loopcnt 77.65865208 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443467961909246830

10=loopcnt 86.52036006 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443467961909249278

11=loopcnt 94.54807694 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443467961909249313

12=loopcnt 102.8988830 Riemann/sexp binary precision bits

sexp(-0.5)= 0.49856328794111443467961909249313

13=loopcnt 110.6414599 Riemann/sexp binary precision bits

%1 = 1

Code:

`gp > sexp(0.5)`

%2 = 1.6463542337511945809719240315921

gp > sexp(0.5+1E-30)

%3 = 1.6463542337511945809719240315937

gp >

Anyway, I could change the program in one of two ways that would make it simpler. Both changes I'm thinking of involve putting the "loop;" at the end of the init routine, so that anytime you initialize for a given base, via "init(b)", the program automatically loops through with the current precision, generating the sexp(z) series. Then the question becomes what to do when kneser.gp is first loaded into pari-gp. Since the loop only takes 4-5 seconds for base e, "\p 67", I could have the program fully initialize for base e when it loads, going through the loop of thirteen iterations. Or, I could completely remove the partial initialization for base e when the program loads. Any opinions, as to which makes more sense?

- Sheldon

For the most recent code version: go to the Nov 21st, 2011 thread.