RSQRT(3Cg)

NAME
rsqrt - returns reciprocal square root of scalars and vectors.

SYNOPSIS
  float  rsqrt(float a);
  float1 rsqrt(float1 a);
  float2 rsqrt(float2 a);
  float3 rsqrt(float3 a);
  float4 rsqrt(float4 a);

  half   rsqrt(half a);
  half1  rsqrt(half1 a);
  half2  rsqrt(half2 a);
  half3  rsqrt(half3 a);
  half4  rsqrt(half4 a);

  fixed  rsqrt(fixed a);
  fixed1 rsqrt(fixed1 a);
  fixed2 rsqrt(fixed2 a);
  fixed3 rsqrt(fixed3 a);
  fixed4 rsqrt(fixed4 a);

PARAMETERS

a   Vector or scalar of which to determine the reciprocal square root.

DESCRIPTION
Returns an approximation to the reciprocal square root of a.

For vectors, the returned vector contains the reciprocal square root of each element of the input vector.

The reciprocal square root of zero is ideally infinity. The square root of negative values ideally returns NaN (Not a Number).

REFERENCE IMPLEMENTATION
rsqrt is best implemented as a native reciprocal square root instruction, however rsqrt may be implemented via a pow function:

  float3 rsqrt(float3 a)
  {
    return pow(a, -0.5);
  }

PROFILE SUPPORT
rsqrt is supported in all profiles unless otherwise specified. rsqrt is unsupported in the fp20 profile.

In certain profiles such as vp20, rsqrt computes the absolute value of a so negative values of a will not return NaN.

SEE ALSO
normalize, pow, sqrt