Numworks Epsilon
1.4.1
Graphing Calculator Operating System
s_logb.c
Go to the documentation of this file.
1
/* @(#)s_logb.c 5.1 93/09/24 */
2
/*
3
* ====================================================
4
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5
*
6
* Developed at SunPro, a Sun Microsystems, Inc. business.
7
* Permission to use, copy, modify, and distribute this
8
* software is freely granted, provided that this notice
9
* is preserved.
10
* ====================================================
11
*/
12
13
/*
14
* double logb(x)
15
* IEEE 754 logb. Included to pass IEEE test suite. Not recommend.
16
* Use ilogb instead.
17
*/
18
19
#include "math.h"
20
#include "
math_private.h
"
21
22
double
23
logb
(
double
x)
24
{
25
int32_t
lx,ix;
26
EXTRACT_WORDS
(ix,lx,x);
27
ix &= 0x7fffffff;
/* high |x| */
28
if
((ix|lx)==0)
return
-1.0/
fabs
(x);
29
if
(ix>=0x7ff00000)
return
x*x;
30
if
((ix>>=20)==0)
/* IEEE 754 logb */
31
return
-1022.0;
32
else
33
return
(
double
) (ix-1023);
34
}
fabs
#define fabs(x)
Definition:
math.h:178
logb
double logb(double x)
Definition:
s_logb.c:23
EXTRACT_WORDS
#define EXTRACT_WORDS(ix0, ix1, d)
Definition:
math_private.h:259
int32_t
signed int int32_t
Definition:
stdint.h:11
math_private.h
epsilon
liba
src
external
openbsd
s_logb.c
Generated by
1.8.14