package math
func ( float64) (, float64) {
const (
= 7.85398125648498535156e-1
= 3.77489470793079817668e-8
= 2.69515142907905952645e-15
)
switch {
case == 0:
return , 1
case IsNaN() || IsInf(, 0):
return NaN(), NaN()
}
, := false, false
if < 0 {
= -
= true
}
var uint64
var , float64
if >= reduceThreshold {
, = trigReduce()
} else {
= uint64( * (4 / Pi))
= float64()
if &1 == 1 {
++
++
}
&= 7
= (( - *) - *) - *
}
if > 3 {
-= 4
, = !, !
}
if > 1 {
= !
}
:= *
= 1.0 - 0.5* + **((((((_cos[0]*)+_cos[1])*+_cos[2])*+_cos[3])*+_cos[4])*+_cos[5])
= + **((((((_sin[0]*)+_sin[1])*+_sin[2])*+_sin[3])*+_sin[4])*+_sin[5])
if == 1 || == 2 {
, = ,
}
if {
= -
}
if {
= -
}
return
}