Struct kimchi::proof::ProofEvaluations
source · pub struct ProofEvaluations<Evals> {Show 26 fields
pub public: Option<Evals>,
pub w: [Evals; 15],
pub z: Evals,
pub s: [Evals; 6],
pub coefficients: [Evals; 15],
pub generic_selector: Evals,
pub poseidon_selector: Evals,
pub complete_add_selector: Evals,
pub mul_selector: Evals,
pub emul_selector: Evals,
pub endomul_scalar_selector: Evals,
pub range_check0_selector: Option<Evals>,
pub range_check1_selector: Option<Evals>,
pub foreign_field_add_selector: Option<Evals>,
pub foreign_field_mul_selector: Option<Evals>,
pub xor_selector: Option<Evals>,
pub rot_selector: Option<Evals>,
pub lookup_aggregation: Option<Evals>,
pub lookup_table: Option<Evals>,
pub lookup_sorted: [Option<Evals>; 5],
pub runtime_lookup_table: Option<Evals>,
pub runtime_lookup_table_selector: Option<Evals>,
pub xor_lookup_selector: Option<Evals>,
pub lookup_gate_lookup_selector: Option<Evals>,
pub range_check_lookup_selector: Option<Evals>,
pub foreign_field_mul_lookup_selector: Option<Evals>,
}
Expand description
Polynomial evaluations contained in a ProverProof
.
- Chunked evaluations
Field
is instantiated with vectors with a length that equals the length of the chunk - Non chunked evaluations
Field
is instantiated with a field, so they are single-sized#serde_as
Fields§
§public: Option<Evals>
public input polynomials
w: [Evals; 15]
witness polynomials
z: Evals
permutation polynomial
s: [Evals; 6]
permutation polynomials (PERMUTS-1 evaluations because the last permutation is only used in commitment form)
coefficients: [Evals; 15]
coefficient polynomials
generic_selector: Evals
evaluation of the generic selector polynomial
poseidon_selector: Evals
evaluation of the poseidon selector polynomial
complete_add_selector: Evals
evaluation of the elliptic curve addition selector polynomial
mul_selector: Evals
evaluation of the elliptic curve variable base scalar multiplication selector polynomial
emul_selector: Evals
evaluation of the endoscalar multiplication selector polynomial
endomul_scalar_selector: Evals
evaluation of the endoscalar multiplication scalar computation selector polynomial
range_check0_selector: Option<Evals>
evaluation of the RangeCheck0 selector polynomial
range_check1_selector: Option<Evals>
evaluation of the RangeCheck1 selector polynomial
foreign_field_add_selector: Option<Evals>
evaluation of the ForeignFieldAdd selector polynomial
foreign_field_mul_selector: Option<Evals>
evaluation of the ForeignFieldMul selector polynomial
xor_selector: Option<Evals>
evaluation of the Xor selector polynomial
rot_selector: Option<Evals>
evaluation of the Rot selector polynomial
lookup_aggregation: Option<Evals>
evaluation of lookup aggregation polynomial
lookup_table: Option<Evals>
evaluation of lookup table polynomial
lookup_sorted: [Option<Evals>; 5]
evaluation of lookup sorted polynomials
runtime_lookup_table: Option<Evals>
evaluation of runtime lookup table polynomial
runtime_lookup_table_selector: Option<Evals>
evaluation of the runtime lookup table selector polynomial
xor_lookup_selector: Option<Evals>
evaluation of the Xor range check pattern selector polynomial
lookup_gate_lookup_selector: Option<Evals>
evaluation of the Lookup range check pattern selector polynomial
range_check_lookup_selector: Option<Evals>
evaluation of the RangeCheck range check pattern selector polynomial
foreign_field_mul_lookup_selector: Option<Evals>
evaluation of the ForeignFieldMul range check pattern selector polynomial
Implementations§
source§impl<Eval> ProofEvaluations<Eval>
impl<Eval> ProofEvaluations<Eval>
source§impl<F: Zero + Copy> ProofEvaluations<PointEvaluations<F>>
impl<F: Zero + Copy> ProofEvaluations<PointEvaluations<F>>
pub fn dummy_with_witness_evaluations( curr: [F; 15], next: [F; 15] ) -> ProofEvaluations<PointEvaluations<F>>
source§impl<F: FftField> ProofEvaluations<PointEvaluations<Vec<F>>>
impl<F: FftField> ProofEvaluations<PointEvaluations<Vec<F>>>
pub fn combine( &self, pt: &PointEvaluations<F> ) -> ProofEvaluations<PointEvaluations<F>>
source§impl<F> ProofEvaluations<F>
impl<F> ProofEvaluations<F>
pub fn get_column(&self, col: Column) -> Option<&F>
Trait Implementations§
source§impl<Evals: Clone> Clone for ProofEvaluations<Evals>
impl<Evals: Clone> Clone for ProofEvaluations<Evals>
source§fn clone(&self) -> ProofEvaluations<Evals>
fn clone(&self) -> ProofEvaluations<Evals>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<F: Copy> ColumnEvaluations<F> for ProofEvaluations<PointEvaluations<F>>
impl<F: Copy> ColumnEvaluations<F> for ProofEvaluations<PointEvaluations<F>>
source§impl<Evals: Debug> Debug for ProofEvaluations<Evals>
impl<Evals: Debug> Debug for ProofEvaluations<Evals>
source§impl<'de, Evals> Deserialize<'de> for ProofEvaluations<Evals>where
Evals: Deserialize<'de>,
impl<'de, Evals> Deserialize<'de> for ProofEvaluations<Evals>where Evals: Deserialize<'de>,
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,
source§impl<F, CamlF> From<(Option<PointEvaluations<Vec<CamlF, Global>>>, CamlProofEvaluations<CamlF>)> for ProofEvaluations<PointEvaluations<Vec<F>>>where
F: Clone + From<CamlF>,
CamlF: Clone,
impl<F, CamlF> From<(Option<PointEvaluations<Vec<CamlF, Global>>>, CamlProofEvaluations<CamlF>)> for ProofEvaluations<PointEvaluations<Vec<F>>>where F: Clone + From<CamlF>, CamlF: Clone,
source§fn from(
(public, cpe): (Option<PointEvaluations<Vec<CamlF>>>, CamlProofEvaluations<CamlF>)
) -> Self
fn from( (public, cpe): (Option<PointEvaluations<Vec<CamlF>>>, CamlProofEvaluations<CamlF>) ) -> Self
source§impl<F, CamlF> From<ProofEvaluations<PointEvaluations<Vec<F, Global>>>> for (Option<PointEvaluations<Vec<CamlF>>>, CamlProofEvaluations<CamlF>)where
F: Clone,
CamlF: From<F>,
impl<F, CamlF> From<ProofEvaluations<PointEvaluations<Vec<F, Global>>>> for (Option<PointEvaluations<Vec<CamlF>>>, CamlProofEvaluations<CamlF>)where F: Clone, CamlF: From<F>,
source§fn from(pe: ProofEvaluations<PointEvaluations<Vec<F>>>) -> Self
fn from(pe: ProofEvaluations<PointEvaluations<Vec<F>>>) -> Self
source§impl<Evals: PartialEq> PartialEq<ProofEvaluations<Evals>> for ProofEvaluations<Evals>
impl<Evals: PartialEq> PartialEq<ProofEvaluations<Evals>> for ProofEvaluations<Evals>
source§fn eq(&self, other: &ProofEvaluations<Evals>) -> bool
fn eq(&self, other: &ProofEvaluations<Evals>) -> bool
self
and other
values to be equal, and is used
by ==
.