.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 "step Cg"
.TH step Cg "" "Cg Toolkit 2.2" "Cg Standard Library"
.UC
.SH "NAME"
\&\fBstep\fR \- implement a step function returning either zero or one
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 5
\&  float  step(float  a, float  x);
\&  float1 step(float1 a, float1 x);
\&  float2 step(float2 a, float2 x);
\&  float3 step(float3 a, float3 x);
\&  float4 step(float4 a, float4 x);
.Ve
.Vb 5
\&  half   step(half  a, half  x);
\&  half1  step(half1 a, half1 x);
\&  half2  step(half2 a, half2 x);
\&  half3  step(half3 a, half3 x);
\&  half4  step(half4 a, half4 x);
.Ve
.Vb 5
\&  fixed  step(fixed  a, fixed  x);
\&  fixed1 step(fixed1 a, fixed1 x);
\&  fixed2 step(fixed2 a, fixed2 x);
\&  fixed3 step(fixed3 a, fixed3 x);
\&  fixed4 step(fixed4 a, fixed4 x);
.Ve
.SH "PARAMETERS"
.IX Header "PARAMETERS"
.Ip "a" 8
.IX Item "a"
Scalar or vector reference value.
.Ip "x" 8
.IX Item "x"
Scalar or vector.
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
Implements a step function returning one for each component of \fIx\fR
that is greater than or equal to the corresponding component in the
reference vector \fIa\fR, and zero otherwise.
.SH "REFERENCE IMPLEMENTATION"
.IX Header "REFERENCE IMPLEMENTATION"
\&\fBstep\fR for \fBfloat3\fR vectors could be implemented this way:
.PP
.Vb 4
\&  float3 step(float3 a, float3 x)
\&  {
\&    return x >= a;
\&  }
.Ve
.SH "PROFILE SUPPORT"
.IX Header "PROFILE SUPPORT"
\&\fBstep\fR is supported in all profiles.
.PP
Support in the fp20 is limited.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
max, min, saturate, smoothstep
