Numworks Epsilon
1.4.1
Graphing Calculator Operating System
s_frexpf.c
Go to the documentation of this file.
1
/* s_frexpf.c -- float version of s_frexp.c.
2
* Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
3
*/
4
5
/*
6
* ====================================================
7
* Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
8
*
9
* Developed at SunPro, a Sun Microsystems, Inc. business.
10
* Permission to use, copy, modify, and distribute this
11
* software is freely granted, provided that this notice
12
* is preserved.
13
* ====================================================
14
*/
15
16
#include "math.h"
17
#include "
math_private.h
"
18
19
static
const
float
20
two25 = 3.3554432000e+07;
/* 0x4c000000 */
21
22
float
23
frexpf
(
float
x,
int
*eptr)
24
{
25
int32_t
hx,ix;
26
GET_FLOAT_WORD
(hx,x);
27
ix = 0x7fffffff&hx;
28
*eptr = 0;
29
if
(ix>=0x7f800000||(ix==0))
return
x;
/* 0,inf,nan */
30
if
(ix<0x00800000) {
/* subnormal */
31
x *= two25;
32
GET_FLOAT_WORD
(hx,x);
33
ix = hx&0x7fffffff;
34
*eptr = -25;
35
}
36
*eptr += (ix>>23)-126;
37
hx = (hx&0x807fffff)|0x3f000000;
38
*(
int
*)&x = hx;
39
return
x;
40
}
frexpf
float frexpf(float x, int *eptr)
Definition:
s_frexpf.c:23
GET_FLOAT_WORD
#define GET_FLOAT_WORD(i, d)
Definition:
math_private.h:326
int32_t
signed int int32_t
Definition:
stdint.h:11
math_private.h
epsilon
liba
src
external
openbsd
s_frexpf.c
Generated by
1.8.14