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

SYNPOSIS
      float  saturate(float x);
      float1 saturate(float2 x);
      float2 saturate(float2 x);
      float3 saturate(float3 x);
      float4 saturate(float4 x);
 
      half   saturate(half x);
      half1  saturate(half2 x);
      half2  saturate(half2 x);
      half3  saturate(half3 x);
      half4  saturate(half4 x);
 
      fixed  saturate(fixed x);
      fixed1 saturate(fixed2 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

