use crate::gaussian_integer::GaussianInteger;
use crate::integer::Integer;
use malachite_base::num::arithmetic::traits::DivExact;
pub fn gaussian_integer_div_exact_naive(
x: &GaussianInteger,
y: &GaussianInteger,
) -> GaussianInteger {
assert!(y.real != 0u32 || y.imaginary != 0u32, "division by zero");
let norm: Integer = &y.real * &y.real + &y.imaginary * &y.imaginary;
GaussianInteger {
real: (&x.real * &y.real + &x.imaginary * &y.imaginary).div_exact(&norm),
imaginary: (&x.imaginary * &y.real - &x.real * &y.imaginary).div_exact(norm),
}
}