3.178. __nv_frexp

double @__nv_frexp(double %x, i32* %b)

Extract mantissa and exponent of a floating-point value.

Decompose the floating-point value x into a component m for the normalized fraction element and another term n for the exponent. The absolute value of m will be greater than or equal to 0.5 and less than 1.0 or it will be equal to 0; \(x = m\cdot 2^n\). The integer exponent n will be stored in the location to which nptr points.

Note

For accuracy information, see the CUDA C++ Programming Guide, Mathematical Functions Appendix, Double-Precision Floating-Point Functions section.

Returns

Returns the fractional component m.

  • __nv_frexp(0, nptr) returns 0 for the fractional component and zero for the integer component.

  • __nv_frexp( \(\pm 0\) , nptr) returns \(\pm 0\) and stores zero in the location pointed to by nptr.

  • __nv_frexp( \(\pm \infty\) , nptr) returns \(\pm \infty\) and stores an unspecified value in the location to which nptr points.

  • __nv_frexp(NaN, y) returns a NaN and stores an unspecified value in the location to which nptr points.