Skip to content

Commit 040ab47

Browse files
[stdlib] Add low-level floating point utils
1 parent 34d7bff commit 040ab47

File tree

1 file changed

+126
-24
lines changed

1 file changed

+126
-24
lines changed

lib/算經.wy

Lines changed: 126 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
吾有三數。曰零。曰一。曰一。名之曰「總算位」。曰「上位冪」。曰「下位冪」。
88
吾有三數。曰零。曰一。曰一。名之曰「至大指」。曰「巨位冪」。曰「至巨數」。
99
吾有三數。曰零。曰一。曰一。名之曰「至小指」。曰「微位冪」。曰「至微數」。
10-
吾有三數。曰零。曰一。曰一。名之曰「浮點零」。曰「浮點一」。曰「無限大」。
10+
吾有一數。曰一。名之曰「位極差」。
11+
吾有二數。曰零。曰一。名之曰「浮點零」。曰「浮點一」。
1112

1213
吾有一術。名之曰「試界」。欲行是術。必先得三數。曰「限」。曰「元」。曰「基」。二術。曰「合」。曰「據」。乃行是術曰。
1314
吾有一術。名之曰「造表列」。欲行是術。必先得二數。曰「引」。曰「實」。乃行是術曰。
@@ -55,7 +56,7 @@
5556
噫。夫「「告。計算機除不盡而捨餘者。不可行本算經之術。」」。書之。
5657
乃歸空無也。
5758

58-
有數五分。名之曰「」。減「」以「」。昔之「浮點零」者。今其是矣。
59+
有數五分。名之曰「」。減「」以「寅」。名之曰「卯」。乘「卯」以「卯」。昔之「浮點零」者。今其是矣。
5960
加一於「浮點零」。昔之「浮點一」者。今其是矣。
6061

6162
吾有一列。名之曰「素數」。充「素數」以二。以三。以五。以七。以十一。以十三。
@@ -118,16 +119,12 @@
118119
夫「上限表」之「「引」」。昔之「至大指」者。今其是矣。
119120
夫「上限表」之「「實」」。昔之「巨位冪」者。今其是矣。
120121
減「進制」以「下位冪」。乘其以「巨位冪」。昔之「至巨數」者。今其是矣。
121-
乘「至巨數」於「至巨數」。昔之「無限大」者。今其是矣。
122-
乘零於「無限大」。昔之「假不可算數」者。今其是矣。
123-
若「假不可算數」等於零者。
124-
減零以「無限大」。昔之「假不可算數」者。今其是矣。
125-
云云。
126122

127123
施「試界」於「試指限」。於「浮點一」。於「退制」。於「乘」。於「下溢乎」。名之曰「下限表」。
128124
夫「下限表」之「「引」」。減其於「總算位」。減其以一。昔之「至小指」者。今其是矣。
129125
夫「下限表」之「「實」」。昔之「至微數」者。今其是矣。
130126
乘「至微數」以「上位冪」。昔之「微位冪」者。今其是矣。
127+
減「總算位」於「至小指」。減其於「至大指」。昔之「位極差」者。今其是矣。
131128

132129
注曰。「「以上驗算制。」」。
133130

@@ -162,8 +159,17 @@
162159
今有一數。曰「假歐拉常數」。名之曰「歐拉常數」。注曰。「「歐拉常數者。五分七釐七毫二絲有奇也。」」。
163160
今有一數。曰「假黃金分割數」。名之曰「黃金分割數」。注曰。「「黃金分割數者。一又六分一釐八毫有奇也。」」。
164161

165-
吾有一術。名之曰「除以零」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
166-
除「甲」以「浮點零」。乃得矣。
162+
今有一術。名之曰「不可算數乎」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
163+
若「甲」等於「甲」者。乃得陰。
164+
若非。乃得陽也。
165+
是謂「不可算數乎」之術也。
166+
167+
吾有一術。名之曰「上溢」。欲行是術。必先得一數。曰「符」。乃行是術曰。
168+
乘「符」以「至巨數」。乘其以「至巨數」。乃得矣。
169+
是謂「上溢」之術也。
170+
171+
吾有一術。名之曰「除以零」。欲行是術。必先得一數。曰「符」。乃行是術曰。
172+
除「符」以「浮點零」。乃得矣。
167173
是謂「除以零」之術也。
168174

169175
吾有一術。名之曰「不可算」。乃行是術曰。
@@ -207,7 +213,7 @@
207213
是謂「伏羲」之術也。
208214
施「伏羲」。
209215

210-
吾有一術。名之曰「取位冪」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
216+
吾有一術。名之曰「取本位冪」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
211217
注曰。「「二進者方可施是術。」」。
212218
施「絕對」於「甲」。名之曰「乙」。
213219
若「乙」小於「取位上溢限」者。
@@ -217,43 +223,140 @@
217223
若非。
218224
乘「乙」以「下位冪」。乘其以「下位冪」。名之曰「丙」。
219225
若「丙」小於「取位上溢限」者。
220-
施「取位冪」於「丙」。乘其以「上位冪」。乘其以「上位冪」。乃得矣。
226+
施「取本位冪」於「丙」。乘其以「上位冪」。乘其以「上位冪」。乃得矣。
221227
若非。
222228
乃得「乙」也。
223229
云云。
224-
是謂「取位冪」之術也。
230+
是謂「取本位冪」之術也。
225231

