home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 326.lha / KFFT_v1.1 / cmplx.doc.pp / cmplx.doc
Text File  |  1990-01-06  |  2KB  |  51 lines

  1. Cmplx.doc - Forth Complex Arithmetic Support Words for KFFT
  2. Jerry Kallaus  02/14/89
  3.  
  4. The current version of the FFT code uses complex stack arithmetic
  5. words which conditionally compile to perform either fixed point
  6. or floating point (FFP) arithmetic.
  7.  
  8. Complex number definitions.
  9. Each complex value occupies 2 cells for the real and imaginary parts.
  10. Convention for complex number on stack  is the imaginary part is on top.
  11. Convention for complex number in memory is the real part is at lower addr.
  12.  
  13. In the following, z represents a complex vale, r a real value,
  14. and n a fixed point value.
  15.  
  16. ----------------  Complex Arithmetic Stack Words  ---------------
  17.  
  18. Z+      ( z1 z2 -- z1+z2 )       add
  19. Z-      ( z1 z2 -- z1-z2 )       subtract
  20. Z*      ( z1 z2 -- z1*z2 )       multiply
  21. ZNEGATE ( z -- -z )              negate
  22. ZI*     ( z -- z*i )             multiply z by sqrt(-1)
  23. ZEXP    ( r -- cosr sinr )       complex exponential
  24. ZCONJG  ( z -- conjugate z )     conjugate z
  25.  
  26. Z@      ( addr -- z )            fetch
  27. Z!      ( z addr -- )            store
  28. ZCELL   ( -- zcell  )            complex cell size
  29. ZCELL+  ( n -- n+zcell )         address increment
  30. ZCELL-  ( n -- n-zcell )         address decrement
  31. ZCELLS  ( n -- n*zcells )        multiply by complex cell size
  32. ZDROP   ( z -- )                 complex drop
  33. ZDUP    ( z -- z z )             complex dup
  34. ZOVER   ( z1 z2 -- z1 z2 z1 )    complex over
  35. Z2DUP   ( z1 z2 -- z1 z1 z1 z2 ) complex 2 dup
  36.  
  37. -----------------  Forth Complex Data Type Words  -------------------
  38.  
  39. ZCONSTANT ( z -- ) ( name --input-- )    Create self fetching complex
  40.                                          constant.
  41.  
  42. ZVARIABLE ( name --input-- )             Create complex variable.
  43.  
  44. ZARRAY    ( size -- ) ( name --input-- )    Create complex array.
  45.  
  46.  
  47. Note:  I half expect to find out that the intergalactic Forth
  48. subcommittee on complex arithmetic has had a standard on file
  49. which is contrary to everything here and I'm the last to know
  50. about it!
  51.