Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,31 @@
|
|||
import Darwin
|
||||
|
||||
enum AGRError : Error {
|
||||
case undefined
|
||||
}
|
||||
|
||||
func agm(_ a: Double, _ g: Double, _ iota: Double = 1e-8) throws -> Double {
|
||||
var a = a
|
||||
var g = g
|
||||
var a1: Double = 0
|
||||
var g1: Double = 0
|
||||
|
||||
guard a * g >= 0 else {
|
||||
throw AGRError.undefined
|
||||
}
|
||||
|
||||
while abs(a - g) > iota {
|
||||
a1 = (a + g) / 2
|
||||
g1 = sqrt(a * g)
|
||||
a = a1
|
||||
g = g1
|
||||
}
|
||||
|
||||
return a
|
||||
}
|
||||
|
||||
do {
|
||||
try print(agm(1, 1 / sqrt(2)))
|
||||
} catch {
|
||||
print("agr is undefined when a * g < 0")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue