|HP-UX Reference > S
HP-UX 11i Version 3: February 2007
scalbn(), scalbnf(), scalbnl(), scalbnq(), scalbnw() — scale exponent of a radix-independent floating-point number
The scalbn() function returns x * rn, where r is the radix of the machine's floating-point arithmetic. When r is 2 (as it is on all PA-RISC and Integrity servers), scalbn() computes the same value as ldexp().
Integrity Servers Only
scalbnf() is a float version of scalbn(); it takes a float first argument and returns a float result.
scalbnl() is a long double version of scalbn(); it takes a long double first argument and returns a long double result.
scalbnw() is an extended version of scalbn(); it takes an extended first argument and returns an extended result.
scalbnq() is equivalent to scalbnl() on HP-UX systems.
To use these functions compile either with the default -Ae option or with the -Aa and -D_HPUX_SOURCE options.
To use (for Integrity servers) scalbnw() or scalbnq(), compile also with the -fpwidetypes option.
Make sure your program includes <math.h>. Link in the math library by specifying -lm on the compiler or linker command line.
For more information, see the HP-UX floating-point guide for HP Integrity servers at the following site: http://www.hp.com/go/fp.
scalbn(-x, n) and -scalbn(x, n) are equivalent.
If x is ±INFINITY, zero, or a NaN, scalbn() returns x.
scalbn() returns a properly signed infinity in lieu of a value whose magnitude is too large, and raises the overflow and inexact exceptions.
scalbn() raises the underflow and inexact exceptions whenever a result is tiny (essentially denormal or zero) and thereby suffers loss of accuracy, and may raise those exceptions if the result is merely tiny.