Skip to main content

function

clamp

clamp[type: DType, simd_width: Int](x: SIMD[type, simd_width], lower_bound: SIMD[type, simd_width], upper_bound: SIMD[type, simd_width]) -> SIMD[$0, $1]

Clamps the values in a SIMD vector to be in a certain range.

Clamp cuts values in the input SIMD vector off at the upper bound and lower bound values. For example, SIMD vector [0, 1, 2, 3] clamped to a lower bound of 1 and an upper bound of 2 would return [1, 1, 2, 2].

Parameters:

  • type (DType): DType of the input SIMD vectors.
  • simd_width (Int): Width of the input SIMD vectors.

Args:

  • x (SIMD[type, simd_width]): SIMD vector to perform the clamp operation on.
  • lower_bound (SIMD[type, simd_width]): Minimum of the range to clamp to.
  • upper_bound (SIMD[type, simd_width]): Maximum of the range to clamp to.

Returns:

A new SIMD vector containing x clamped to be within lower_bound and upper_bound.