\ fcos 6/21/00 7:36 pm NAB fvariable n fvariable x 3.14159265e fdup 2e f* fconstant 2pi fconstant pi : fsgn ( F: r -- -1|0|1 ) fpdissect 2drop drop 0 d>f ; : fcos ( F: rad -- cos ) \ Adjust between pi and -pi: fdup 2pi f/ floor 2pi f* f- pi fover f< if fdup fsgn 2pi f* f- then \ Series expansion: fdup f* x f! 1e n f! 2 1e ( F: y ) begin fdup ( F: old y ) n f@ x f@ f* dup dup 1- * 0 d>f f/ fnegate fdup n f! f+ fover fover f- f0= 0= while 2 + fswap fdrop repeat drop fswap fdrop ( F: cos ) ;