home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 471 / rccl109 < prev    next >
Text File  |  1987-03-02  |  1KB  |  56 lines

  1. # double float sin(),cos()
  2. #coefficients are from Hart & Cheney  SIN3370 (18.80D)
  3. .text
  4. .align 1
  5. .globl _sin
  6. .globl _cos
  7. _sin:
  8.     .word 0x03c0
  9.     clrl    r9    
  10.     movd    4(ap),r0
  11.     jgeq    range
  12.     movl    $2,r9
  13.     jbr    negarg
  14.  
  15. .align 1
  16. _cos:
  17.     .word    0x0fc0
  18.     movl    $1,r9
  19.     movd    4(ap),r0
  20.     jgeq    range
  21. negarg:
  22.     mnegd    r0,r0
  23.  
  24. range:
  25.     emodd    twoopi,twoopix,r0,r8,r6
  26.     addl2    r9,r8
  27.     bicb2    $~03,r8
  28.     caseb    r8,$0,$3
  29. bse:    .word    qda-bse,qdb-bse,qdc-bse,qdd-bse
  30. qdb:    subd3    r6,$0d1.0e+0,r6
  31.     jbr    qda
  32. qdc:    mnegd    r6,r6
  33.     jbr    qda
  34. qdd:    subd2    $0d1.0e+0,r6
  35. qda:
  36.     muld3    r6,r6,r8
  37.     polyd    r8,$4,pcoef
  38.     muld2    r0,r6
  39.     polyd    r8,$4,qcoef
  40.     divd3    r0,r6,r0
  41.     ret
  42. .data
  43. .align 2
  44. twoopi:.double    0d6.36619772367581340000e-01
  45. qcoef:.double    0d1.00000000000000000000e+00
  46.  .double    0d1.32653490878613630000e+02
  47.  .double    0d9.46309610153820810000e+03
  48.  .double    0d4.08179225234329970000e+05
  49.  .double    0d8.64455865292253430000e+06
  50. pcoef:.double    0d1.45968840666576870000e+02
  51.  .double    0d-1.38472724998245280000e+04
  52.  .double    0d4.40103053537526640000e+05
  53.  .double    0d-4.94290810090284410000e+06
  54.  .double    0d1.35788409787737560000e+07
  55. twoopix: .byte 0x29
  56.