kolibrios/programs/develop/ktcc/trunk/libc.obj/source/math/ldexp.c
turbocat cde4fa851d libc.obj:
- Formatted by clang-format (WebKit-style).
- Removed unnecessary errno linux. 
- Added KOS error codes. 
- String functions have been replaced with more optimal ones for x86. 
- Changed wrappers for 70 sysfunction.

git-svn-id: svn://kolibrios.org@9765 a494cfbc-eb01-0410-851d-a64ba20cac60
2022-04-15 09:00:55 +00:00

29 lines
640 B
C

/* Copyright (C) 1996 DJ Delorie, see COPYING.DJ for details */
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
#include <math.h>
double ldexp(double v, int e)
{
double two = 2.0;
if (e < 0) {
e = -e; /* This just might overflow on two-complement machines. */
if (e < 0)
return 0.0;
while (e > 0) {
if (e & 1)
v /= two;
two *= two;
e >>= 1;
}
} else if (e > 0) {
while (e > 0) {
if (e & 1)
v *= two;
two *= two;
e >>= 1;
}
}
return v;
}