NAME
    saturate - returns smallest integer not less than a scalar or each
    vector component.

SYNOPSIS
      float  saturate( float  x );
      float1 saturate( float1 x );
      float2 saturate( float2 x );
      float3 saturate( float3 x );
      float4 saturate( float4 x );
 
      half   saturate( half  x );
      half1  saturate( half1 x );
      half2  saturate( half2 x );
      half3  saturate( half3 x );
      half4  saturate( half4 x );
 
      fixed  saturate( fixed  x );
      fixed1 saturate( fixed1 x );
      fixed2 saturate( fixed2 x );
      fixed3 saturate( fixed3 x );
      fixed4 saturate( fixed4 x );

PARAMETERS
    x       Vector or scalar to saturate.

DESCRIPTION
    Returns *x* saturated to the range [0,1] as follows:

            1) Returns 0 if *x* is less than 0; else

            2) Returns 1 if *x* is greater than 1; else

            3) Returns *x* otherwise.

    For vectors, the returned vector contains the saturated result of each
    element of the vector *x* saturated to [0,1].

REFERENCE IMPLEMENTATION
    saturate for float scalars could be implemented like this.

      float saturate(float x)
      {
        return max(0, min(1, x));
      }

PROFILE SUPPORT
    saturate is supported in all profiles.

    saturate is very efficient in the fp20, fp30, and fp40 profiles.

SEE ALSO
    the clamp manpage, the max manpage, the min manpage

