home *** CD-ROM | disk | FTP | other *** search
- # double float sin(),cos()
- #coefficients are from Hart & Cheney SIN3370 (18.80D)
- .text
- .align 1
- .globl _sin
- .globl _cos
- _sin:
- .word 0x03c0
- clrl r9
- movd 4(ap),r0
- jgeq range
- movl $2,r9
- jbr negarg
-
- .align 1
- _cos:
- .word 0x0fc0
- movl $1,r9
- movd 4(ap),r0
- jgeq range
- negarg:
- mnegd r0,r0
-
- range:
- emodd twoopi,twoopix,r0,r8,r6
- addl2 r9,r8
- bicb2 $~03,r8
- caseb r8,$0,$3
- bse: .word qda-bse,qdb-bse,qdc-bse,qdd-bse
- qdb: subd3 r6,$0d1.0e+0,r6
- jbr qda
- qdc: mnegd r6,r6
- jbr qda
- qdd: subd2 $0d1.0e+0,r6
- qda:
- muld3 r6,r6,r8
- polyd r8,$4,pcoef
- muld2 r0,r6
- polyd r8,$4,qcoef
- divd3 r0,r6,r0
- ret
- .data
- .align 2
- twoopi:.double 0d6.36619772367581340000e-01
- qcoef:.double 0d1.00000000000000000000e+00
- .double 0d1.32653490878613630000e+02
- .double 0d9.46309610153820810000e+03
- .double 0d4.08179225234329970000e+05
- .double 0d8.64455865292253430000e+06
- pcoef:.double 0d1.45968840666576870000e+02
- .double 0d-1.38472724998245280000e+04
- .double 0d4.40103053537526640000e+05
- .double 0d-4.94290810090284410000e+06
- .double 0d1.35788409787737560000e+07
- twoopix: .byte 0x29
-