*Load the exponent of a radix-independent floating point number*

#include <math.h> double scalb( doublex, doublen);

`x`- The floating point number that you want to multiply by the exponent.
`n`- The exponent to apply to the radix of the machine's floating-point arithmetic.

This function computes `x` × `r`^{n},
where `r` is the radix
of the machine's floating point arithmetic
and `n` is a finite number. When `r` is 2,
scalb() is equivalent to
ldexp().

Note:
We recommend that you use
scalbn()
because it computes by manipulating exponents, instead of using mock
multiplications or additions.

`x` × `r`^{n}

Note:
If an error occurs, this function returns 0, but this is also a valid
mathematical result.
If you want to check for errors, set
`errno`
to 0, call the function, and then check `errno` again.
This function doesn't change `errno` if no errors occurred.

#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 = scalb(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)

Standard Unix; removed from POSIX.1-2008

Safety: | |
---|---|

Cancellation point | No |

Interrupt handler | No |

Signal handler | No |

Thread | Yes |