pub fn square_simd<F>(a: &ArrayView1<'_, F>) -> Array1<F>where
F: Float + SimdUnifiedOps,Expand description
SIMD-accelerated element-wise square: x²
Computes the square of each element. This is more efficient than pow(x, 2)
since it avoids the overhead of general exponentiation.
§Arguments
a- Input values
§Returns
Array of squared values
§Examples
use scirs2_core::ndarray::{array, Array1};
use scirs2_core::ndarray_ext::elementwise::square_simd;
let x = array![1.0_f64, 2.0, 3.0, -4.0];
let result = square_simd::<f64>(&x.view());
assert!((result[0] - 1.0).abs() < 1e-14); // 1² = 1
assert!((result[1] - 4.0).abs() < 1e-14); // 2² = 4
assert!((result[2] - 9.0).abs() < 1e-14); // 3² = 9
assert!((result[3] - 16.0).abs() < 1e-14); // (-4)² = 16§Use Cases
- Computing squared distances
- Variance calculations (sum of squared deviations)
- Loss functions (MSE, L2 regularization)
- Polynomial evaluation