diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libm/pow.c')
-rw-r--r-- | mdk-stage1/dietlibc/libm/pow.c | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/mdk-stage1/dietlibc/libm/pow.c b/mdk-stage1/dietlibc/libm/pow.c deleted file mode 100644 index e0e5a2983..000000000 --- a/mdk-stage1/dietlibc/libm/pow.c +++ /dev/null @@ -1,42 +0,0 @@ - -#include <math.h> -#include "dietlibm.h" - -double pow ( double mant, double expo ) -{ - unsigned int e; - long double ret; - - /* special cases 0^x */ - if ( mant == 0. ) { - if ( expo > 0. ) - return 0.; - else if ( expo == 0. ) - return 1.; - else - return 1./mant; - } - - /* special cases x^n with n is integer */ - if ( expo == (int) (e = (int) expo) ) { - - if ( (int)e < 0 ) { - e = -e; - mant = 1./mant; - } - - ret = 1.; - - while (1) { - if ( e & 1 ) - ret *= mant; - if ( (e >>= 1) == 0 ) - break; - mant *= mant; - } - return ret; - } - - /* normal case */ - return exp2 ( log2 (mant) * expo ); -} |