226232
吾有一術。名之曰「分算」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
227233
注曰。「「分算者。其位上下二分。借二算布之也。」」。
228-
吾有一列。名之曰「」。
234+
吾有一列。名之曰「二算」。
229235
施「絕對」於「甲」。名之曰「乙」。
230236
若「乙」小於「分算上溢限甲」者。
231237
乘「乙」以「分算常數」。名之曰「丙」。
232238
減「丙」於「甲」。名之曰「丁」。
233239
加「丁」於「丙」。名之曰「上甲」。
234-
充「」以「上甲」。
235-
減「甲」以「上甲」。充「」以其。
240+
充「二算」以「上甲」。
241+
減「甲」以「上甲」。充「二算」以其。
236242
若非。
237243
若「乙」小於「分算上溢限乙」者。
238244
乘「甲」以「下位冪」。名之曰「丙」。
239245
施「分算」於「丙」。名之曰「丁」。
240246
凡「丁」中之「戊」。
241-
乘「戊」以「上位冪」。充「」以其。
247+
乘「戊」以「上位冪」。充「二算」以其。
242248
云云。
243249
若非。
244250
減「乙」以「分算上溢限乙」。名之曰「丙」。
245251
若「丙」小於「分算上溢限乙」者。
246252
施「正負」於「甲」。名之曰「符」。
247-
乘「符」於「分算上溢限乙」。充「」以其。
248-
乘「符」於「丙」。充「」以其。
253+
乘「符」於「分算上溢限乙」。充「二算」以其。
254+
乘「符」於「丙」。充「二算」以其。
249255
若非。
250-
充「」以「甲」。以「甲」。
256+
充「二算」以「甲」。以「甲」。
251257
云云。
252258
云云。
253259
云云。
254-
乃得「」。
260+
乃得「二算」。
255261
是謂「分算」之術也。
256262

