pub struct EcMsmExample { /* private fields */ }Expand description
Example circuit that computes a multi-scalar multiplication Σ_i scalars[i] · points[i] over
secp256k1 with a statically-known number of points, using the GLV fixed-window (Straus)
algorithm (see msm_strauss_endo).
The points and scalars are public inputs (the points are constrained to lie on the curve), and the claimed result is a public input that the circuit checks against the in-circuit MSM.
Trait Implementations§
Source§impl ExampleCircuit for EcMsmExample
impl ExampleCircuit for EcMsmExample
Source§type Params = Params
type Params = Params
Circuit parameters that affect the structure of the circuit.
These are typically compile-time constants or bounds.
Source§type Instance = Instance
type Instance = Instance
Instance data used to populate the witness.
This represents the actual input values for a specific proof.
Source§fn build(params: Params, builder: &mut CircuitBuilder) -> Result<Self>
fn build(params: Params, builder: &mut CircuitBuilder) -> Result<Self>
Build the circuit with the given parameters. Read more
Source§fn populate_witness(
&self,
_instance: Instance,
w: &mut WitnessFiller<'_>,
) -> Result<()>
fn populate_witness( &self, _instance: Instance, w: &mut WitnessFiller<'_>, ) -> Result<()>
Populate witness values for a specific instance. Read more
Auto Trait Implementations§
impl Freeze for EcMsmExample
impl RefUnwindSafe for EcMsmExample
impl Send for EcMsmExample
impl Sync for EcMsmExample
impl Unpin for EcMsmExample
impl UnsafeUnpin for EcMsmExample
impl UnwindSafe for EcMsmExample
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more