1*3e12c5d1SDavid du Colombierscale = 50 2*3e12c5d1SDavid du Colombierdefine e(x) { 3*3e12c5d1SDavid du Colombier auto a, b, c, d, e, g, w, y, t, r 4*3e12c5d1SDavid du Colombier 5*3e12c5d1SDavid du Colombier r = ibase 6*3e12c5d1SDavid du Colombier ibase = A 7*3e12c5d1SDavid du Colombier 8*3e12c5d1SDavid du Colombier t = scale 9*3e12c5d1SDavid du Colombier scale = t + .434*x + 1 10*3e12c5d1SDavid du Colombier 11*3e12c5d1SDavid du Colombier w = 0 12*3e12c5d1SDavid du Colombier if(x<0) { 13*3e12c5d1SDavid du Colombier x = -x 14*3e12c5d1SDavid du Colombier w = 1 15*3e12c5d1SDavid du Colombier } 16*3e12c5d1SDavid du Colombier y = 0 17*3e12c5d1SDavid du Colombier while(x>2) { 18*3e12c5d1SDavid du Colombier x /= 2 19*3e12c5d1SDavid du Colombier y++ 20*3e12c5d1SDavid du Colombier } 21*3e12c5d1SDavid du Colombier 22*3e12c5d1SDavid du Colombier a = 1 23*3e12c5d1SDavid du Colombier b = 1 24*3e12c5d1SDavid du Colombier c = b 25*3e12c5d1SDavid du Colombier d = 1 26*3e12c5d1SDavid du Colombier e = 1 27*3e12c5d1SDavid du Colombier for(a=1; 1; a++) { 28*3e12c5d1SDavid du Colombier b *= x 29*3e12c5d1SDavid du Colombier c = c*a+b 30*3e12c5d1SDavid du Colombier d *= a 31*3e12c5d1SDavid du Colombier g = c/d 32*3e12c5d1SDavid du Colombier if(g == e) { 33*3e12c5d1SDavid du Colombier g = g/1 34*3e12c5d1SDavid du Colombier while(y--) { 35*3e12c5d1SDavid du Colombier g *= g 36*3e12c5d1SDavid du Colombier } 37*3e12c5d1SDavid du Colombier scale = t 38*3e12c5d1SDavid du Colombier if(w==1) { 39*3e12c5d1SDavid du Colombier ibase = r 40*3e12c5d1SDavid du Colombier return 1/g 41*3e12c5d1SDavid du Colombier } 42*3e12c5d1SDavid du Colombier ibase = r 43*3e12c5d1SDavid du Colombier return g/1 44*3e12c5d1SDavid du Colombier } 45*3e12c5d1SDavid du Colombier e = g 46*3e12c5d1SDavid du Colombier } 47*3e12c5d1SDavid du Colombier} 48*3e12c5d1SDavid du Colombier 49*3e12c5d1SDavid du Colombierdefine l(x) { 50*3e12c5d1SDavid du Colombier auto a, b, c, d, e, f, g, u, s, t, r, z 51*3e12c5d1SDavid du Colombier 52*3e12c5d1SDavid du Colombier r = ibase 53*3e12c5d1SDavid du Colombier ibase = A 54*3e12c5d1SDavid du Colombier if(x <= 0) { 55*3e12c5d1SDavid du Colombier z = 1-10^scale 56*3e12c5d1SDavid du Colombier ibase = r 57*3e12c5d1SDavid du Colombier return z 58*3e12c5d1SDavid du Colombier } 59*3e12c5d1SDavid du Colombier t = scale 60*3e12c5d1SDavid du Colombier 61*3e12c5d1SDavid du Colombier f = 1 62*3e12c5d1SDavid du Colombier scale += scale(x) - length(x) + 1 63*3e12c5d1SDavid du Colombier s = scale 64*3e12c5d1SDavid du Colombier while(x > 2) { 65*3e12c5d1SDavid du Colombier s += (length(x)-scale(x))/2 + 1 66*3e12c5d1SDavid du Colombier if(s>0) { 67*3e12c5d1SDavid du Colombier scale = s 68*3e12c5d1SDavid du Colombier } 69*3e12c5d1SDavid du Colombier x = sqrt(x) 70*3e12c5d1SDavid du Colombier f *= 2 71*3e12c5d1SDavid du Colombier } 72*3e12c5d1SDavid du Colombier while(x < .5) { 73*3e12c5d1SDavid du Colombier s += (length(x)-scale(x))/2 + 1 74*3e12c5d1SDavid du Colombier if(s>0) { 75*3e12c5d1SDavid du Colombier scale = s 76*3e12c5d1SDavid du Colombier } 77*3e12c5d1SDavid du Colombier x = sqrt(x) 78*3e12c5d1SDavid du Colombier f *= 2 79*3e12c5d1SDavid du Colombier } 80*3e12c5d1SDavid du Colombier 81*3e12c5d1SDavid du Colombier scale = t + length(f) - scale(f) + 1 82*3e12c5d1SDavid du Colombier u = (x-1)/(x+1) 83*3e12c5d1SDavid du Colombier 84*3e12c5d1SDavid du Colombier scale += 1.1*length(t) - 1.1*scale(t) 85*3e12c5d1SDavid du Colombier s = u*u 86*3e12c5d1SDavid du Colombier b = 2*f 87*3e12c5d1SDavid du Colombier c = b 88*3e12c5d1SDavid du Colombier d = 1 89*3e12c5d1SDavid du Colombier e = 1 90*3e12c5d1SDavid du Colombier for(a=3; 1; a=a+2){ 91*3e12c5d1SDavid du Colombier b *= s 92*3e12c5d1SDavid du Colombier c = c*a + d*b 93*3e12c5d1SDavid du Colombier d *= a 94*3e12c5d1SDavid du Colombier g = c/d 95*3e12c5d1SDavid du Colombier if(g==e) { 96*3e12c5d1SDavid du Colombier scale = t 97*3e12c5d1SDavid du Colombier ibase = r 98*3e12c5d1SDavid du Colombier return u*c/d 99*3e12c5d1SDavid du Colombier } 100*3e12c5d1SDavid du Colombier e = g 101*3e12c5d1SDavid du Colombier } 102*3e12c5d1SDavid du Colombier} 103*3e12c5d1SDavid du Colombier 104*3e12c5d1SDavid du Colombierdefine s(x) { 105*3e12c5d1SDavid du Colombier auto a, b, c, s, t, y, p, n, i, r 106*3e12c5d1SDavid du Colombier 107*3e12c5d1SDavid du Colombier r = ibase 108*3e12c5d1SDavid du Colombier ibase = A 109*3e12c5d1SDavid du Colombier t = scale 110*3e12c5d1SDavid du Colombier y = x/.7853 111*3e12c5d1SDavid du Colombier s = t + length(y) - scale(y) 112*3e12c5d1SDavid du Colombier if(s<t) { 113*3e12c5d1SDavid du Colombier s = t 114*3e12c5d1SDavid du Colombier } 115*3e12c5d1SDavid du Colombier scale = s 116*3e12c5d1SDavid du Colombier p = a(1) 117*3e12c5d1SDavid du Colombier 118*3e12c5d1SDavid du Colombier scale = 0 119*3e12c5d1SDavid du Colombier if(x>=0) { 120*3e12c5d1SDavid du Colombier n = (x/(2*p)+1)/2 121*3e12c5d1SDavid du Colombier } 122*3e12c5d1SDavid du Colombier if(x<0) { 123*3e12c5d1SDavid du Colombier n = (x/(2*p)-1)/2 124*3e12c5d1SDavid du Colombier } 125*3e12c5d1SDavid du Colombier x -= 4*n*p 126*3e12c5d1SDavid du Colombier if(n%2 != 0) { 127*3e12c5d1SDavid du Colombier x = -x 128*3e12c5d1SDavid du Colombier } 129*3e12c5d1SDavid du Colombier 130*3e12c5d1SDavid du Colombier scale = t + length(1.2*t) - scale(1.2*t) 131*3e12c5d1SDavid du Colombier y = -x*x 132*3e12c5d1SDavid du Colombier a = x 133*3e12c5d1SDavid du Colombier b = 1 134*3e12c5d1SDavid du Colombier s = x 135*3e12c5d1SDavid du Colombier for(i=3; 1; i+=2) { 136*3e12c5d1SDavid du Colombier a *= y 137*3e12c5d1SDavid du Colombier b *= i*(i-1) 138*3e12c5d1SDavid du Colombier c = a/b 139*3e12c5d1SDavid du Colombier if(c==0){ 140*3e12c5d1SDavid du Colombier scale = t 141*3e12c5d1SDavid du Colombier ibase = r 142*3e12c5d1SDavid du Colombier return s/1 143*3e12c5d1SDavid du Colombier } 144*3e12c5d1SDavid du Colombier s += c 145*3e12c5d1SDavid du Colombier } 146*3e12c5d1SDavid du Colombier} 147*3e12c5d1SDavid du Colombier 148*3e12c5d1SDavid du Colombierdefine c(x) { 149*3e12c5d1SDavid du Colombier auto t, r 150*3e12c5d1SDavid du Colombier 151*3e12c5d1SDavid du Colombier r = ibase 152*3e12c5d1SDavid du Colombier ibase = A 153*3e12c5d1SDavid du Colombier t = scale 154*3e12c5d1SDavid du Colombier scale = scale+1 155*3e12c5d1SDavid du Colombier x = s(x + 2*a(1)) 156*3e12c5d1SDavid du Colombier scale = t 157*3e12c5d1SDavid du Colombier ibase = r 158*3e12c5d1SDavid du Colombier return x/1 159*3e12c5d1SDavid du Colombier} 160*3e12c5d1SDavid du Colombier 161*3e12c5d1SDavid du Colombierdefine a(x) { 162*3e12c5d1SDavid du Colombier auto a, b, c, d, e, f, g, s, t, r, z 163*3e12c5d1SDavid du Colombier 164*3e12c5d1SDavid du Colombier r = ibase 165*3e12c5d1SDavid du Colombier ibase = A 166*3e12c5d1SDavid du Colombier if(x==0) { 167*3e12c5d1SDavid du Colombier return 0 168*3e12c5d1SDavid du Colombier } 169*3e12c5d1SDavid du Colombier if(x==1) { 170*3e12c5d1SDavid du Colombier z = .7853981633974483096156608458198757210492923498437764/1 171*3e12c5d1SDavid du Colombier ibase = r 172*3e12c5d1SDavid du Colombier if(scale<52) { 173*3e12c5d1SDavid du Colombier return z 174*3e12c5d1SDavid du Colombier } 175*3e12c5d1SDavid du Colombier } 176*3e12c5d1SDavid du Colombier t = scale 177*3e12c5d1SDavid du Colombier f = 1 178*3e12c5d1SDavid du Colombier while(x > .5) { 179*3e12c5d1SDavid du Colombier scale++ 180*3e12c5d1SDavid du Colombier x = -(1 - sqrt(1.+x*x))/x 181*3e12c5d1SDavid du Colombier f *= 2 182*3e12c5d1SDavid du Colombier } 183*3e12c5d1SDavid du Colombier while(x < -.5) { 184*3e12c5d1SDavid du Colombier scale++ 185*3e12c5d1SDavid du Colombier x = -(1 - sqrt(1.+x*x))/x 186*3e12c5d1SDavid du Colombier f *= 2 187*3e12c5d1SDavid du Colombier } 188*3e12c5d1SDavid du Colombier s = -x*x 189*3e12c5d1SDavid du Colombier b = f 190*3e12c5d1SDavid du Colombier c = f 191*3e12c5d1SDavid du Colombier d = 1 192*3e12c5d1SDavid du Colombier e = 1 193*3e12c5d1SDavid du Colombier for(a=3; 1; a+=2) { 194*3e12c5d1SDavid du Colombier b *= s 195*3e12c5d1SDavid du Colombier c = c*a + d*b 196*3e12c5d1SDavid du Colombier d *= a 197*3e12c5d1SDavid du Colombier g = c/d 198*3e12c5d1SDavid du Colombier if(g==e) { 199*3e12c5d1SDavid du Colombier scale = t 200*3e12c5d1SDavid du Colombier ibase = r 201*3e12c5d1SDavid du Colombier return x*c/d 202*3e12c5d1SDavid du Colombier } 203*3e12c5d1SDavid du Colombier e = g 204*3e12c5d1SDavid du Colombier } 205*3e12c5d1SDavid du Colombier} 206*3e12c5d1SDavid du Colombier 207*3e12c5d1SDavid du Colombierdefine j(n,x) { 208*3e12c5d1SDavid du Colombier auto a,b,c,d,e,g,i,s,k,t,r 209*3e12c5d1SDavid du Colombier 210*3e12c5d1SDavid du Colombier r = ibase 211*3e12c5d1SDavid du Colombier ibase = A 212*3e12c5d1SDavid du Colombier 213*3e12c5d1SDavid du Colombier t = scale 214*3e12c5d1SDavid du Colombier k = 1.36*x + 1.16*t - n 215*3e12c5d1SDavid du Colombier k = length(k) - scale(k) 216*3e12c5d1SDavid du Colombier if(k>0) { 217*3e12c5d1SDavid du Colombier scale += k 218*3e12c5d1SDavid du Colombier } 219*3e12c5d1SDavid du Colombier 220*3e12c5d1SDavid du Colombier s = -x*x/4 221*3e12c5d1SDavid du Colombier if(n<0) { 222*3e12c5d1SDavid du Colombier n = -n 223*3e12c5d1SDavid du Colombier x = -x 224*3e12c5d1SDavid du Colombier } 225*3e12c5d1SDavid du Colombier a = 1 226*3e12c5d1SDavid du Colombier c = 1 227*3e12c5d1SDavid du Colombier for(i=1; i<=n; i++) { 228*3e12c5d1SDavid du Colombier a *= x 229*3e12c5d1SDavid du Colombier c *= 2*i 230*3e12c5d1SDavid du Colombier } 231*3e12c5d1SDavid du Colombier b = a 232*3e12c5d1SDavid du Colombier d = 1 233*3e12c5d1SDavid du Colombier e = 1 234*3e12c5d1SDavid du Colombier for(i=1; 1; i++) { 235*3e12c5d1SDavid du Colombier a *= s 236*3e12c5d1SDavid du Colombier b = b*i*(n+i) + a 237*3e12c5d1SDavid du Colombier c *= i*(n+i) 238*3e12c5d1SDavid du Colombier g = b/c 239*3e12c5d1SDavid du Colombier if(g==e) { 240*3e12c5d1SDavid du Colombier scale = t 241*3e12c5d1SDavid du Colombier ibase = r 242*3e12c5d1SDavid du Colombier return g/1 243*3e12c5d1SDavid du Colombier } 244*3e12c5d1SDavid du Colombier e = g 245*3e12c5d1SDavid du Colombier } 246*3e12c5d1SDavid du Colombier} 247