diff options
Diffstat (limited to 'src/lib/math/atan.go')
-rw-r--r-- | src/lib/math/atan.go | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/lib/math/atan.go b/src/lib/math/atan.go index 43990fe40..f2fd7ed33 100644 --- a/src/lib/math/atan.go +++ b/src/lib/math/atan.go @@ -15,30 +15,30 @@ package math const ( - p4 = .161536412982230228262e2; - p3 = .26842548195503973794141e3; - p2 = .11530293515404850115428136e4; - p1 = .178040631643319697105464587e4; - p0 = .89678597403663861959987488e3; - q4 = .5895697050844462222791e2; - q3 = .536265374031215315104235e3; - q2 = .16667838148816337184521798e4; - q1 = .207933497444540981287275926e4; - q0 = .89678597403663861962481162e3; - pio2 = .15707963267948966192313216e1; - pio4 = .7853981633974483096156608e0; - sq2p1 = .2414213562373095048802e1; // sqrt(2)+1 - sq2m1 = .414213562373095048802e0; // sqrt(2)-1 + ap4 = .161536412982230228262e2; + ap3 = .26842548195503973794141e3; + ap2 = .11530293515404850115428136e4; + ap1 = .178040631643319697105464587e4; + ap0 = .89678597403663861959987488e3; + aq4 = .5895697050844462222791e2; + aq3 = .536265374031215315104235e3; + aq2 = .16667838148816337184521798e4; + aq1 = .207933497444540981287275926e4; + aq0 = .89678597403663861962481162e3; + apio2 = .15707963267948966192313216e1; + apio4 = .7853981633974483096156608e0; + asq2p1 = .2414213562373095048802e1; // sqrt(2)+1 + asq2m1 = .414213562373095048802e0; // sqrt(2)-1 ) /* * xatan evaluates a series valid in the * range [-0.414...,+0.414...]. (tan(pi/8)) */ -func Xatan(arg float64) float64 { +func xatan(arg float64) float64 { argsq := arg*arg; - value := ((((p4*argsq + p3)*argsq + p2)*argsq + p1)*argsq + p0); - value = value/(((((argsq + q4)*argsq + q3)*argsq + q2)*argsq + q1)*argsq + q0); + value := ((((ap4*argsq + ap3)*argsq + ap2)*argsq + ap1)*argsq + ap0); + value = value/(((((argsq + aq4)*argsq + aq3)*argsq + aq2)*argsq + aq1)*argsq + aq0); return value*arg; } @@ -46,14 +46,14 @@ func Xatan(arg float64) float64 { * satan reduces its argument (known to be positive) * to the range [0,0.414...] and calls xatan. */ -func Satan(arg float64) float64 { - if arg < sq2m1 { - return Xatan(arg); +func satan(arg float64) float64 { + if arg < asq2m1 { + return xatan(arg); } - if arg > sq2p1 { - return pio2 - Xatan(1/arg); + if arg > asq2p1 { + return apio2 - xatan(1/arg); } - return pio4 + Xatan((arg-1)/(arg+1)); + return apio4 + xatan((arg-1)/(arg+1)); } /* @@ -62,7 +62,7 @@ func Satan(arg float64) float64 { */ export func Atan(arg float64) float64 { if arg > 0 { - return Satan(arg); + return satan(arg); } - return -Satan(-arg); + return -satan(-arg); } |