|
|
1.1 ! root 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: bispsw $0xe0 ! 15: movd 4(ap),r6 ! 16: cmpd r6,$0d0.5e+0 ! 17: jgeq expfrm ! 18: cmpd r6,$0d-0.5e+0 ! 19: jleq expfrm ! 20: muld3 r6,r6,r0 # Hart&Cheney SINH 1985 ! 21: polyd r0,$5,pcoef ! 22: muld2 r6,r0 ! 23: ret ! 24: expfrm: ! 25: movd r6,-(sp) # sinh(x)=(exp(x)-exp(-x))/2 ! 26: calls $2,_exp ! 27: divd3 r0,$0d1.0e+0,r2 ! 28: subd2 r2,r0 ! 29: muld2 $0d0.5e+0,r0 ! 30: ret ! 31: .align 1 ! 32: _cosh: ! 33: .word 0x0 ! 34: bispsw $0xe0 ! 35: movd 4(ap),-(sp) ! 36: calls $2,_exp ! 37: divd3 r0,$0d1.0e+0,r2 ! 38: addd2 r2,r0 ! 39: muld2 $0d0.5e+0,r0 ! 40: ret ! 41: .data ! 42: .align 2 ! 43: pcoef: ! 44: .double 0d0.251726188251e-7 ! 45: .double 0d0.275569807356154e-5 ! 46: .double 0d0.1984127027907999e-3 ! 47: .double 0d0.833333333307759961e-2 ! 48: .double 0d0.16666666666667212324e+0 ! 49: .double 0d0.99999999999999998116e+0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.