home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 202.lha / FFT / X*.ASM < prev   
Encoding:
Assembly Source File  |  1988-12-28  |  898 b   |  64 lines

  1. INCLUDE? ASSEMBLER JU:ASM
  2.  
  3. \ Nick Didkovsky, Robert Marsanyi 
  4.  
  5. \                 Complex Multiply
  6.  
  7. \   ( imag1 real1 imag2 real2 scaler -- imag real)
  8.  
  9. DECIMAL
  10. HASH.OFF
  11.  
  12. ANEW TASK-CMPX_MULT
  13.  
  14. CODE X*
  15.  2DR DN 0AR AN MOVE
  16.  3DR DN 1AR AN MOVE
  17.  
  18.  TOS DN 0DR DN MOVE
  19.  DSP A@+ TOS DN MOVE
  20.  
  21.  DSP 4 AN+W 1DR DN MOVE
  22.  TOS DN 1DR DN MULS
  23.  
  24.   DSP A@ 2DR DN MOVE
  25.   DSP 8 AN+W 3DR DN MOVE
  26.   3DR DN 2DR DN MULS
  27.   2DR DN 1DR DN SUB
  28.   0DR DN 1DR DN LONG DIVS
  29.   1DR DN LONG EXT
  30.  
  31.   TOS DN 3DR DN MULS
  32.  
  33.   DSP A@ 2DR DN MOVE 
  34.   DSP 6 AN+W 2DR DN MULS
  35.   3DR DN 2DR DN LONG ADD
  36.  
  37.   0DR DN 2DR DN LONG DIVS
  38.   2DR DN LONG EXT
  39.  
  40.   8 # DSP AN ADDQ
  41.   4 # DSP AN ADDQ
  42.   2DR DN DSP -A@ MOVE
  43.   1DR DN TOS DN MOVE
  44.  
  45.   0AR AN 2DR DN MOVE
  46.   1AR AN 3DR DN MOVE
  47. RTS
  48. END-CODE
  49.  
  50. HASH.ON
  51.  
  52. : TEST 2 3 4 5 1 X* ;
  53.  
  54. : CMPX.BENCH
  55.   0 DO
  56.      2 3 4 5 1 X*
  57.      2DROP
  58. LOOP
  59. ;
  60.  
  61. \ 10000 takes 1.18 seconds, versus 8.06 seconds non-assembler version !!
  62.  
  63.  
  64.