home *** CD-ROM | disk | FTP | other *** search
- ;----------------------------------------------------------------------------
- ;
- ; $Source: /unixb/home/unixlib/source/unixlib37/src/sys/s/RCS/_math,v $
- ; $Date: 1996/11/06 22:01:42 $
- ; $Revision: 1.3 $
- ; $State: Rel $
- ; $Author: unixlib $
- ;
- ; $Log: _math,v $
- ; Revision 1.3 1996/11/06 22:01:42 unixlib
- ; Yet more changes by NB, PB and SC.
- ;
- ; Revision 1.2 1996/10/30 21:59:00 unixlib
- ; Massive changes made by Nick Burret and Peter Burwood.
- ;
- ; Revision 1.1 1996/04/19 21:34:32 simon
- ; Initial revision
- ;
- ;----------------------------------------------------------------------------
-
- GET Unix37:unixlib.s.asm_dec
-
- AREA |C$$code|,CODE,READONLY
-
- EXPORT acos
- acos
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- ACSD f0,f0
- MOVS pc,lr
-
- EXPORT asin
- asin
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- ASND f0,f0
- MOVS pc,lr
-
- EXPORT atan
- atan
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- ATND f0,f0
- MOVS pc,lr
-
- EXPORT atan2
- atan2
- ; Improved version by Alun Jones
- ; takes the quadrant into account as it should.
- STMFD sp!,{a1,a2,a3,a4}
- LDFD f1,[sp],#8
- LDFD f2,[sp],#8
- DVFD f0,f1,f2
- ABSD f0,f0
- ATND f0,f0
- CMFE f2,#0
- LDFLTD f2,PI
- SUFLTD f0,f2,f0
- CMFE f1,#0
- MOVGES pc,lr
- MNFD f0,f0
- MOVS pc,lr
-
- PI DCFD 3.141592653589793238
-
- EXPORT cos
- cos
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- COSD f0,f0
- MOVS pc,lr
-
- EXPORT sin
- sin
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- SIND f0,f0
- MOVS pc,lr
-
- EXPORT tan
- tan
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- TAND f0,f0
- MOVS pc,lr
-
- EXPORT exp
- exp
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- EXPD f0,f0
- MOVS pc,lr
-
- EXPORT log
- log
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- LGND f0,f0
- MOVS pc,lr
-
- EXPORT log10
- log10
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- LOGD f0,f0
- MOVS pc,lr
-
- EXPORT modf
- modf
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- RNDD f1,f0
- STFD f1,[a3,#0]
- SUFD f0,f0,f1
- MOVS pc,lr
-
- EXPORT pow
- pow
- STMFD sp!,{a1,a2,a3,a4}
- LDFD f0,[sp],#8
- LDFD f1,[sp],#8
- POWD f0,f0,f1
- MOVS pc,lr
-
- EXPORT sqrt
- sqrt
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- SQTD f0,f0
- MOVS pc,lr
-
- EXPORT ceil
- ceil
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- FIXD a1,f0
- FLTD f1,a1
- CMFE f1,f0
- ADDLT a1,a1,#1
- FLTD f0,a1
- MOVS pc,lr
-
- EXPORT fabs
- fabs
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- ABSD f0,f0
- MOVS pc,lr
-
- EXPORT floor
- floor
- STMFD sp!,{a1,a2}
- LDFD f0,[sp],#8
- FIXD a1,f0
- FLTD f1,a1
- CMFE f1,f0
- SUBGT a1,a1,#1
- FLTD f0,a1
- MOVS pc,lr
-
- EXPORT ldexp
- ldexp
- ; return x*pow(2, y)
- STMFD sp!, {a1, a2, a3, a4}
- LDFD f0, [sp], #8
- LDFD f1, [sp], #8
- MVFD f2, #2
- POWD f3, f2, f1
- MUFD f0, f0, f3
- MOVS pc, lr
-
- EXPORT cosh
- cosh
- ; return (exp(x) + exp(-x)) / 2
- STMFD sp!, {a1, a2}
- LDFD f0, [sp], #8
- MNFD f1, f0
- EXPD f0, f0
- EXPD f1, f1
- ADFD f0, f0, f1
- MVFD f1, #2
- DVFD f0, f0, f1
- MOVS pc, lr
-
- EXPORT sinh
- sinh
- ; return (exp(x) - exp(-x)) / 2
- STMFD sp!, {a1, a2}
- LDFD f0, [sp], #8
- MNFD f1, f0
- EXPD f0, f0
- EXPD f1, f1
- SUFD f0, f0, f1
- MVFD f1, #2
- DVFD f0, f0, f1
- MOVS pc, lr
-
- EXPORT tanh
- tanh
- ; return (exp(x) - exp(-x)) / (exp(x) + exp(-x))
- STMFD sp!, {a1, a2}
- LDFD f0, [sp], #8
- MNFD f1, f0
- EXPD f0, f0
- EXPD f1, f1
-
- SUFD f2, f0, f1
- ADFD f3, f0, f1
- DVFD f0, f2, f3
- MOVS pc, lr
-
- END
-