Clamp x to range given by min, max

gentype clamp(gentype x,
              gentype minval,
              gentype maxval)

gentypef clamp(gentypef x,
               float minval,
               float maxval)

gentyped clamp(gentyped x,
               double minval,
               double maxval)

gentype clamp(gentype x,
              half minval,
              half maxval)

Description

Returns fmin(fmax(x, minval), maxval). For the half version when the cl_khr_fp16 extension is enabled, returns min(max(x, minval), maxval)

Results are undefined if minval > maxval.

Notes

These all operate component-wise. The description is per-component. The generic type name gentype is used to indicate that the function can take float, float2, float3, float4, float8, float16, double, double2, double3, double4, double8, or double16 as the type for the arguments.

The generic type name gentypef is used to indicate that the function can take float, float2, float3, float4, float8, or float16 as the type for the arguments.

The generic type name gentyped is used to indicate that the function can take double, double2, double3, double4, double8, or double16 as the type for the arguments.

The built-in common functions are implemented using the round to nearest even rounding mode.

If extended with cl_khr_fp16, generic type name gentype may indicate half and half{2|3|4|8|16} as arguments and return values.

Also see

Specification