Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,25 @@
|
|||
(ns agmcompute
|
||||
(:gen-class))
|
||||
|
||||
; Java Arbitray Precision Library
|
||||
(import '(org.apfloat Apfloat ApfloatMath))
|
||||
|
||||
(def precision 70)
|
||||
(def one (Apfloat. 1M precision))
|
||||
(def two (Apfloat. 2M precision))
|
||||
(def half (Apfloat. 0.5M precision))
|
||||
(def isqrt2 (.divide one (ApfloatMath/pow two half)))
|
||||
(def TOLERANCE (Apfloat. 0.000000M precision))
|
||||
|
||||
(defn agm [a g]
|
||||
" Simple AGM Loop calculation "
|
||||
(let [THRESH 1e-65 ; done when error less than threshold or we exceed max loops
|
||||
MAX-LOOPS 1000000]
|
||||
(loop [[an gn] [a g], cnt 0]
|
||||
(if (or (< (ApfloatMath/abs (.subtract an gn)) THRESH)
|
||||
(> cnt MAX-LOOPS))
|
||||
an
|
||||
(recur [(.multiply (.add an gn) half) (ApfloatMath/pow (.multiply an gn) half)]
|
||||
(inc cnt))))))
|
||||
|
||||
(println (agm one isqrt2))
|
||||
Loading…
Add table
Add a link
Reference in a new issue