home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 471 / rccl108 < prev    next >
Text File  |  1987-03-02  |  928b  |  48 lines

  1. # double _sinh(arg)
  2. # double _cosh(arg)
  3. # double arg
  4. # method: compute from exp except for sinh where -.5<arg<.5
  5. # then a polynimial approx. is uded
  6. # JF Jarvis, August 12,1978
  7. .globl _sinh
  8. .globl _cosh
  9. .globl _exp
  10. .text
  11. .align 1
  12. _sinh:
  13.     .word    0x0c0
  14.     movd    4(ap),r6
  15.     cmpd    r6,$0d0.5e+0
  16.     jgeq    expfrm
  17.     cmpd    r6,$0d-0.5e+0
  18.     jleq    expfrm
  19.     muld3    r6,r6,r0    # Hart&Cheney SINH 1985
  20.     polyd    r0,$5,pcoef
  21.     muld2    r6,r0
  22.     ret
  23. expfrm:
  24.     movd    r6,-(sp)    # sinh(x)=(exp(x)-exp(-x))/2
  25.     calls    $2,_exp
  26.     divd3    r0,$0d1.0e+0,r2
  27.     subd2    r2,r0
  28.     muld2    $0d0.5e+0,r0
  29.     ret
  30. .align 1
  31. _cosh:
  32.     .word    0x0
  33.     movd    4(ap),-(sp)
  34.     calls    $2,_exp
  35.     divd3    r0,$0d1.0e+0,r2
  36.     addd2    r2,r0
  37.     muld2    $0d0.5e+0,r0
  38.     ret
  39. .data
  40. .align    2
  41. pcoef:
  42.     .double 0d0.251726188251e-7
  43.     .double 0d0.275569807356154e-5
  44.     .double 0d0.1984127027907999e-3
  45.     .double 0d0.833333333307759961e-2
  46.     .double 0d0.16666666666667212324e+0
  47.     .double 0d0.99999999999999998116e+0
  48.