pub fn cos_simd<F>(x: &ArrayView1<'_, F>) -> Array1<F>where
F: Float + SimdUnifiedOps,Expand description
Compute the cosine of each element (SIMD-accelerated).
Computes cos(x) for each element in the array.
§Arguments
x- Input 1D array (angles in radians)
§Returns
Array1<F> with the same length as input, with cosine values.
§Performance
- Auto-vectorization: Compiler optimizations provide excellent performance
- Speedup: 2-4x on large arrays via auto-vectorization
§Mathematical Definition
cos(x) = adjacent/hypotenuse in a right triangle
Periodic with period 2π: cos(x + 2π) = cos(x)
Range: [-1, 1]§Examples
use scirs2_core::ndarray::array;
use scirs2_core::ndarray_ext::elementwise::cos_simd;
use std::f64::consts::PI;
let x = array![0.0_f64, PI/3.0, PI/2.0, PI];
let result = cos_simd(&x.view());
// cos(0) = 1, cos(π/2) ≈ 0, cos(π) = -1§Edge Cases
- Empty array: Returns empty array
- Zero: cos(0) = 1
- NaN: Returns NaN (preserves NaN)
- Infinity: Returns NaN (undefined for infinity)
§Applications
- Computer Vision: Rotation matrices, coordinate transformations
- Signal Processing: Fourier transforms, filtering
- Path Planning: Dubins curves, trajectory optimization
- Geometry: Circle parametrization, spherical coordinates
- Neural Networks: Positional encoding (transformers)