www.delorie.com/gnu/docs/glibc/libc_414.html | search |
Buy the book! | |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The functions described in this section are primarily provided as a way to efficiently perform certain low-level manipulations on floating point numbers that are represented internally using a binary radix; see A.5.3.1 Floating Point Representation Concepts. These functions are required to have equivalent behavior even if the representation does not use a radix of 2, but of course they are unlikely to be particularly efficient in those cases.
All these functions are declared in `math.h'.
If the argument value is not zero, the return value is value
times a power of two, and is always in the range 1/2 (inclusive) to 1
(exclusive). The corresponding exponent is stored in
*exponent
; the return value multiplied by 2 raised to this
exponent equals the original number value.
For example, frexp (12.8, &exponent)
returns 0.8
and
stores 4
in exponent
.
If value is zero, then the return value is zero and
zero is stored in *exponent
.
frexp
.)
For example, ldexp (0.8, 4)
returns 12.8
.
The following functions, which come from BSD, provide facilities
equivalent to those of ldexp
and frexp
. See also the
ISO C function logb
which originally also appeared in BSD.
scalb
function is the BSD name for ldexp
.
scalbn
is identical to scalb
, except that the exponent
n is an int
instead of a floating-point number.
scalbln
is identical to scalb
, except that the exponent
n is a long int
instead of a floating-point number.
significand
returns the mantissa of x scaled to the range
[1, 2).
It is equivalent to scalb (x, (double) -ilogb (x))
.
This function exists mainly for use in certain standardized tests of IEEE 754 conformance.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
webmaster | delorie software privacy |
Copyright © 2003 by The Free Software Foundation | Updated Jun 2003 |