use crate::Rational;
use crate::rational_polynomial::RationalPolynomial;
use alloc::vec;
use alloc::vec::Vec;
use malachite_base::num::basic::traits::Zero;
use malachite_base::polynomial::Polynomial;
pub fn compose_power_of_x_naive(p: &RationalPolynomial, k: u64) -> RationalPolynomial {
if k == 0 {
let sum = (0..p.len()).map(|i| p.coefficient(i)).sum::<Rational>();
return RationalPolynomial::from_coefficients_asc(vec![sum]);
}
if p.len() == 0 {
return RationalPolynomial::ZERO;
}
RationalPolynomial::from_coefficients_asc(
(0..=(p.len() - 1) * k)
.map(|i| {
if i % k == 0 {
p.coefficient(i / k)
} else {
Rational::ZERO
}
})
.collect::<Vec<Rational>>(),
)
}