use crate::integer::Integer;
use crate::integer_vector::IntegerVector;
use crate::platform::Limb;
use crate::test_util::natural_vector::arithmetic::multi_crt::naturals_and_columns;
use malachite_base::unsigned_vector::UnsignedVector;
pub fn integer_vector_multi_balanced_crt_naive(
moduli: &[Limb],
residues: &[UnsignedVector<Limb>],
) -> Option<IntegerVector> {
let (moduli, columns) = naturals_and_columns(moduli, residues)?;
Some(IntegerVector {
elements: columns
.iter()
.map(|column| Integer::multi_balanced_crt(&moduli, column))
.collect::<Option<_>>()?,
})
}