;; x values must fall within the range -PI ... PI
(bind-func _sin
(let ((i 0)
(p (v4val 0.225))
(b (v4val (/ 4.0 PIf)))
(y:/4,float/* (zalloc))
(c (v4val (/ -4.0 (* PIf PIf)))))
(lambda (x:/4,float/*)
(pset! y 0 (+ (* b x) (* c x (v4fabsf x))))
(pset! y 0 (+ (* p (- (* y (v4fabsf y)) y)) y))
y)))