forked from KolibriOS/kolibrios
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
This commit is contained in:
@@ -2,31 +2,27 @@
|
||||
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
||||
#include <math.h>
|
||||
|
||||
double
|
||||
ldexp(double v, int e)
|
||||
double ldexp(double v, int e)
|
||||
{
|
||||
double two = 2.0;
|
||||
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;
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (e > 0)
|
||||
{
|
||||
while (e > 0)
|
||||
{
|
||||
if (e & 1) v *= two;
|
||||
two *= two;
|
||||
e >>= 1;
|
||||
}
|
||||
}
|
||||
return v;
|
||||
return v;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user