.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R

.fi
..
.tr \(*W-|\(bv\*(Tr
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.if \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.hy 0
.if n .na
.bd B 3
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.IX Title "floatToIntBits Cg"
.TH floatToIntBits Cg "" "Cg Toolkit 2.2" "Cg Standard Library"
.UC
.SH "NAME"
\&\fBfloatToIntBits\fR \- returns the 32\-bit integer representation of an \s-1IEEE\s0 754 floating-point scalar or vector
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 5
\&  int  floatToIntBits(float  x);
\&  int1 floatToIntBits(float1 x);
\&  int2 floatToIntBits(float2 x);
\&  int3 floatToIntBits(float3 x);
\&  int4 floatToIntBits(float4 x);
.Ve
.SH "PARAMETERS"
.IX Header "PARAMETERS"
.Ip "x" 8
.IX Item "x"
Floating-point vector or scalar to cast to a scalar int or vector of ints.
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
Returns a representation of the specified floating-point scalar value or
vector values according to the \s-1IEEE\s0 754 floating-point \*(L"single format\*(R"
bit layout.
.PP
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.
.PP
This function is based on Java's jave.lang.Float method of the same name.  See:
.PP
.Vb 1
\&  http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Float.html
.Ve
\&\fBfloatToIntBits\fR requires instructions to be generated to cannonicalize
NaN values so \fBfloatToIntBits\fR is typically more expensive than
\&\fBfloatToRawIntBits\fR.
.SH "REFERENCE IMPLEMENTATION"
.IX Header "REFERENCE IMPLEMENTATION"
\&\fBfloatToIntBits\fR operates consistent with the following \s-1ANSI\s0 C code:
.PP
.Vb 6
\&  int floatToIntBits(float  x)
\&  {
\&    union {
\&      float f;  // assuming 32-bit IEEE 754 single-precision
\&      int i;    // assuming 32-bit 2's complement int
\&    } u;
.Ve
.Vb 7
\&    if (isnan(x)) {
\&      return 0x7fc00000;
\&    } else {
\&      u.f = x;
\&      return u.i;
\&    }
\&  }
.Ve
.SH "PROFILE SUPPORT"
.IX Header "PROFILE SUPPORT"
\&\fBfloatToIntBits\fR is supported by the gp4vp, gp4gp, and gp4vp profiles.
.PP
\&\fBfloatToIntBits\fR is \fInot\fR supported by pre-G80 profiles.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
ceil, floatToRawIntBits, floor, intBitsToFloat, round, trunc
