dspk_ops/math/kernels/scale.rs
1use cubecl::prelude::*;
2use dspk_core::compute::element_position;
3
4/// Linear scaling and offset: `y = x ยท scale + offset` (gain calibration, unit conversion).
5#[cube(launch)]
6pub fn scale_samples_kernel<F: Float + CubeElement + LaunchArg>(input: &[F], output: &mut [F], scale_factor: F, offset: F) {
7 let i = element_position();
8 if i < input.len() {
9 output[i] = input[i] * scale_factor + offset;
10 }
11}