kolibrios/contrib/sdk/sources/newlib/libc/stdlib/__exp10.c
Sergey Semyonov (Serge) 7315bb05c0 newlib-2.1.0
git-svn-id: svn://kolibrios.org@4921 a494cfbc-eb01-0410-851d-a64ba20cac60
2014-05-10 22:12:19 +00:00

31 lines
429 B
C

/*
* compute 10**x by successive squaring.
*/
#include <_ansi.h>
#include "std.h"
double
_DEFUN (__exp10, (x),
unsigned x)
{
static _CONST double powtab[] =
{1.0,
10.0,
100.0,
1000.0,
10000.0};
if (x < (sizeof (powtab) / sizeof (double)))
return powtab[x];
else if (x & 1)
{
return 10.0 * __exp10 (x - 1);
}
else
{
double n = __exp10 (x / 2);
return n * n;
}
}