Copyright (C) 2000-2012 |
GNU Info (libc.info)Normalization FunctionsNormalization Functions ----------------------- 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 Note: Floating Point 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'. - Function: double frexp (double VALUE, int *EXPONENT) - Function: float frexpf (float VALUE, int *EXPONENT) - Function: long double frexpl (long double VALUE, int *EXPONENT) These functions are used to split the number VALUE into a normalized fraction and an exponent. 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'. - Function: double ldexp (double VALUE, int EXPONENT) - Function: float ldexpf (float VALUE, int EXPONENT) - Function: long double ldexpl (long double VALUE, int EXPONENT) These functions return the result of multiplying the floating-point number VALUE by 2 raised to the power EXPONENT. (It can be used to reassemble floating-point numbers that were taken apart by `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. - Function: double scalb (double VALUE, int EXPONENT) - Function: float scalbf (float VALUE, int EXPONENT) - Function: long double scalbl (long double VALUE, int EXPONENT) The `scalb' function is the BSD name for `ldexp'. - Function: long long int scalbn (double X, int n) - Function: long long int scalbnf (float X, int n) - Function: long long int scalbnl (long double X, int n) `scalbn' is identical to `scalb', except that the exponent N is an `int' instead of a floating-point number. - Function: long long int scalbln (double X, long int n) - Function: long long int scalblnf (float X, long int n) - Function: long long int scalblnl (long double X, long int n) `scalbln' is identical to `scalb', except that the exponent N is a `long int' instead of a floating-point number. - Function: long long int significand (double X) - Function: long long int significandf (float X) - Function: long long int significandl (long double X) `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. automatically generated by info2www version 1.2.2.9 |