> # 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