pub fn new(n: u32, l: u32) -> Self {
        assert!(n > l);
        let (m, carmichael_lambda_m, euler_totient_m) = gen_m(n - l);
        let mut bound_alpha = Int::from(1);
        bound_alpha <<= n;
        bound_alpha /= &m;
        Self {
            n,
            l,
            m_1: m.clone() - 1,
            m,
            carmichael_lambda_m,
            uniform: UniformRandom::new(),
            bound_alpha,
            euler_totient_m,
        }
    }
/// b: bit count of generated prime
/// l: bit count of m
bit count of generated prime
l: bit count of m
bit count of generated prime l : bit count of m
pub fn new(n: u32, l: u32) -> Self {
        assert!(n > l);
        let (m, carmichael_lambda_m, euler_totient_m) = gen_m(n - l);
        let mut bound_alpha = Int::from(1);
        bound_alpha <<= n;
        bound_alpha /= &m;
        Self {
            n,
            l,
            m_1: m.clone() - 1,
            m,
            carmichael_lambda_m,
            uniform: UniformRandom::new(),
            bound_alpha,
            euler_totient_m,
        }
    }
pub fn new ( n : u32 , l : u32 ) -> Self { assert ! ( n l ) ; let ( m , carmichael_lambda_m , euler_totient_m ) = gen_m ( n - l ) ; let mut bound_alpha = Int :: from ( 1 ) ; bound_alpha <<= n ; bound_alpha /= & m ; Self { n , l , m_1 : m . clone ( ) - 1 , m , carmichael_lambda_m , uniform : UniformRandom :: new ( ) , bound_alpha , euler_totient_m , } }
b: bit count of generated prime
l: bit count of m
b : bit count of generated prime l : bit count of m
n
u32
l
u32
n
u32
l
u32