use crate::{Complex, DivisionAlgebra, RealField, Zero};
impl<T: RealField> Complex<T> {
#[inline]
pub(crate) fn _norm_sqr_impl(&self) -> T {
self.re * self.re + self.im * self.im
}
#[inline]
pub(crate) fn _conjugate_impl(&self) -> Self {
Self::new(self.re, -self.im)
}
#[inline]
pub(crate) fn _inverse_impl(&self) -> Self {
if self.is_zero() {
return Self::new(T::nan(), T::nan());
}
let inv_norm_sq = self.norm_sqr().inverse();
Self {
re: self.re * inv_norm_sq,
im: -self.im * inv_norm_sq,
}
}
}