-
Notifications
You must be signed in to change notification settings - Fork 3
/
bernouilli.ae
265 lines (227 loc) · 2.36 KB
/
bernouilli.ae
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
This is meant to be a transcription of AAL's program for computing
what she called the fourth Bernouilli number B7 (what Wikipedia would
call B8).
I've scaled by 10 places where real arithmetic is implied
(i.e. dividends are shifted up 10 digits unless already scaled,
products are shifted down by 10 digits if both multiplicands are
scaled). Divide the result by 10**10 to get B7.
A bug in operation 4 has been fixed (the comment requires V4/V5,
AAL's code does V5/V4).
Another bug was at operation 24: the value accumulated in V13 is ×the
negative× of the required value, see Note G Equation 9.
useful constants
n001 1
n002 2
which bernouilli number is required?
n003 4
b0 = 1
b1 = 0.1666666666
n021 01666666666
b3 = -0.0333333333
n022 -00333333333
b5 = 0.0238095238
n023 00238095238
operation 1
×
l002
l003
s004
s005
s006
operation 2
-
z004
l001
s004
operation 3
+
z005
l001
s005
operation 4, with bug fixed
÷
z004
<10
z005
s011'
operation 5
÷
z011
l002
s011'
operation 6
-
z013
z011
s013
operation 7
l003
l001
s010
--------------------
operation 8
+
l002
l007
s007
operation 9
÷
l006
<10
l007
s011'
operation 10, using b1 (v021)
×
l021
l011
>10
s012
operation 11
+
z012
z013
s013
operation 12
-
z010
l001
s010
--------------------
operation 13
-
z006
l001
s006
operation 14
+
l001
z007
s007
operation 15
÷
l006
<10
l007
s008'
operation 16
×
z008
z011
>10
s011
operation 17
-
z006
l001
s006
operation 18
+
l001
z007
s007
operation 19
÷
l006
<10
l007
s009'
operation 20
×
z009
z011
>10
s011
operation 21, using b3 (v022)
×
l022
l011
>10
s012
operation 22
+
z012
z013
s013
operation 23
-
z010
l001
s010
.................... repeat starts here
operation 13
-
z006
l001
s006
operation 14
+
l001
z007
s007
operation 15
÷
l006
<10
l007
s008'
operation 16
×
z008
z011
>10
s011
operation 17
-
z006
l001
s006
operation 18
+
l001
z007
s007
operation 19
÷
l006
<10
l007
s009'
operation 20
×
z009
z011
>10
s011
operation 21 (NB using b5, v023 this time)
×
l023
l011
>10
s012
operation 22
+
z012
z013
s013
operation 23
-
z010
l001
s010
--------------------
operation 24, with bug fixed
-
l024
l013
s024
the result!! calculations were scaled by 10 places
a write numbers as 9.9999999999
p
operation 25
+
l001
z003
s003
-- and clear V6, V7 (should have been done earlier, operation 19)
n006 0
n007 0