A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.com/reference/cmath/frexp/ below:

function

<cmath> <ctgmath>

frexp
double frexp (double x, int* exp);
     double frexp  (double x     , int* exp);      float frexpf (float x      , int* exp);long double frexpl (long double x, int* exp);
     double frexp (double x     , int* exp);      float frexp (float x      , int* exp);long double frexp (long double x, int* exp);
     double frexp (double x     , int* exp);      float frexp (float x      , int* exp);long double frexp (long double x, int* exp);     double frexp (T x          , int* exp); // additional overloads for integral types

Get significand and exponent

Breaks the floating point number x into its binary significand (a floating point with an absolute value between 0.5(included) and 1.0(excluded)) and an integral exponent for 2, such that:

x = significand * 2 exponent


The exponent is stored in the location pointed by exp, and the significand is the value returned by the function.

If x is zero, both parts (significand and exponent) are zero.


If x is negative, the significand returned by this function is negative.

Header

<tgmath.h>

provides a type-generic macro version of this function.


Additional overloads

are provided in this header (

<cmath>

) for the

integral types

: These overloads effectively cast

x

to a

double

before calculations (defined for

T

being any

integral type

).



Parameters
x
Value to be decomposed.
exp
Pointer to an int where the value of the exponent is stored.

Return Value The binary significand of x.
This value is the floating point value whose absolute value lays in the interval [0.5,1) which, once multiplied by 2 raised to the power of exp, yields x.

Example
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* frexp example */
#include <stdio.h>      /* printf */
#include <math.h>       /* frexp */

int main ()
{
  double param, result;
  int n;

  param = 8.0;
  result = frexp (param , &n);
  printf ("%f = %f * 2^%d\n", param, result, n);
  return 0;
}

Output:
8.000000 = 0.500000 * 2^4


See also
ldexp
Generate value from significand and exponent (function)
log
Compute natural logarithm (function)
pow
Raise to power (function)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4