pub fn acosh_simd<F>(x: &ArrayView1<'_, F>) -> Array1<F>where
F: Float + SimdUnifiedOps,Expand description
Apply inverse hyperbolic cosine (acosh) using SIMD operations
The inverse hyperbolic cosine is defined as: acosh(x) = ln(x + √(x² - 1))
Domain: [1, +∞), Range: [0, +∞) Returns NaN for x < 1. This is the inverse function of cosh.
§Mathematical Properties
- acosh(1) = 0
- acosh(x) is monotonically increasing for x ≥ 1
- acosh’(x) = 1/√(x² - 1)
- For large x: acosh(x) ≈ ln(2x)
§Arguments
x- Input array (values should be ≥ 1 for valid results)
§Returns
- Array with acosh applied elementwise (NaN for values < 1)
§Example
use scirs2_core::ndarray_ext::elementwise::acosh_simd;
use ndarray::{array, ArrayView1};
let x = array![1.0_f64, 2.0, 10.0];
let result = acosh_simd(&x.view());
assert!((result[0] - 0.0).abs() < 1e-10); // acosh(1) = 0
assert!((result[1] - 1.316957897).abs() < 1e-6); // acosh(2)
// Out of domain returns NaN
let x_invalid = array![0.5_f64];
let result_invalid = acosh_simd(&x_invalid.view());
assert!(result_invalid[0].is_nan());§Applications
- Hyperbolic Geometry: Distance in Poincaré disk model
- Physics: Catenary curves, suspension bridges
- Electronics: Transmission line analysis
- Computer Graphics: Hyperbolic tessellations