Skip to main content

dspk_ops/math/kernels/
clamp.rs

1use cubecl::prelude::*;
2use dspk_core::compute::element_position;
3
4/// Sample clamping / rectification: `y = clamp(x, min, max)`.
5#[cube(launch)]
6pub fn clamp_samples_kernel<F: Float + CubeElement + LaunchArg>(input: &[F], output: &mut [F], min_val: F, max_val: F) {
7    let i = element_position();
8    if i < input.len() {
9        output[i] = F::clamp(input[i], min_val, max_val);
10    }
11}