jf_relation::gadgets::ecc

Trait MultiScalarMultiplicationCircuit

Source
pub trait MultiScalarMultiplicationCircuit<F, P>
where F: PrimeField, P: Config<BaseField = F>,
{ // Required methods fn msm( &mut self, bases: &[PointVariable], scalars: &[Variable], ) -> Result<PointVariable, CircuitError>; fn msm_with_var_scalar_length( &mut self, bases: &[PointVariable], scalars: &[Variable], scalar_bit_length: usize, ) -> Result<PointVariable, CircuitError>; }
Expand description

Compute the multi-scalar-multiplications in circuit.

Required Methods§

Source

fn msm( &mut self, bases: &[PointVariable], scalars: &[Variable], ) -> Result<PointVariable, CircuitError>

Compute the multi-scalar-multiplications. Use pippenger when the circuit supports lookup; Use naive method otherwise. Return error if the number bases does not match the number of scalars.

Source

fn msm_with_var_scalar_length( &mut self, bases: &[PointVariable], scalars: &[Variable], scalar_bit_length: usize, ) -> Result<PointVariable, CircuitError>

Compute the multi-scalar-multiplications where each scalar has at most scalar_bit_length bits.

Implementors§

Source§

impl<F, P> MultiScalarMultiplicationCircuit<F, P> for PlonkCircuit<F>
where F: PrimeField, P: Config<BaseField = F>,