Blame


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