pub fn try_magnitude_squared<T, const N: usize>(
    array: [T; N]
) -> Option<<T as Mul>::Output>
where T: Mul + Copy, <T as Mul>::Output: AddAssign,