home *** CD-ROM | disk | FTP | other *** search
/ Dream 48 / Amiga_Dream_48.iso / Atari / forth / forst.zoo / forst / lib / trig.s < prev    next >
Text File  |  1990-12-10  |  942b  |  41 lines

  1. decimal
  2. : module ;
  3.  
  4. 10000000  i>f constant 10mill
  5. -1666667  i>f 10mill f/ constant s3
  6.    83333  i>f 10mill f/ constant s5
  7.    -1984  i>f 10mill f/ constant s7
  8.       28  i>f 10mill f/ constant s9
  9.  
  10. 355 i>f 113 i>f f/ constant pi
  11. pi 2 i>f f/ constant pi/2
  12. pi 4 i>f f/ constant pi/4
  13. pi 2 i>f f* constant 2pi
  14.  
  15. : (sin) { 1 arg angle  2 locals square term }
  16.  
  17.   angle to term
  18.   angle dup f* to square
  19.  
  20.   angle          term square f* to term
  21.   term s3 f* f+  term square f* to term
  22.   term s5 f* f+  term square f* to term
  23.   term s7 f* f+  term square f* to term
  24.   term s9 f* f+ ;
  25.  
  26. : sin { 1 arg angle  1 local sign }
  27.  
  28.   angle 0< to sign
  29.   angle fabs to angle
  30.   angle 2pi >
  31.   if  angle 2pi fmod to angle  then
  32.   angle pi >
  33.   if  angle pi f- to angle  sign not to sign  then
  34.   angle pi/2 >
  35.   if  pi angle f- to angle then
  36.   angle (sin)  sign if fnegate then ;
  37.  
  38. : cos  pi/2 f+ sin ;
  39.  
  40. : tan  dup sin swap cos f/ ;
  41.