square_simd

Function square_simd 

Source
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