pub fn equal_when_carried_regroup<CS: ConstraintSystem<E>>(
        &self,
        mut cs: CS,
        other: &Self,
    ) -> Result<(), SynthesisError> {
        self.enforce_limb_width_agreement(other, "equal_when_carried_regroup")?;
        let max_word = std::cmp::max(&self.params.max_word, &other.params.max_word);
        let carry_bits = (((max_word.to_f64() * 2.0).log2() - self.params.limb_width as f64).ceil()
            + 0.1) as usize;
        let limbs_per_group = (E::Fr::CAPACITY as usize - carry_bits) / self.params.limb_width;
        let self_grouped = self.group_limbs(limbs_per_group);
        let other_grouped = other.group_limbs(limbs_per_group);
        self_grouped.equal_when_carried(cs.namespace(|| "grouped"), &other_grouped)
    }
/// Constrain `self` to be equal to `other`, after carrying both.
/// Uses regrouping internally to take full advantage of the field size and reduce the amount
/// of carrying.
Constrain `self` to be equal to `other`, after carrying both.
Uses regrouping internally to take full advantage of the field size and reduce the amount
of carrying.
Constrain ` self ` to be equal to ` other ` after carrying both . Uses regrouping internally to take full advantage of the field size and reduce the amount of carrying .
pub fn equal_when_carried_regroup<CS: ConstraintSystem<E>>(
        &self,
        mut cs: CS,
        other: &Self,
    ) -> Result<(), SynthesisError> {
        self.enforce_limb_width_agreement(other, "equal_when_carried_regroup")?;
        let max_word = std::cmp::max(&self.params.max_word, &other.params.max_word);
        let carry_bits = (((max_word.to_f64() * 2.0).log2() - self.params.limb_width as f64).ceil()
            + 0.1) as usize;
        let limbs_per_group = (E::Fr::CAPACITY as usize - carry_bits) / self.params.limb_width;
        let self_grouped = self.group_limbs(limbs_per_group);
        let other_grouped = other.group_limbs(limbs_per_group);
        self_grouped.equal_when_carried(cs.namespace(|| "grouped"), &other_grouped)
    }
pub fn equal_when_carried_regroup < CS : ConstraintSystem < E > > ( & self , mut cs : CS , other : & Self , ) -> Result < ( ) , SynthesisError > { self . enforce_limb_width_agreement ( other , " " ) ? ; let max_word = std :: cmp :: max ( & self . params . max_word , & other . params . max_word ) ; let carry_bits = ( ( ( max_word . to_f64 ( ) * 2.0 ) . log2 ( ) - self . params . limb_width as f64 ) . ceil ( ) + 0.1 ) as usize ; let limbs_per_group = ( E :: Fr :: CAPACITY as usize - carry_bits ) / self . params . limb_width ; let self_grouped = self . group_limbs ( limbs_per_group ) ; let other_grouped = other . group_limbs ( limbs_per_group ) ; self_grouped . equal_when_carried ( cs . namespace ( | | " " ) , & other_grouped ) }
Constrain `self` to be equal to `other`, after carrying both.
Constrain ` self ` to be equal to ` other ` after carrying both .
&self
cs
CS
other
&Self
&self
cs
CS
other
&Self