[Previous] [Contents] [Next]

scalbn(), scalbnf()

Compute the exponent of a radix-independent floating point number

Synopsis:

#include <math.h>

double scalbn ( double x,
                int n );

float scalbnf ( float x,
                int n );

Library:

libm

Description:

The scalbn() and scalbnf() functions compute x * r^n, where r is the radix of the machine's floating point arithmetic.

An application wishing to check for error situations should set errno to 0 before calling scalbn(). If errno is nonzero on return, or the return value is NAN, an error occurred.

Returns:

x * r^n

Examples:

#include <stdio.h>
#include <errno.h>
#include <inttypes.h>
#include <math.h>
#include <fpstatus.h>

int main(int argc, char** argv) 
{
    double a, b, c, d;

    a = 10;
    b = 2;
    c = scalbn(a, b);
    d = sqrt(c/a);
    printf("Radix of machines fp arithmetic is %f \n", d);
    printf("So %f = %f * (%f ^ %f) \n", c, a, d, b);

    return(0);
}

produces the output:

Radix of machines fp arithmetic is 2.000000
So 40.000000 = 10.000000 * (2.000000 ^ 2.000000)

Classification:

scalbn() is standard Unix; scalbnf() is ANSI (draft)

Safety:
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes

See also:

scalb()


[Previous] [Contents] [Next]