composite_modulus_proofs 0.1.0

Proofs about several propoerties of a composite modulus - square-free, product of 2 primes, a blum integer
Documentation
#[cfg(feature = "parallel")]
#[macro_export]
macro_rules! join {
    ($a: expr, $b: expr) => {
        rayon::join(|| $a, || $b)
    };
}

#[cfg(not(feature = "parallel"))]
#[macro_export]
macro_rules! join {
    ($a: expr, $b: expr) => {
        ($a, $b)
    };
}

#[macro_export]
macro_rules! report_error_if_any {
    ( $res:ident ) => {{
        #[cfg(feature = "parallel")]
        if let Some(e) = $res.find_any(|r| r.is_err()) {
            e
        } else {
            Ok(())
        }

        #[cfg(not(feature = "parallel"))]
        if let Some(e) = $res.find(|r| r.is_err()) {
            e
        } else {
            Ok(())
        }
    }};
}

// Taken from safegcd.rs in crypto-bigint. Used to find out the limbs needed to perform modular
// inversion using SafeGcdInverter
#[cfg(test)]
#[macro_export]
macro_rules! safegcd_nlimbs {
    ($bits:expr) => {
        ($bits + 64).div_ceil(62)
    };
}