Skip to content

Commit

Permalink
Merge pull request #424 from statementreply/accurate-sqrt
Browse files Browse the repository at this point in the history
stdlib: Implement correctly rounded sqrt (4/4/4)
  • Loading branch information
LingDong- authored Dec 29, 2019
2 parents 0c2f8b9 + dfbeeed commit f5907d4
Showing 1 changed file with 42 additions and 7 deletions.
49 changes: 42 additions & 7 deletions lib/算經.wy
Original file line number Diff line number Diff line change
Expand Up @@ -748,16 +748,31 @@
有數四分一釐七毫三絲一忽九微。名之曰「平方根常數甲」。
注曰「「 (2^0.5 - 1) * sqrt((2^0.25 + 2^-0.25) / 2) 」」
減一於「二之平方根」。乘其以二。名之曰「平方根常數乙」。
乘「上位冪」於「微位冪」。乘其以「進制」。乘其以「進制」。名之曰「平方根下溢界」。

今有一術。名之曰「平方根」。欲行是術。必先得一數曰「甲」。乃行是術曰。
若「甲」大於零者。若非。
注曰「「浮點數相較。所得有四。曰小於。曰等於。曰大於。曰無序。故非大於者與不大於者異也。」」
若「甲」等於零者。乃得「浮點零」也。
若「甲」小於零者。施「不可算」。乃得矣。云云。
乃得「甲」。
有爻陽。名之曰「非常」。
若「甲」不小於「平方根下溢界」者。若「甲」小於「巨位冪」者。
昔之「非常」者。今陰是矣。
云云。云云。
若「非常」者。
若「甲」等於零者。
乃得「浮點零」也。
施「不可算數乎」於「甲」。若其者。
乃得「甲」也。
若「甲」大於「至巨數」者。
乃得「甲」也。
若「甲」小於零者。
施「不可算」。乃得矣。云云。
若「甲」不大於「平方根下溢界」者。
乘「甲」以「上位冪」。乘其以「上位冪」。乘其以「進制」。乘其以「進制」。取一以施「平方根」。
乘其以「下位冪」。乘其以「退制」。乃得矣。
云云。
若「甲」不小於「巨位冪」者。
乘「甲」以「退制」。乘其以「退制」。取一以施「平方根」。
乘其以「進制」。乃得矣。
云云。
云云。
若「甲」大於「至巨數」者。
乃得「甲」也。

施「析浮點數」於「甲」。名之曰「析甲」。
夫「析甲」之「「位」」。除其以二。名之曰「半位」。
Expand All @@ -772,6 +787,26 @@
除「甲」以「乙」。加其以「乙」。除其以二。名之曰「丙」。
昔之「乙」者。今「丙」是矣。
云云。

注曰「「以下校末位。」」
施「取內鄰數」於「乙」。名之曰「下數」。
施「相乘得雙」於「乙」。於「下數」。名之曰「下積」。
夫「下積」之一。若其大於「甲」者。
乃得「下數」也。
夫「下積」之一。若其等於「甲」者。夫「下積」之二。若其不小於零者。
乃得「下數」。
云云。云云。
注曰「「若甲等於中數乘下數者。其平方根不足下半間數。捨餘得下數也。」」

施「取外鄰數」於「乙」。名之曰「上數」。
施「相乘得雙」於「乙」。於「上數」。名之曰「上積」。
夫「上積」之一。若其小於「甲」者。
乃得「上數」也。
夫「上積」之一。若其等於「甲」者。夫「上積」之二。若其小於零者。
乃得「上數」。
云云。云云。
注曰「「若甲等於中數乘上數者。其平方根不足上半間數。捨餘得中數也。」」

乃得「乙」。
是謂「平方根」之術也。

Expand Down

0 comments on commit f5907d4

Please sign in to comment.