pub fn interleaved_complex_mul_assign<T, A, const CONJ_B: bool>(
a: &mut [T],
b: &[T],
) -> Result<(), SimdError>Expand description
Multiplies interleaved complex values in-place using architecture A.
a and b must have identical even lengths. The operation is value
preserving with respect to scalar complex multiplication over adjacent
primitive lane pairs:
a[k] = a[k] * b[k] when CONJ_B == false, and
a[k] = a[k] * conj(b[k]) when CONJ_B == true.
ยงExamples
use hermes_simd::{interleaved_complex_mul_assign, Scalar};
let mut lhs = [1.0_f64, 2.0, 3.0, -1.0];
let rhs = [4.0_f64, -2.0, 0.5, 5.0];
interleaved_complex_mul_assign::<f64, Scalar, false>(&mut lhs, &rhs).unwrap();
assert_eq!(lhs, [8.0, 6.0, 6.5, 14.5]);