NAME
    reflect - returns the reflectiton vector given an incidence vector and a
    normal vector.

SYNPOSIS
      float  reflect(float  i, float  n);
      float2 reflect(float2 i, float2 n);
      float3 reflect(float3 i, float3 n);
      float4 reflect(float4 i, float4 n);

PARAMETERS
    i       Incidence vector.

    n       Normal vector.

DESCRIPTION
    Returns the reflectiton vector given an incidence vector *i* and a
    normal vector *n*. The resulting vector is the identical number of
    components as the two input vectors.

    The normal vector *n* should be normalized. If *n* is normalized, the
    output vector will have the same length as the input incidence vector
    *i*.

REFERENCE IMPLEMENTATION
    reflect for float3 vectors could be implemented this way:

      float3 reflect( float3 i, float3 n )
      {
        return i - 2.0 * n * dot(n,i);
      }

PROFILE SUPPORT
    reflect is supported in all profiles.

    Support in the fp20 is limited.

SEE ALSO
    the dot manpage, the length manpage, the refract manpage

