File:
[DVB] /
dietlibc /
libm /
ipow.c
Revision
1.2:
download - view:
text,
annotated -
select for diffs
Mon Mar 4 18:25:54 2002 UTC (22 years, 3 months ago) by
fefe
Branches:
MAIN
CVS tags:
finnland_test_200301,
branch_rc14_fieldtest_finnland,
branch_rc13_fieldtest_finnland,
branch_rc12_fieldtest_finnland,
branch_rc10_fieldtest_finnland,
RELEASE_finnland_200301_1,
RC12_FIELDTEST_FINNLAND,
RC10_FIELDTEST_FINNLAND,
HEAD
#include <math.h>
#define _GNU_SOURCE
#include <math.h>
/*
* This is not standard, but often you only need such this function
* which is much shorter than the generic pow() function.
*
* double ipow ( double mant, int expo );
*/
double ipow ( double mant, int expo )
{
double ret = 1.;
unsigned int e = expo; /* Some attention is necessary for expo = 2^31 */
if ( (int)e < 0 ) {
e = -e;
mant = 1./mant;
}
while (1) {
if ( e & 1 )
ret *= mant;
if ( (e >>= 1) == 0 )
break;
mant *= mant;
}
return ret;
}
LinuxTV legacy CVS <linuxtv.org/cvs>