Type Alias zkevm_circuits::root_circuit::EccChip
source · pub type EccChip<C> = BaseFieldEccChip<C, LIMBS, BITS>;
Expand description
BaseFieldEccChip
with hardcoded LIMBS
and BITS
serving as EccChip
for Halo2Loader
.
Aliased Type§
struct EccChip<C> { /* private fields */ }
Implementations
§impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>where
C: CurveAffine,
impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>where
C: CurveAffine,
pub fn expose_public(
&self,
layouter: impl Layouter<<C as PrimeCurveAffine>::Scalar>,
point: AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
offset: usize
) -> Result<(), Error>
pub fn expose_public( &self, layouter: impl Layouter<<C as PrimeCurveAffine>::Scalar>, point: AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, offset: usize ) -> Result<(), Error>
Expose AssignedPoint
as Public Input
pub fn assign_constant(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
point: C
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn assign_constant( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, point: C ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Takes Point
and assign its coordiantes as constant
Returned as AssignedPoint
pub fn assign_point(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
point: Value<C>
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn assign_point( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, point: Value<C> ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Takes Point
of the EC and returns it as AssignedPoint
pub fn assign_aux_generator(
&mut self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
aux_generator: Value<C>
) -> Result<(), Error>
pub fn assign_aux_generator( &mut self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, aux_generator: Value<C> ) -> Result<(), Error>
Assigns the auxiliary generator point
pub fn assign_aux(
&mut self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
window_size: usize,
number_of_pairs: usize
) -> Result<(), Error>
pub fn assign_aux( &mut self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, window_size: usize, number_of_pairs: usize ) -> Result<(), Error>
Assigns multiplication auxiliary point for a pair of (window_size, n_pairs)
pub fn assert_is_on_curve(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
point: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<(), Error>
pub fn assert_is_on_curve( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, point: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<(), Error>
Constraints to ensure AssignedPoint
is on curve
pub fn assert_equal(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
p0: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<(), Error>
pub fn assert_equal( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, p0: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<(), Error>
Constraints assert two AssignedPoint
s are equal
pub fn select(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
c: &AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>,
p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
p2: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn select( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, c: &AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>, p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, p2: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Selects between 2 AssignedPoint
determined by an AssignedCondition
pub fn select_or_assign(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
c: &AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>,
p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
p2: C
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn select_or_assign( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, c: &AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>, p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, p2: C ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Selects between an AssignedPoint
and a point on the EC Emulated
determined by an AssignedCondition
pub fn normalize(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
point: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn normalize( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, point: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Normalizes an AssignedPoint
by reducing each of its coordinates
pub fn add(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
p0: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn add( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, p0: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, p1: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Adds 2 distinct AssignedPoints
pub fn double(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn double( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Doubles an AssignedPoint
pub fn double_n(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
logn: usize
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn double_n( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, logn: usize ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Given an AssignedPoint
$P$ computes P * 2^logn
pub fn ladder(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
to_double: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
to_add: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn ladder( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, to_double: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, to_add: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Wrapper for _ladder_incomplete
Given 2 AssignedPoint
$P$ and $Q$ efficiently computes $2*P + Q$
pub fn neg(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn neg( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Returns the negative or inverse of an AssignedPoint
pub fn sign(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
) -> Result<AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>, Error>
pub fn sign( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, p: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB> ) -> Result<AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>, Error>
Returns sign of the assigned point
§impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>where
C: CurveAffine,
impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>where
C: CurveAffine,
pub fn mul(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
point: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>,
scalar: &AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>,
window_size: usize
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn mul( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, point: &AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, scalar: &AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>, window_size: usize ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Scalar multiplication of a point in the EC Performed with the sliding-window algorithm
pub fn mul_batch_1d_horizontal(
&self,
ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>,
pairs: Vec<(AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>)>,
window_size: usize
) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
pub fn mul_batch_1d_horizontal( &self, ctx: &mut RegionCtx<'_, <C as PrimeCurveAffine>::Scalar>, pairs: Vec<(AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>)>, window_size: usize ) -> Result<AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>, Error>
Computes multi-product
Given a vector of point, scalar pairs
[(P_0, e_0), (P_1, e_1), ..., (P_k, e_k)]
Returns
P_0 * e_0 + P_1 * e_1 + ...+ P_k * e_k
§impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>where
C: CurveAffine,
impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>where
C: CurveAffine,
pub fn new(
config: EccConfig
) -> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
pub fn new( config: EccConfig ) -> BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
Return BaseEccChip
from EccConfig
pub fn rns(
&self
) -> Rc<Rns<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>>
pub fn rns( &self ) -> Rc<Rns<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>>
Residue numeral system
Used to emulate C::Base
(wrong field) over C::Scalar
(native field)
pub fn integer_chip(
&self
) -> &IntegerChip<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
pub fn integer_chip( &self ) -> &IntegerChip<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
Returns IntegerChip
for the base field of the emulated EC
pub fn main_gate(&self) -> &MainGate<<C as PrimeCurveAffine>::Scalar>
pub fn main_gate(&self) -> &MainGate<<C as PrimeCurveAffine>::Scalar>
Return Maingate
of the GeneralEccChip
pub fn to_rns_point(
&self,
point: C
) -> Point<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
pub fn to_rns_point( &self, point: C ) -> Point<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
Returns a Point
(Rns representation) from a point in the emulated EC
Trait Implementations
§impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> Clone for BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> Clone for BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
§impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> Debug for BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
impl<C, const NUMBER_OF_LIMBS: usize, const BIT_LEN_LIMB: usize> Debug for BaseFieldEccChip<C, NUMBER_OF_LIMBS, BIT_LEN_LIMB>
§impl<'a, C, const LIMBS: usize, const BITS: usize> EccInstructions<'a, C> for BaseFieldEccChip<C, LIMBS, BITS>where
C: CurveAffine,
impl<'a, C, const LIMBS: usize, const BITS: usize> EccInstructions<'a, C> for BaseFieldEccChip<C, LIMBS, BITS>where
C: CurveAffine,
§type ScalarChip = MainGate<<C as PrimeCurveAffine>::Scalar>
type ScalarChip = MainGate<<C as PrimeCurveAffine>::Scalar>
IntegerInstructions
] to handle scalar field operation.§type AssignedCell = AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>
type AssignedCell = AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>
§type AssignedScalar = AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>
type AssignedScalar = AssignedCell<<C as PrimeCurveAffine>::Scalar, <C as PrimeCurveAffine>::Scalar>
§type AssignedEcPoint = AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, LIMBS, BITS>
type AssignedEcPoint = AssignedPoint<<C as CurveAffine>::Base, <C as PrimeCurveAffine>::Scalar, LIMBS, BITS>
§fn scalar_chip(
&self
) -> &<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::ScalarChip
fn scalar_chip( &self ) -> &<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::ScalarChip
EccInstructions::ScalarChip
].§fn assign_constant(
&self,
ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context,
ec_point: C
) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
fn assign_constant( &self, ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context, ec_point: C ) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
§fn assign_point(
&self,
ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context,
ec_point: Value<C>
) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
fn assign_point( &self, ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context, ec_point: Value<C> ) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
§fn sum_with_const(
&self,
ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context,
values: &[impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint>],
constant: C
) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
fn sum_with_const( &self, ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context, values: &[impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint>], constant: C ) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
§fn fixed_base_msm(
&mut self,
ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context,
pairs: &[(impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedScalar>, C)]
) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
fn fixed_base_msm( &mut self, ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context, pairs: &[(impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedScalar>, C)] ) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
§fn variable_base_msm(
&mut self,
ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context,
pairs: &[(impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedScalar>, impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint>)]
) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
fn variable_base_msm( &mut self, ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context, pairs: &[(impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedScalar>, impl Deref<Target = <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint>)] ) -> Result<<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, Error>
§fn assert_equal(
&self,
ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context,
lhs: &<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint,
rhs: &<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint
) -> Result<(), Error>
fn assert_equal( &self, ctx: &mut <BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::Context, lhs: &<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint, rhs: &<BaseFieldEccChip<C, LIMBS, BITS> as EccInstructions<'a, C>>::AssignedEcPoint ) -> Result<(), Error>
lhs
and rhs
are equal.