|
|
- NAME
- #include <libraries/mathffp.h>
#include <aros/libcall.h>
#include <proto/mathffp.h>
#include <proto/mathtrans.h>
#include <proto/exec.h>
#include <exec/types.h>
float SPLog ()
- SYNOPSIS
- float fnum1
- FUNCTION
- Calculate logarithm (base 10) of the given ffp number
- INPUTS
- fnum1
- Motorola fast floating point number
- RESULT
- ffp-number
flags:
zero : result is zero
negative : result is negative
overflow : argument was negative
- NOTES
-
- EXAMPLE
- BUGS
-
- SEE ALSO
- MathTrans
- INTERNALS
- ALGORITHM:
If the Argument is negative set overflow-flag and return 0.
If the Argument is 0 return 0xffffffff.
All other cases:
(ld is the logarithm with base 2)
(ln is the logarithm with base e)
fnum1 = M * 2^E
ln fnum1 = ln ( M * 2^E ) =
= ln M + ln 2^E =
= ln M + E * ln (2) =
ld M ld 2
= ----- + E * ----- = [ld 2 = 1]
ld e ld e
ld M + E
= --------
ld e
ld e can be precalculated, of course.
For calculating ld M see file intern_spld.c
|