pub fn softmax_simd<F>(a: &ArrayView1<'_, F>) -> Array1<F>where
F: Float + SimdUnifiedOps,Expand description
SIMD-accelerated softmax
Computes exp(x - max(x)) / sum(exp(x - max(x))) for numerical stability. Output probabilities sum to 1.
§Arguments
a- Input array (logits)
§Returns
Probability distribution (sums to 1)
§Examples
use scirs2_core::ndarray::array;
use scirs2_core::ndarray_ext::elementwise::softmax_simd;
let x = array![1.0_f64, 2.0, 3.0];
let result = softmax_simd::<f64>(&x.view());
// Probabilities should sum to 1
let sum: f64 = result.iter().sum();
assert!((sum - 1.0).abs() < 1e-10);
// Higher logits should have higher probabilities
assert!(result[2] > result[1]);
assert!(result[1] > result[0]);§Use Cases
- Classification output layer
- Attention weights
- Policy probabilities in RL
- Mixture model weights