Computes the reciprocal square root (positive only) of the source scalar.
rsq dst, src |
---|
where
Vertex shader versions | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
rsq | x | x | x | x | x | x |
The following code fragment shows the operations performed.
float f = abs(src0); if (f == 0) f = FLT_MAX else { if (f != 1.0) f = 1.0/(float)sqrt(f); } dest.z = dest.y = dest.z = dest.w = f;
The absolute value is taken before processing.
Precision should be at least 1.0/(222) absolute error over the range (1.0, 4.0) because common implementations will separate mantissa and exponent.
If source has no subscripts, the x-component is used. The output must be exactly 1.0 if the input is exactly 1.0. A source of 0.0 yields infinity.