263+
吾有一術。名之曰「以小加大得雙」。欲行是術。必先得二數。曰「小」。曰「大」。乃行是術曰。
264+
注曰「「大小者。二數移位之大小也。或前小而後大。或同。不可反之。」」
265+
加「小」於「大」。名之曰「上和」。
266+
減「大」於「上和」。名之曰「丙」。
267+
減「丙」於「小」。名之曰「下和」。
268+
吾有一列。名之曰「雙」。充「雙」以「上和」。以「下和」。乃得「雙」。
269+
是謂「以小加大得雙」之術也。
270+
271+
吾有一術。名之曰「自乘得雙」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
272+
乘「甲」以「甲」。名之曰「上方」。
273+
施「分算」於「甲」。名之曰「分甲」。
274+
夫「分甲」之一。名之曰「上甲」。
275+
夫「分甲」之二。名之曰「下甲」。
276+
乘「上甲」於「上甲」。減其以「上方」。名之曰「丙」。
277+
乘「上甲」於「下甲」。乘其以二。加其於「丙」。名之曰「丁」。
278+
乘「下甲」於「下甲」。加其於「丁」。名之曰「下方」。
279+
吾有一列。名之曰「雙」。充「雙」以「上方」。以「下方」。乃得「雙」。
280+
是謂「自乘得雙」之術也。
281+
282+
今有一術。名之曰「浮點移位」。欲行是術。必先得二數。曰「本」。曰「位」。乃行是術曰。
283+
注曰「「位正則進位。負則退位。」」
284+
若「位」不大於「至大指」者。若「位」不小於「至小指」者。
285+
施「求進冪」於「位」。乘其於「本」。乃得矣。
286+
云云。云云。
287+
288+
施「不可算數乎」於「本」。若其者。
289+
乃得「本」也。
290+
施「不可算數乎」於「位」。若其者。
291+
乃得「位」也。
292+
若「位」大於零者。
293+
加二於「位極差」。名之曰「限」。
294+
若「位」不大於「限」者。
295+
夫「本」。減「位」以「至大指」。取二以施「浮點移位」。乘其以「巨位冪」。乃得矣。云云。
296+
若「位」不大於「至巨數」者。
297+
夫「本」。減「限」以「至大指」。取二以施「浮點移位」。乘其以「巨位冪」。乃得矣。云云。
298+
若「本」不等於零者。
299+
施「正負」於「本」。取一以施「上溢」。乃得矣。
300+
若非。
301+
施「不可算」。乃得矣。
302+
云云。
303+
若非。
304+
減負二以「位極差」。名之曰「限」。
305+
若「位」不小於「限」者。
306+
夫「本」。減「位」以「至小指」。取二以施「浮點移位」。乘其以「微位冪」。乃得矣。云云。
307+
乘負一於「至巨數」。若「位」不小於其者。
308+
夫「本」。減「限」以「至小指」。取二以施「浮點移位」。乘其以「微位冪」。乃得矣。云云。
309+
施「絕對」於「本」。若其不大於「至巨數」者。
310+
乘「本」以「浮點零」。乃得矣。
311+
若非。
312+
施「不可算」。乃得矣。
313+
云云。
314+
云云。
315+
是謂「浮點移位」之術也。
316+
317+
今有一術。名之曰「析浮點數」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
318+
注曰「「是術得一物。物有三數。曰符。曰位。曰本。符者。正負也。位者。進退位也。本者。本數也。」」
319+
注曰「「設計算機二進。若施是術於負六。乃得符負一。位二。本一又五分。」」
320+
吾有一術。名之曰「造析」。欲行是術。必先得三數。曰「符」。曰「位」。曰「本」。乃行是術曰。
321+
吾有一物。名之曰「析」。其物如是。
322+
物之「「符」」者。數曰「符」。
323+
物之「「位」」者。數曰「位」。
324+
物之「「本」」者。數曰「本」。
325+
是謂「析」之物也。
326+
乃得「析」。
327+
是謂「造析」之術也。
328+
329+
吾有一術。名之曰「乘」。欲行是術。必先得二數。曰「丙」。曰「丁」。乃行是術曰。
330+
乘「丙」於「丁」。乃得矣。
331+
是謂「乘」之術也。
332+
333+
施「正負」於「甲」。名之曰「符」。乘「符」於「甲」。名之曰「乙」。
334+
若「甲」等於零者。
335+
夫「符」。施「除以零」於負一。夫「乙」。取三以施「造析」。乃得矣。云云。
336+
施「不可算數乎」於「甲」。若其者。
337+
夫「符」。夫「甲」。夫「乙」。取三以施「造析」。乃得矣。云云。
338+
若「乙」大於「至巨數」者。
339+
夫「符」。夫「乙」。夫「乙」。取三以施「造析」。乃得矣。云云。
340+
341+
若「乙」不小於一者。
342+
吾有一術。名之曰「據」。欲行是術。必先得一數。曰「丙」。乃行是術曰。
343+
乘「丙」以「進制」。若其大於「乙」者。乃得陽。若非。乃得陰也。
344+
是謂「據」之術也。
345+
夫「至大指」。夫「浮點一」。夫「進制」。夫「乘」。夫「據」。取五以施「試界」。名之曰「位表」。
346+
夫「位表」之「「引」」。名之曰「位」。
347+
夫「位表」之「「實」」。除其於「乙」。名之曰「本」。
348+
夫「符」。夫「位」。夫「本」。取三以施「造析」。乃得矣。
349+
若非。
350+
吾有一術。名之曰「據」。欲行是術。必先得一數。曰「丙」。乃行是術曰。
351+
若「丙」不大於「乙」者。乃得陽。若非。乃得陰也。
352+
是謂「據」之術也。
353+
減「至小指」於「總算位」。夫「浮點一」。夫「退制」。夫「乘」。夫「據」。取五以施「試界」。名之曰「位表」。
354+
夫「位表」之「「引」」。減其於零。名之曰「位」。
355+
夫「位表」之「「實」」。除其於「乙」。名之曰「本」。
356+
夫「符」。夫「位」。夫「本」。取三以施「造析」。乃得矣。
357+
云云。
358+
是謂「析浮點數」之術也。
359+
257360
今有一術。名之曰「正弦」。欲行是術。必先得一數曰「甲」。乃行是術曰。
258361
注曰「「數小甚矣。乃得其身。否則以泰勒展開求之。復以週期性得其餘。」」
259362

@@ -498,13 +601,13 @@
498601
若「指」小於零者。夫「底」。減零以「指」。取二以施「冪」。除其於一。乃得其也。
499602

500603
施「取整」於「指」。名之曰「乙」。
501-
604+
502605
有數一。名之曰「甲」。
503606
為是「乙」遍。乘「甲」以「底」。昔之「甲」者。今其是矣。云云。
504607
若「乙」等於「指」者。乃得「甲」也。
505608

506609
減「指」以「乙」。名之曰「丙」。
507-
610+
508611
施「對數」於「底」。乘其以「丙」。取一以施「指數」。乘其以「甲」。乃得矣。
509612

510613
是謂「冪」之術也。
@@ -523,8 +626,7 @@
523626
是謂「平方根」之術也。
524627

525628
今有一術。名之曰「絕對」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
526-
若「甲」大於零者。乃得「甲」也。
527-
減零以「甲」。名之曰「乙」。乃得「乙」。
629+
施「正負」於「甲」。名之曰「符」。乘「符」於「甲」。乃得矣。
528630
是謂「絕對」之術也。
529631

530632
今有一術。名之曰「取頂」。欲行是術。必先得一數。曰「甲」。乃行是術曰。

0 commit comments

Comments
 (0)