Skip to content

Commit 81117a7

Browse files
[stdlib] Improve sqrt (4/3/3)
Robust: 4/4 (Does it work for all input values?) Accurate: 3/4 (How accurate is the result?) Well behaved: 3/4 (Does it satisfy math properties?)
1 parent 040ab47 commit 81117a7

File tree

1 file changed

+42
-19
lines changed

1 file changed

+42
-19
lines changed

lib/算經.wy

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
吾有一數。名之曰「假自然常數」。
33
吾有一數。名之曰「假歐拉常數」。
44
吾有一數。名之曰「假黃金分割數」。
5+
吾有一數。名之曰「假二之平方根」。
56

67
吾有二數。曰一。曰一。名之曰「進制」。名之曰「退制」。
78
吾有三數。曰零。曰一。曰一。名之曰「總算位」。曰「上位冪」。曰「下位冪」。
@@ -126,38 +127,43 @@
126127
乘「至微數」以「上位冪」。昔之「微位冪」者。今其是矣。
127128
減「總算位」於「至小指」。減其於「至大指」。昔之「位極差」者。今其是矣。
128129

129-
注曰「「以上驗算制。」」
130+
注曰「「以上驗算制。」」
130131

131132
除二百一十億五千三百三十四萬三千一百四十一以六十七億零一百四十八萬七千二百五十九。
132133
昔之「假圓周率」者。今其是矣。
133-
注曰「「圓周率者。三又一分四釐一毫有奇也。」」
134+
注曰「「圓周率者。三又一分四釐一毫有奇也。」」
134135

135136
除二百八十八億七千五百七十六萬一千七百三十一以一百零六億二千二百七十九萬九千零八十九。
136137
昔之「假自然常數」者。今其是矣。
137-
注曰「「自然常數者。二又七分一釐八毫有奇也。」」
138+
注曰「「自然常數者。二又七分一釐八毫有奇也。」」
138139

139140
除一百三十九億零五百七十八萬七千四百三十五以二百四十億九千一百一十四萬七千零二。
140141
昔之「假歐拉常數」者。今其是矣。
141-
注曰「「歐拉常數者。五分七釐七毫二絲有奇也。」」
142+
注曰「「歐拉常數者。五分七釐七毫二絲有奇也。」」
142143

143144
除三百二十九億五千一百二十八萬零九十九以二百零三億六千五百零一萬一千零七十四。
144145
昔之「假黃金分割數」者。今其是矣。
145-
注曰「「黃金分割數者。一又六分一釐八毫有奇也。」」
146+
注曰「「黃金分割數者。一又六分一釐八毫有奇也。」」
146147

147-
注曰。「「以上求常數。」」。
148+
除二百六十一億零二百九十二萬六千零九十七以一百八十四億五千七百五十五萬六千零五十二。
149+
昔之「假二之平方根」者。今其是矣。
150+
注曰「「二之平方根者。一又四分一釐四毫有奇也。」」
151+
152+
注曰「「以上求常數。」」
148153
是謂「盤古」之術也。
149154
施「盤古」。
150155

151-
今有一數。曰「假圓周率」。名之曰「圓周率」。注曰「「圓周率者。三又一分四釐一毫有奇也。」」
156+
今有一數。曰「假圓周率」。名之曰「圓周率」。注曰「「圓周率者。三又一分四釐一毫有奇也。」」
152157
乘二於「圓周率」。名之曰「假倍圓周率」。
153158
今有一數。曰「假倍圓周率」。名之曰「倍圓周率」。
154159
除二於「圓周率」。名之曰「假半圓周率」。
155160
今有一數。曰「假半圓周率」。名之曰「半圓周率」。
156161
除四於「圓周率」。名之曰「假四分圓周率」。
157162
今有一數。曰「假四分圓周率」。名之曰「四分圓周率」。
158-
今有一數。曰「假自然常數」。名之曰「自然常數」。注曰。「「自然常數者。二又七分一釐八毫有奇也。」」。
159-
今有一數。曰「假歐拉常數」。名之曰「歐拉常數」。注曰。「「歐拉常數者。五分七釐七毫二絲有奇也。」」。
160-
今有一數。曰「假黃金分割數」。名之曰「黃金分割數」。注曰。「「黃金分割數者。一又六分一釐八毫有奇也。」」。
163+
今有一數。曰「假自然常數」。名之曰「自然常數」。注曰「「自然常數者。二又七分一釐八毫有奇也。」」
164+
今有一數。曰「假歐拉常數」。名之曰「歐拉常數」。注曰「「歐拉常數者。五分七釐七毫二絲有奇也。」」
165+
今有一數。曰「假黃金分割數」。名之曰「黃金分割數」。注曰「「黃金分割數者。一又六分一釐八毫有奇也。」」
166+
今有一數。曰「假二之平方根」。名之曰「二之平方根」。注曰「「二之平方根者。一又四分一釐四毫有奇也。」」
161167

