|
|
1.1 root 1: #
2: # Copyright (c) 1980 Regents of the University of California.
3: # All rights reserved. The Berkeley software License Agreement
4: # specifies the terms and conditions for redistribution.
5: #
6: # @(#)sin.s 5.1 (Berkeley) 5/8/85
7: #
8: #
9: # double float sin(),cos()
10: #coefficients are from Hart & Cheney SIN3370 (18.80D)
11: .text
12: .align 1
13: .globl _sin
14: .globl _cos
15: _sin:
16: .word 0x03c0
17: bispsw $0xe0
18: clrl r9
19: movd 4(ap),r0
20: jgeq range
21: movl $2,r9
22: jbr negarg
23:
24: .align 1
25: _cos:
26: .word 0x0fc0
27: bispsw $0xe0
28: movl $1,r9
29: movd 4(ap),r0
30: jgeq range
31: negarg:
32: mnegd r0,r0
33:
34: range:
35: emodd twoopi,twoopix,r0,r8,r6
36: addl2 r9,r8
37: bicb2 $~03,r8
38: caseb r8,$0,$3
39: bse: .word qda-bse,qdb-bse,qdc-bse,qdd-bse
40: qdb: subd3 r6,$0d1.0e+0,r6
41: jbr qda
42: qdc: mnegd r6,r6
43: jbr qda
44: qdd: subd2 $0d1.0e+0,r6
45: qda:
46: muld3 r6,r6,r8
47: polyd r8,$4,pcoef
48: muld2 r0,r6
49: polyd r8,$4,qcoef
50: divd3 r0,r6,r0
51: ret
52: .data
53: .align 2
54: twoopi:.double 0d6.36619772367581340000e-01
55: qcoef:.double 0d1.00000000000000000000e+00
56: .double 0d1.32653490878613630000e+02
57: .double 0d9.46309610153820810000e+03
58: .double 0d4.08179225234329970000e+05
59: .double 0d8.64455865292253430000e+06
60: pcoef:.double 0d1.45968840666576870000e+02
61: .double 0d-1.38472724998245280000e+04
62: .double 0d4.40103053537526640000e+05
63: .double 0d-4.94290810090284410000e+06
64: .double 0d1.35788409787737560000e+07
65: twoopix: .byte 0x29
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.