|
|
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.