162168
今有一術。名之曰「不可算數乎」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
163169
若「甲」等於「甲」者。乃得陰。
@@ -214,7 +220,7 @@
214220
施「伏羲」。
215221

216222
吾有一術。名之曰「取本位冪」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
217-
注曰「「二進者方可施是術。」」
223+
注曰「「二進者方可施是術。」」
218224
施「絕對」於「甲」。名之曰「乙」。
219225
若「乙」小於「取位上溢限」者。
220226
乘「乙」以「取位常數甲」。名之曰「丙」。
@@ -230,7 +236,7 @@
230236
是謂「取本位冪」之術也。
231237

232238
吾有一術。名之曰「分算」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
233-
注曰「「分算者。其位上下二分。借二算布之也。」」
239+
注曰「「分算者。其位上下二分。借二算布之也。」」
234240
吾有一列。名之曰「二算」。
235241
施「絕對」於「甲」。名之曰「乙」。
236242
若「乙」小於「分算上溢限甲」者。
@@ -612,17 +618,34 @@
612618

613619
是謂「冪」之術也。
614620

621+
有數四分一釐七毫三絲一忽九微。名之曰「平方根常數甲」。
622+
注曰「「 (2^0.5 - 1) * sqrt((2^0.25 + 2^-0.25) / 2) 」」
623+
減一於「二之平方根」。乘其以二。名之曰「平方根常數乙」。
624+
615625
今有一術。名之曰「平方根」。欲行是術。必先得一數曰「甲」。乃行是術曰。
626+
若「甲」大於零者。若非。
627+
注曰「「浮點數相較。所得有四。曰小於。曰等於。曰大於。曰無序。故非大於者與不大於者異也。」」
628+
若「甲」等於零者。乃得「浮點零」也。
629+
若「甲」小於零者。施「不可算」。乃得矣。云云。
630+
乃得「甲」。
631+
云云。
632+
若「甲」大於「至巨數」者。
633+
乃得「甲」也。
634+
635+
施「析浮點數」於「甲」。名之曰「析甲」。
636+
夫「析甲」之「「位」」。除其以二。名之曰「半位」。
637+
施「取底」於「半位」。名之曰「整半位」。
638+
夫「析甲」之「「本」」。加其以「二之平方根」。乘其以「平方根常數甲」。名之曰「丁」。
639+
減「半位」以「整半位」。乘其以「平方根常數乙」。加其以一。乘其以「丁」。名之曰「戊」。
640+
施「求進冪」於「整半位」。乘其於「戊」。名之曰「乙」。
641+
注曰「「以上求疏根」」
642+
616643
批曰「「蓋用牛頓法耳」」
617-
有數零又一忽。名之曰「忍」。
618-
若「甲」等於零者。乃得零也。
619-
施「絕對」於「甲」。名之曰「乙」
620-
恆為是
644+
為是三遍。
621645
除「甲」以「乙」。加其以「乙」。除其以二。名之曰「丙」。
622-
減「乙」以「丙」。取一以施「絕對」。若其小於「忍」者。乃止也
623646
昔之「乙」者。今「丙」是矣。
624647
云云。
625-
乃得「」。
648+
乃得「」。
626649
是謂「平方根」之術也。
627650

628651
今有一術。名之曰「絕對」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
@@ -635,7 +658,7 @@
635658

636659
今有一術。名之曰「取底」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
637660
施「正負」於「甲」。名之曰「符」。乘「符」於「甲」。名之曰「乙」。
638-
注曰「「JavaScript者。除負以正。所餘負也。Python者。除負以正。所餘正也。」」
661+
注曰「「JavaScript者。除負以正。所餘負也。Python者。除負以正。所餘正也。」」
639662
除「乙」以一。所餘幾何。名之曰「丙」。
640663
若「丙」大於零者。
641664
減「丙」於「乙」。乘其以「符」。名之曰「丁」。

0 commit comments

Comments
 (0)