use crate::natural::arithmetic::divisible_by::limbs_divisible_by_limb;
use crate::natural::arithmetic::mod_op::limbs_mod_limb;
use crate::platform::{Limb, BMOD_1_TO_MOD_1_THRESHOLD};
use num::{BigUint, Integer, Zero};
pub fn num_divisible_by(x: &BigUint, y: &BigUint) -> bool {
*x == BigUint::zero() || *y != BigUint::zero() && x.is_multiple_of(y)
}
#[allow(clippy::absurd_extreme_comparisons)]
pub fn combined_limbs_divisible_by_limb(ns: &[Limb], d: Limb) -> bool {
if ns.len() <= BMOD_1_TO_MOD_1_THRESHOLD {
limbs_divisible_by_limb(ns, d)
} else {
limbs_mod_limb(ns, d) == 0
}
}