floatToIntBits

> # NAME

> floatToIntBits - returns the 32-bit integer representation of an IEEE 754 floating-point scalar or vector

> # SYNOPSIS

>       int  floatToIntBits(float  x);
>       int1 floatToIntBits(float1 x);
>       int2 floatToIntBits(float2 x);
>       int3 floatToIntBits(float3 x);
>       int4 floatToIntBits(float4 x);

> # PARAMETERS

> x

>   Floating-point vector or scalar to cast to a scalar int or vector of ints.

> # DESCRIPTION

> Returns a representation of the specified floating-point scalar value or vector values according to the IEEE 754 floating-point "single format" bit layout.

> Not-A-Number (NaN) floating-point values are cannonicalized to the integer value 0x7fc00000 regardless of the specific NaN encoding. The sign bit of the NaN is discarded.

> This function is based on Java's jave.lang.Float method of the same name. See:

>       java.sun.com/j2se/1.4.2/docs/api/java/lang/Float.html

> floatToIntBits requires instructions to be generated to cannonicalize NaN values so floatToIntBits is typically more expensive than floatToRawIntBits.

> # REFERENCE IMPLEMENTATION

> floatToIntBits operates consistent with the following ANSI C code:

>       int floatToIntBits(float  x)
>       {
>         union {
>           float f;  // assuming 32-bit IEEE 754 single-precision
>           int i;    // assuming 32-bit 2's complement int
>         } u;

>         if (isnan(x)) {
>           return 0x7fc00000;
>         } else {
>           u.f = x;
>           return u.i;
>         }
>       }

> # PROFILE SUPPORT

> floatToIntBits is supported by the gp4vp, gp4gp, and gp4vp profiles.

> floatToIntBits is not supported by pre-G80 profiles.

> # SEE ALSO

> ceil, floatToRawIntBits, floor, intBitsToFloat, round, trunc