home *** CD-ROM | disk | FTP | other *** search
- head 1.2;
- access;
- symbols
- version39-41:1.2;
- locks;
- comment @ * @;
-
-
- 1.2
- date 92.05.22.01.49.39; author mwild; state Exp;
- branches;
- next 1.1;
-
- 1.1
- date 92.05.14.19.55.40; author mwild; state Exp;
- branches;
- next ;
-
-
- desc
- @math functions we get for free from the shared libraries
- @
-
-
- 1.2
- log
- @added floor()/ceil(). Changed indentation a bit.
- @
- text
- @extern struct MathIeeeDoubTransBase * MathIeeeDoubTransBase;
- extern struct MathIeeeDoubBasBase * MathIeeeDoubBasBase;
-
- double const atan (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x1e)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const sin (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x24)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const cos (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x2a)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const tan (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x30)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double sincos (double* pf2, double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double* a0 __asm("a0");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- a0 = pf2;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x36)"
- : "=r" (res)
- : "r" (a6), "r" (a0), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const sinh (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x3c)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const cosh (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x42)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const tanh (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x48)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const exp (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x4e)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const log (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x54)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- /* GRRRR Commodore does it the other way round... */
- double const pow (double arg, double exp)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d2 __asm("d2");
- register double d3 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d2 = exp; /* invert arguments here, so exp really is arg and vice versa */
- d3 = arg;
- __asm volatile ("
- jsr a6@@(-0x5a)"
- : "=r" (res)
- : "r" (a6), "r" (d2), "r" (d3)
- : "d0", "d1", "a0", "a1", "d2", "d3");
- return res;
- }
- double const sqrt (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x60)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const asin (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x72)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const acos (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x78)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const log10 (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubTransBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x7e)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const floor (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubBasBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x5a)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- double const ceil (double parm)
- {
- register double res __asm("d0");
- register void *a6 __asm ("a6");
- register double d0 __asm("d0");
-
- a6 = MathIeeeDoubBasBase;
- d0 = parm;
- __asm volatile ("
- jsr a6@@(-0x60)"
- : "=r" (res)
- : "r" (a6), "r" (d0)
- : "d0", "d1", "a0", "a1");
- return res;
- }
- @
-
-
- 1.1
- log
- @Initial revision
- @
- text
- @d2 1
- d4 1
- a4 1
- double const atan(double parm)
- d19 1
- a19 1
- double const sin(double parm)
- d34 1
- a34 1
- double const cos(double parm)
- d49 1
- a49 1
- double const tan(double parm)
- d64 1
- a64 1
- double sincos(double* pf2, double parm)
- d81 1
- a81 1
- double const sinh(double parm)
- d96 1
- a96 1
- double const cosh(double parm)
- d111 1
- a111 1
- double const tanh(double parm)
- d126 1
- a126 1
- double const exp(double parm)
- d141 1
- a141 1
- double const log(double parm)
- d157 1
- a157 1
- double const pow(double arg, double exp)
- d174 1
- a174 1
- double const sqrt(double parm)
- d189 1
- a189 1
- double const asin(double parm)
- d204 1
- a204 1
- double const acos(double parm)
- d219 1
- a219 1
- double const log10(double parm)
- d229 30
- @
-