diff --git a/rustdoc/help.html b/rustdoc/help.html index 5b57a161fa..20c79678f5 100644 --- a/rustdoc/help.html +++ b/rustdoc/help.html @@ -1 +1 @@ -Rustdoc help

Rustdoc help

Back
\ No newline at end of file +Rustdoc help

Rustdoc help

Back
\ No newline at end of file diff --git a/rustdoc/implementors/core/clone/trait.Clone.js b/rustdoc/implementors/core/clone/trait.Clone.js index 5b2ad1b44c..bf442a7800 100644 --- a/rustdoc/implementors/core/clone/trait.Clone.js +++ b/rustdoc/implementors/core/clone/trait.Clone.js @@ -1,7 +1,7 @@ (function() {var implementors = { "folding":[["impl Clone for Degree"],["impl Clone for Column"],["impl<C> Clone for ExpExtension<C>where\n C: FoldingConfig,"],["impl<G: Clone + CommitmentCurve, W: Clone + Witness<G>> Clone for ExtendedWitness<G, W>where\n G::ScalarField: Clone,"],["impl<'a, F: Clone> Clone for EvalLeaf<'a, F>"],["impl Clone for Side"],["impl<C> Clone for FoldingCompatibleExpr<C>where\n C: FoldingConfig,"],["impl<G: Clone + CommitmentCurve, I: Clone + Instance<G>> Clone for RelaxedInstance<G, I>where\n G::ScalarField: Clone,"],["impl<C> Clone for Term<C>where\n C: FoldingConfig,"],["impl<C> Clone for FoldingCompatibleExprInner<C>where\n C: FoldingConfig,"],["impl<G: Clone + CommitmentCurve, W: Clone + Witness<G>> Clone for RelaxedWitness<G, W>where\n G::ScalarField: Clone,"],["impl<F: Clone + Field> Clone for Alphas<F>"],["impl<C> Clone for ExtendedFoldingColumn<C>where\n C: FoldingConfig,"],["impl<G: Clone + KimchiCurve> Clone for EmptyStructure<G>where\n G::ScalarField: Clone,"],["impl<C> Clone for IntegratedFoldingExpr<C>where\n C: FoldingConfig,"],["impl<C> Clone for FoldingExp<C>where\n C: FoldingConfig,"],["impl<G: Clone + CommitmentCurve, I: Clone + Instance<G>> Clone for ExtendedInstance<G, I>"],["impl Clone for Sign"]], "groupmap":[["impl<G: Clone + SWModelParameters> Clone for BWParameters<G>where\n G::BaseField: Clone,"]], -"ivc":[["impl<const N_WIT: usize, G: Clone + KimchiCurve> Clone for ProofCommitments<N_WIT, G>"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> Clone for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>"],["impl<G: Clone + KimchiCurve> Clone for GenericVecStructure<G>where\n G::ScalarField: Clone,"],["impl Clone for IVCColumn"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> Clone for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl Clone for PlonkSpongeConstantsIVC"],["impl Clone for PlonkishChallengeIter"],["impl Clone for ProverError"],["impl<const N_COL: usize, const N_FSEL: usize, F: Clone + Field, Evals: Clone> Clone for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl Clone for PlonkSpongeConstantsIVC"],["impl<G: Clone + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Clone for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: Clone,"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Clone + KimchiCurve, OpeningProof: Clone + OpenProof<G>> Clone for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where\n G::ScalarField: Clone,"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Clone for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Clone for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl Clone for PlonkishChallenge"],["impl<Ff: Clone> Clone for IVCLookupTable<Ff>"]], +"ivc":[["impl<const N_WIT: usize, G: Clone + KimchiCurve> Clone for ProofCommitments<N_WIT, G>"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> Clone for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>"],["impl<G: Clone + KimchiCurve> Clone for GenericVecStructure<G>where\n G::ScalarField: Clone,"],["impl Clone for IVCColumn"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> Clone for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl Clone for PlonkSpongeConstantsIVC"],["impl Clone for PlonkishChallengeIter"],["impl Clone for ProverError"],["impl<const N_COL: usize, const N_FSEL: usize, F: Clone + Field, Evals: Clone> Clone for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl Clone for PlonkSpongeConstantsIVC"],["impl<G: Clone + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Clone for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: Clone,"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Clone + KimchiCurve, OpeningProof: Clone + OpenProof<G>> Clone for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where\n G::ScalarField: Clone,"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Clone for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Clone for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl Clone for PlonkishChallenge"],["impl<Ff: Clone> Clone for IVCLookupTable<Ff>"]], "kimchi":[["impl<G: Clone> Clone for TestSRS<G>"],["impl<C: Clone, Column: Clone> Clone for ExprInner<C, Column>"],["impl Clone for RotMode"],["impl Clone for Domain"],["impl<F: Clone + FftField> Clone for LookupShifts<F>"],["impl Clone for Traces"],["impl<G: Clone + AffineCurve, OpeningProof: Clone> Clone for ProverProof<G, OpeningProof>where\n G::ScalarField: Clone,"],["impl<E: Clone, Column: Clone> Clone for Linearization<E, Column>"],["impl<F: Clone + PrimeField> Clone for ColumnEvaluations<F>"],["impl<T: Clone> Clone for DisjointSet<T>"],["impl<F: Clone + FftField> Clone for LookupEvals<F>"],["impl<F: Clone> Clone for FullChallenge<F>"],["impl<G: Clone + AffineCurve> Clone for LookupCommitments<G>"],["impl<Column: Clone> Clone for Variable<Column>"],["impl Clone for ProverError"],["impl<F: Clone> Clone for GenericGateSpec<F>"],["impl<F: Clone> Clone for Alphas<F>"],["impl<Evals: Clone> Clone for PointEvaluations<Evals>"],["impl Clone for RuntimeTableSpec"],["impl<F: Clone + FftField> Clone for EvaluationDomains<F>"],["impl<T: Clone> Clone for LookupSelectors<T>"],["impl Clone for GateType"],["impl Clone for SnarkyRuntimeError"],["impl Clone for Column"],["impl<F: Clone> Clone for ForeignElement<F>"],["impl<CamlG: Clone, CamlF: Clone> Clone for CamlRecursionChallenge<CamlG, CamlF>"],["impl<G> Clone for RecursionChallenge<G>where\n G: AffineCurve + Clone,\n G::ScalarField: Clone,"],["impl Clone for FeatureFlags"],["impl<F: Clone + 'static> Clone for Constants<F>"],["impl<F: Clone + Field> Clone for Constants<F>"],["impl<F: Clone + FftField> Clone for LookupConstraintSystem<F>"],["impl<F: Clone> Clone for RuntimeTableCfg<F>"],["impl<F: Clone + Field> Clone for RandomOracles<F>"],["impl<CamlG: Clone> Clone for CamlLookupCommitments<CamlG>"],["impl<F: Clone> Clone for LookupConfiguration<F>"],["impl Clone for RowOffset"],["impl Clone for GateLookupTable"],["impl<SingleLookup: Clone, LookupTableID: Clone> Clone for JointLookup<SingleLookup, LookupTableID>"],["impl<F: Clone + FftField> Clone for WitnessEvals<F>"],["impl Clone for LookupTableID"],["impl<Field> Clone for SnarkyConstraintSystem<Field>where\n Field: PrimeField + Clone,"],["impl Clone for SnarkyCompilationError"],["impl<F: Clone + FftField> Clone for WitnessOverDomains<F>"],["impl<F: Clone + PrimeField> Clone for ConstraintSystem<F>"],["impl<F: Clone + FftField> Clone for LookupPolys<F>"],["impl<F: Clone + PrimeField> Clone for CircuitGate<F>"],["impl<F: Clone> Clone for RuntimeTable<F>"],["impl Clone for CircuitGateError"],["impl<F: Clone + PrimeField> Clone for Boolean<F>"],["impl<CamlF: Clone> Clone for CamlProofEvaluations<CamlF>"],["impl<F: Clone + FftField> Clone for DomainConstantEvaluations<F>"],["impl Clone for CacheId"],["impl Clone for FFOps"],["impl<G: Clone + CommitmentCurve> Clone for LookupVerifierIndex<G>"],["impl Clone for LookupPatterns"],["impl Clone for LookupError"],["impl<F: Clone> Clone for LookupTable<F>"],["impl Clone for FeatureFlag"],["impl Clone for SnarkyError"],["impl<Evals: Clone> Clone for ProofEvaluations<Evals>"],["impl<CamlG: Clone> Clone for CamlProverCommitments<CamlG>"],["impl<F> Clone for FieldVar<F>where\n F: PrimeField + Clone,"],["impl<F: Clone + PrimeField> Clone for EvaluatedColumnCoefficients<F>"],["impl Clone for Wire"],["impl<G: Clone + AffineCurve> Clone for ProverCommitments<G>"],["impl Clone for StoredSRSType"],["impl Clone for LookupPatternIter"],["impl<F: Clone> Clone for ConstantExprInner<F>"],["impl<F: Clone, Column: Clone> Clone for PolishToken<F, Column>"],["impl<F: Clone + FftField> Clone for WitnessShifts<F>"],["impl Clone for LookupFeatures"],["impl<F: Clone> Clone for SingleLookup<F>"],["impl Clone for VerifierIndexError"],["impl Clone for ArgumentType"],["impl Clone for DomainCreationError"],["impl Clone for LookupInfo"],["impl<T: Clone> Clone for Operations<T>"],["impl<G: Clone + KimchiCurve, OpeningProof: Clone + OpenProof<G>> Clone for ProverIndex<G, OpeningProof>where\n G::ScalarField: Clone,\n OpeningProof::SRS: Clone,\n G::BaseField: Clone,"],["impl Clone for VerifyError"],["impl Clone for GateLookupTables"],["impl Clone for CurrOrNext"],["impl<G: Clone + KimchiCurve, OpeningProof: Clone + OpenProof<G>> Clone for VerifierIndex<G, OpeningProof>where\n G::ScalarField: Clone,\n OpeningProof::SRS: Clone,"],["impl<F: Clone> Clone for ConstantTerm<F>"],["impl Clone for SetupError"],["impl Clone for LookupPattern"],["impl Clone for LocalPosition"],["impl Clone for ChallengeTerm"]], "kimchi_msm":[["impl<Ff> Clone for LookupTableIter<Ff>"],["impl Clone for Column"],["impl<const N_WIT: usize, F: Clone + PrimeField, ID: Clone + LookupTableID> Clone for ProofInputs<N_WIT, F, ID>"],["impl<Ff> Clone for LookupTableIter<Ff>"],["impl Clone for FECColumn"],["impl<Ff: Clone> Clone for LookupTable<Ff>"],["impl<F: Clone, ID: Clone + LookupTableID> Clone for Logup<F, ID>"],["impl Clone for TestColumn"],["impl<Ff: Clone> Clone for LookupTable<Ff>"],["impl<const N_WIT: usize, T: Clone> Clone for Witness<N_WIT, T>"],["impl<const N_WIT: usize, G: Clone + KimchiCurve, ID: Clone + LookupTableID> Clone for ProofCommitments<N_WIT, G, ID>"],["impl Clone for LookupTableIter"],["impl Clone for LookupTable"],["impl<T: Clone, ID: Clone> Clone for LookupProof<T, ID>"],["impl Clone for DummyLookupTable"],["impl Clone for LookupTableIter"],["impl Clone for SerializationColumn"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Clone + KimchiCurve, OpeningProof: Clone + OpenProof<G>, ID: Clone + LookupTableID> Clone for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof, ID>where\n G::ScalarField: Clone,"],["impl Clone for ProverError"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone, ID: Clone + LookupTableID> Clone for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F, ID>"],["impl Clone for FFAColumn"],["impl Clone for LookupTableIDs"],["impl Clone for LookupTable"],["impl<Pair: Clone + PairingEngine> Clone for TestPairingSRS<Pair>where\n Pair::G1Affine: Clone,\n Pair::G2Affine: Clone,"],["impl Clone for FECColumnOutput"],["impl<F: Clone, ID: Clone + LookupTableID> Clone for LookupTable<F, ID>"],["impl<T: Clone> Clone for IdMPrism<T>"],["impl Clone for FECColumnInter"],["impl<F: Clone, ID: Clone + LookupTableID> Clone for LogupWitness<F, ID>"],["impl Clone for FECColumnInput"]], "mina_curves":[["impl Clone for PallasParameters"],["impl Clone for LegacyPallasParameters"],["impl Clone for LegacyVestaParameters"],["impl Clone for VestaParameters"]], diff --git a/rustdoc/implementors/core/cmp/trait.Eq.js b/rustdoc/implementors/core/cmp/trait.Eq.js index c5b8727b63..6a8991aa61 100644 --- a/rustdoc/implementors/core/cmp/trait.Eq.js +++ b/rustdoc/implementors/core/cmp/trait.Eq.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[["impl Eq for Sign"],["impl<G, Col, Chall, I, W, Sel, Str> Eq for StandardConfig<G, Col, Chall, I, W, Sel, Str>"],["impl<G: Eq + CommitmentCurve, I: Eq + Instance<G>> Eq for RelaxedInstance<G, I>where\n G::ScalarField: Eq,"],["impl<C> Eq for ExtendedFoldingColumn<C>where\n C: FoldingConfig,"],["impl Eq for Column"],["impl Eq for Degree"],["impl<G: Eq + CommitmentCurve, I: Eq + Instance<G>> Eq for ExtendedInstance<G, I>"],["impl<F: Field> Eq for Alphas<F>"],["impl<C> Eq for FoldingExp<C>where\n C: FoldingConfig,"]], -"ivc":[["impl<G: Eq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Eq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: Eq,"],["impl<const N_COL: usize, const N_FSEL: usize, F: Eq + Field, Evals: Eq> Eq for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Eq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl Eq for PlonkishChallenge"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Eq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> Eq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl Eq for IVCColumn"],["impl<Ff: Eq> Eq for IVCLookupTable<Ff>"]], +"ivc":[["impl<G: Eq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Eq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: Eq,"],["impl<const N_COL: usize, const N_FSEL: usize, F: Eq + Field, Evals: Eq> Eq for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Eq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl Eq for PlonkishChallenge"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Eq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> Eq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl Eq for IVCColumn"],["impl<Ff: Eq> Eq for IVCLookupTable<Ff>"]], "kimchi":[["impl Eq for StoredSRSType"],["impl Eq for LookupFeatures"],["impl Eq for GateLookupTable"],["impl Eq for CircuitGateError"],["impl Eq for FFOps"],["impl<Column: Eq> Eq for Variable<Column>"],["impl Eq for ChallengeTerm"],["impl<F: Eq> Eq for ConstantTerm<F>"],["impl Eq for ArgumentType"],["impl Eq for GateType"],["impl Eq for RowOffset"],["impl Eq for CacheId"],["impl Eq for FeatureFlag"],["impl<T: Eq> Eq for Operations<T>"],["impl Eq for Column"],["impl<F: Eq, Column: Eq> Eq for PolishToken<F, Column>"],["impl<G: Eq> Eq for TestSRS<G>"],["impl Eq for CurrOrNext"],["impl Eq for RotMode"],["impl Eq for LookupPatterns"],["impl Eq for LookupPattern"],["impl Eq for GateLookupTables"],["impl Eq for Wire"]], "kimchi_msm":[["impl Eq for SerializationColumn"],["impl Eq for FECColumn"],["impl<Ff: Eq> Eq for LookupTable<Ff>"],["impl<Ff: Eq> Eq for LookupTable<Ff>"],["impl Eq for LookupTable"],["impl Eq for Column"],["impl Eq for FECColumnInput"],["impl Eq for DummyLookupTable"],["impl<const N_WIT: usize, T: Eq> Eq for Witness<N_WIT, T>"],["impl<const N_WIT: usize, F: Eq + PrimeField, ID: Eq + LookupTableID> Eq for ProofInputs<N_WIT, F, ID>"],["impl Eq for LookupTable"],["impl<F: Eq, ID: Eq + LookupTableID> Eq for Logup<F, ID>"],["impl Eq for FECColumnInter"],["impl<Pair: Eq + PairingEngine> Eq for TestPairingSRS<Pair>where\n Pair::G1Affine: Eq,\n Pair::G2Affine: Eq,"],["impl Eq for FECColumnOutput"],["impl Eq for FFAColumn"],["impl Eq for LookupTableIDs"],["impl<F: Eq, ID: Eq + LookupTableID> Eq for LogupWitness<F, ID>"],["impl Eq for TestColumn"]], "mina_curves":[["impl Eq for LegacyPallasParameters"],["impl Eq for VestaParameters"],["impl Eq for PallasParameters"],["impl Eq for LegacyVestaParameters"]], diff --git a/rustdoc/implementors/core/cmp/trait.PartialEq.js b/rustdoc/implementors/core/cmp/trait.PartialEq.js index d1f6a93779..952d7e8a15 100644 --- a/rustdoc/implementors/core/cmp/trait.PartialEq.js +++ b/rustdoc/implementors/core/cmp/trait.PartialEq.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[["impl<C> PartialEq<ExpExtension<C>> for ExpExtension<C>where\n C: FoldingConfig,"],["impl<C> PartialEq<FoldingExp<C>> for FoldingExp<C>where\n C: FoldingConfig,"],["impl<C> PartialEq<FoldingCompatibleExpr<C>> for FoldingCompatibleExpr<C>where\n C: FoldingConfig,"],["impl<G: PartialEq + CommitmentCurve, I: PartialEq + Instance<G>> PartialEq<RelaxedInstance<G, I>> for RelaxedInstance<G, I>where\n G::ScalarField: PartialEq,"],["impl PartialEq<Sign> for Sign"],["impl PartialEq<Degree> for Degree"],["impl<C> PartialEq<ExtendedFoldingColumn<C>> for ExtendedFoldingColumn<C>where\n C: FoldingConfig,"],["impl PartialEq<Column> for Column"],["impl<G: PartialEq + CommitmentCurve, I: PartialEq + Instance<G>> PartialEq<ExtendedInstance<G, I>> for ExtendedInstance<G, I>"],["impl<C> PartialEq<FoldingCompatibleExprInner<C>> for FoldingCompatibleExprInner<C>where\n C: FoldingConfig,"],["impl<F: Field> PartialEq<Alphas<F>> for Alphas<F>"],["impl<G, Col, Chall, I, W, Sel, Str> PartialEq<StandardConfig<G, Col, Chall, I, W, Sel, Str>> for StandardConfig<G, Col, Chall, I, W, Sel, Str>"]], -"ivc":[["impl<G: PartialEq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> PartialEq<PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: PartialEq,"],["impl PartialEq<PlonkishChallenge> for PlonkishChallenge"],["impl<const N_COL: usize, const N_FSEL: usize, F: PartialEq + Field, Evals: PartialEq> PartialEq<PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>> for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> PartialEq<PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>> for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> PartialEq<PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>> for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> PartialEq<PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>> for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl PartialEq<IVCColumn> for IVCColumn"],["impl<Ff: PartialEq> PartialEq<IVCLookupTable<Ff>> for IVCLookupTable<Ff>"]], +"ivc":[["impl<G: PartialEq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> PartialEq<PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: PartialEq,"],["impl PartialEq<PlonkishChallenge> for PlonkishChallenge"],["impl<const N_COL: usize, const N_FSEL: usize, F: PartialEq + Field, Evals: PartialEq> PartialEq<PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>> for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> PartialEq<PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>> for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> PartialEq<PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>> for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> PartialEq<PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>> for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl PartialEq<IVCColumn> for IVCColumn"],["impl<Ff: PartialEq> PartialEq<IVCLookupTable<Ff>> for IVCLookupTable<Ff>"]], "kimchi":[["impl PartialEq<RowOffset> for RowOffset"],["impl PartialEq<FeatureFlag> for FeatureFlag"],["impl PartialEq<FFOps> for FFOps"],["impl PartialEq<LookupPatterns> for LookupPatterns"],["impl<Column: PartialEq> PartialEq<Variable<Column>> for Variable<Column>"],["impl PartialEq<LookupPattern> for LookupPattern"],["impl PartialEq<LookupFeatures> for LookupFeatures"],["impl PartialEq<ChallengeTerm> for ChallengeTerm"],["impl PartialEq<CircuitGateError> for CircuitGateError"],["impl<F: PartialEq> PartialEq<ConstantTerm<F>> for ConstantTerm<F>"],["impl PartialEq<Domain> for Domain"],["impl PartialEq<GateType> for GateType"],["impl PartialEq<GateLookupTables> for GateLookupTables"],["impl PartialEq<CurrOrNext> for CurrOrNext"],["impl PartialEq<RotMode> for RotMode"],["impl PartialEq<StoredSRSType> for StoredSRSType"],["impl<C: PartialEq, Column: PartialEq> PartialEq<ExprInner<C, Column>> for ExprInner<C, Column>"],["impl PartialEq<ArgumentType> for ArgumentType"],["impl PartialEq<GateLookupTable> for GateLookupTable"],["impl<T: PartialEq> PartialEq<Operations<T>> for Operations<T>"],["impl PartialEq<Column> for Column"],["impl PartialEq<Wire> for Wire"],["impl PartialEq<CacheId> for CacheId"],["impl<F: PartialEq, Column: PartialEq> PartialEq<PolishToken<F, Column>> for PolishToken<F, Column>"],["impl<F: PartialEq> PartialEq<ConstantExprInner<F>> for ConstantExprInner<F>"],["impl<G: PartialEq> PartialEq<TestSRS<G>> for TestSRS<G>"]], "kimchi_msm":[["impl PartialEq<LookupTableIDs> for LookupTableIDs"],["impl<F: PartialEq, ID: PartialEq + LookupTableID> PartialEq<LogupWitness<F, ID>> for LogupWitness<F, ID>"],["impl PartialEq<FECColumnInput> for FECColumnInput"],["impl PartialEq<FFAColumn> for FFAColumn"],["impl PartialEq<DummyLookupTable> for DummyLookupTable"],["impl PartialEq<Column> for Column"],["impl<const N_WIT: usize, F: PartialEq + PrimeField, ID: PartialEq + LookupTableID> PartialEq<ProofInputs<N_WIT, F, ID>> for ProofInputs<N_WIT, F, ID>"],["impl<Ff: PartialEq> PartialEq<LookupTable<Ff>> for LookupTable<Ff>"],["impl PartialEq<TestColumn> for TestColumn"],["impl PartialEq<LookupTable> for LookupTable"],["impl PartialEq<FECColumn> for FECColumn"],["impl<Pair: PartialEq + PairingEngine> PartialEq<TestPairingSRS<Pair>> for TestPairingSRS<Pair>where\n Pair::G1Affine: PartialEq,\n Pair::G2Affine: PartialEq,"],["impl<F: PartialEq, ID: PartialEq + LookupTableID> PartialEq<Logup<F, ID>> for Logup<F, ID>"],["impl PartialEq<FECColumnInter> for FECColumnInter"],["impl PartialEq<SerializationColumn> for SerializationColumn"],["impl<const N_WIT: usize, T: PartialEq> PartialEq<Witness<N_WIT, T>> for Witness<N_WIT, T>"],["impl PartialEq<LookupTable> for LookupTable"],["impl PartialEq<FECColumnOutput> for FECColumnOutput"],["impl<Ff: PartialEq> PartialEq<LookupTable<Ff>> for LookupTable<Ff>"]], "mina_curves":[["impl PartialEq<LegacyPallasParameters> for LegacyPallasParameters"],["impl PartialEq<VestaParameters> for VestaParameters"],["impl PartialEq<PallasParameters> for PallasParameters"],["impl PartialEq<LegacyVestaParameters> for LegacyVestaParameters"]], diff --git a/rustdoc/implementors/core/convert/trait.From.js b/rustdoc/implementors/core/convert/trait.From.js index 1617595b4f..b2e95a7e3d 100644 --- a/rustdoc/implementors/core/convert/trait.From.js +++ b/rustdoc/implementors/core/convert/trait.From.js @@ -1,13 +1,13 @@ (function() {var implementors = { "folding":[["impl<F, Col, Config: FoldingConfig<Column = Col>> From<Operations<ConstantExprInner<F>>> for FoldingCompatibleExpr<Config>where\n Config::Curve: AffineCurve<ScalarField = F>,\n Config::Challenge: From<ChallengeTerm>,"],["impl<F, Col, Config: FoldingConfig<Column = Col>> From<Operations<ExprInner<ConstantExprInner<F>, Col>>> for FoldingCompatibleExpr<Config>where\n Config::Curve: AffineCurve<ScalarField = F>,\n Config::Challenge: From<ChallengeTerm>,"],["impl<F, Col, Config: FoldingConfig<Column = Col>> From<ExprInner<ConstantExprInner<F>, Col>> for FoldingCompatibleExprInner<Config>where\n Config::Curve: AffineCurve<ScalarField = F>,\n Config::Challenge: From<ChallengeTerm>,"],["impl<F, Col, Config: FoldingConfig<Column = Col>> From<Operations<ExprInner<Operations<ConstantExprInner<F>>, Col>>> for FoldingCompatibleExpr<Config>where\n Config::Curve: AffineCurve<ScalarField = F>,\n Config::Challenge: From<ChallengeTerm>,"],["impl<F, Config: FoldingConfig> From<ConstantExprInner<F>> for FoldingCompatibleExprInner<Config>where\n Config::Curve: AffineCurve<ScalarField = F>,\n Config::Challenge: From<ChallengeTerm>,"]], "internal_tracing":[["impl From<u64> for TimeInput"],["impl From<SystemTime> for TimeInput"]], -"ivc":[["impl From<ChallengeTerm> for PlonkishChallenge"]], +"ivc":[["impl From<ChallengeTerm> for PlonkishChallenge"]], "kimchi":[["impl From<Traces> for CamlTraces"],["impl<F, CamlF> From<RuntimeTableCfg<F>> for CamlRuntimeTableCfg<CamlF>where\n F: PrimeField,\n CamlF: From<F>,"],["impl From<LookupFeatures> for JsValue"],["impl<F, CamlF> From<&CircuitGate<F>> for CamlCircuitGate<CamlF>where\n CamlF: From<F>,\n F: PrimeField,"],["impl<F: Field, Column> From<u64> for Expr<F, Column>"],["impl<F> From<ChallengeTerm> for ConstantExpr<F>"],["impl<F: Field, Column> From<u64> for Expr<ConstantExpr<F>, Column>"],["impl<F, Column> From<ChallengeTerm> for Expr<ConstantExpr<F>, Column>"],["impl From<RuntimeTableSpec> for CamlRuntimeTableSpec"],["impl<G, CamlG> From<ProverCommitments<G>> for CamlProverCommitments<CamlG>where\n G: AffineCurve,\n CamlPolyComm<CamlG>: From<PolyComm<G>>,"],["impl<F> From<RuntimeTableCfg<F>> for RuntimeTableSpec"],["impl<F, Column> From<ConstantTerm<F>> for Expr<ConstantExpr<F>, Column>"],["impl From<Wire> for JsValue"],["impl<F: Field> From<u64> for ConstantExpr<F>"],["impl<F, CamlF> From<CamlCircuitGate<CamlF>> for CircuitGate<F>where\n F: From<CamlF> + PrimeField,"],["impl From<LookupInfo> for JsValue"],["impl<F, CamlF> From<CircuitGate<F>> for CamlCircuitGate<CamlF>where\n CamlF: From<F>,\n F: PrimeField,"],["impl<G, CamlG, CamlF> From<RecursionChallenge<G>> for CamlRecursionChallenge<CamlG, CamlF>where\n G: AffineCurve,\n CamlG: From<G>,\n CamlF: From<G::ScalarField>,"],["impl<G> From<TestSRS<G>> for SRS<G>"],["impl<F, CamlF> From<RuntimeTable<F>> for CamlRuntimeTable<CamlF>where\n F: PrimeField,\n CamlF: From<F>,"],["impl<F> From<ConstantTerm<F>> for ConstantExpr<F>"],["impl<T> From<T> for Operations<T>"],["impl From<CamlWire> for Wire"],["impl<F, CamlF> From<CamlRuntimeTable<CamlF>> for RuntimeTable<F>where\n F: PrimeField,\n CamlF: Into<F>,"],["impl From<FeatureFlags> for JsValue"],["impl<G> From<SRS<G>> for TestSRS<G>"],["impl<F, CamlF> From<ProofEvaluations<PointEvaluations<Vec<F, Global>>>> for (Option<PointEvaluations<Vec<CamlF>>>, CamlProofEvaluations<CamlF>)where\n F: Clone,\n CamlF: From<F>,"],["impl<F> From<ChallengeTerm> for ConstantExprInner<F>"],["impl<G, CamlG, CamlF> From<CamlRecursionChallenge<CamlG, CamlF>> for RecursionChallenge<G>where\n G: AffineCurve + From<CamlG>,\n G::ScalarField: From<CamlF>,"],["impl<G, CamlG> From<LookupCommitments<G>> for CamlLookupCommitments<CamlG>where\n G: AffineCurve,\n CamlPolyComm<CamlG>: From<PolyComm<G>>,"],["impl<F, Column> From<Operations<ConstantExprInner<F>>> for Expr<ConstantExpr<F>, Column>"],["impl<F, CamlF> From<LookupTable<F>> for CamlLookupTable<CamlF>where\n F: PrimeField,\n CamlF: From<F>,"],["impl From<CamlRuntimeTableSpec> for RuntimeTableSpec"],["impl<F, CamlF> From<CamlLookupTable<CamlF>> for LookupTable<F>where\n F: PrimeField,\n CamlF: Into<F>,"],["impl<F> From<ConstantTerm<F>> for ConstantExprInner<F>"],["impl From<GateType> for JsValue"],["impl From<LookupPatterns> for JsValue"],["impl<F, CamlF> From<RandomOracles<F>> for CamlRandomOracles<CamlF>where\n F: Field,\n CamlF: From<F>,"],["impl<G, CamlG> From<CamlProverCommitments<CamlG>> for ProverCommitments<G>where\n G: AffineCurve,\n PolyComm<G>: From<CamlPolyComm<CamlG>>,"],["impl<F, CamlF> From<CamlRandomOracles<CamlF>> for RandomOracles<F>where\n CamlF: Into<F>,\n F: Field,"],["impl<G, CamlG, CamlF> From<CamlProofWithPublic<CamlG, CamlF>> for (ProverProof<G, OpeningProof<G>>, Vec<G::ScalarField>)where\n CamlF: Clone,\n G: AffineCurve + From<CamlG>,\n G::ScalarField: From<CamlF>,"],["impl<F, CamlF> From<(Option<PointEvaluations<Vec<CamlF, Global>>>, CamlProofEvaluations<CamlF>)> for ProofEvaluations<PointEvaluations<Vec<F>>>where\n F: Clone + From<CamlF>,\n CamlF: Clone,"],["impl From<CurrOrNext> for JsValue"],["impl<'a, F> From<&'a ConstraintSystem<F>> for Circuit<'a, F>where\n F: PrimeField,"],["impl From<Wire> for CamlWire"],["impl<G, CamlG> From<CamlLookupCommitments<CamlG>> for LookupCommitments<G>where\n G: AffineCurve,\n PolyComm<G>: From<CamlPolyComm<CamlG>>,"],["impl<G, CamlG, CamlF> From<(ProverProof<G, OpeningProof<G>>, Vec<<G as AffineCurve>::ScalarField, Global>)> for CamlProofWithPublic<CamlG, CamlF>where\n G: AffineCurve,\n CamlG: From<G>,\n CamlF: From<G::ScalarField>,"],["impl<F, CamlF> From<CamlRuntimeTableCfg<CamlF>> for RuntimeTableCfg<F>where\n F: PrimeField,\n CamlF: Into<F>,"],["impl From<Traces> for String"]], "kimchi_msm":[["impl<Pair: PairingEngine> From<TestPairingSRS<Pair>> for PairingSRS<Pair>"],["impl<Pair: PairingEngine> From<PairingSRS<Pair>> for TestPairingSRS<Pair>"]], "kimchi_visu":[["impl<F> From<[Vec<F, Global>; 15]> for Witness<F>where\n F: Field,"]], "mina_poseidon":[["impl<F, CamlF> From<ScalarChallenge<F>> for CamlScalarChallenge<CamlF>where\n CamlF: From<F>,"],["impl<F, CamlF> From<CamlScalarChallenge<CamlF>> for ScalarChallenge<F>where\n CamlF: Into<F>,"]], "mina_signer":[["impl From<NetworkId> for u8"],["impl From<SecKeyError> for KeypairError"],["impl From<PubKeyError> for KeypairError"]], -"mvpoly":[["impl<F: PrimeField, const N: usize, const D: usize> From<ConstantExprInner<F>> for Dense<F, N, D>"],["impl<F: PrimeField, const N: usize, const D: usize> From<Operations<ConstantExprInner<F>>> for Dense<F, N, D>"],["impl<F: PrimeField, const N: usize, const D: usize> From<F> for Dense<F, N, D>"],["impl<const N: usize, const D: usize, F: PrimeField> From<Dense<F, N, D>> for Sparse<F, N, D>"],["impl<F: PrimeField, const N: usize, const D: usize> From<F> for Sparse<F, N, D>"]], +"mvpoly":[["impl<F: PrimeField, const N: usize, const D: usize> From<ConstantExprInner<F>> for Dense<F, N, D>"],["impl<F: PrimeField, const N: usize, const D: usize> From<Operations<ConstantExprInner<F>>> for Dense<F, N, D>"],["impl<F: PrimeField, const N: usize, const D: usize> From<F> for Dense<F, N, D>"],["impl<const N: usize, const D: usize, F: PrimeField> From<Dense<F, N, D>> for Sparse<F, N, D>"],["impl<F: PrimeField, const N: usize, const D: usize> From<F> for Sparse<F, N, D>"]], "o1_utils":[["impl<A, I, T> From<T> for AdjacentPairs<A, I>where\n T: IntoIterator<Item = A, IntoIter = I>,\n I: Iterator<Item = A>,"]], "o1vm":[["impl From<ColumnAlias> for usize"],["impl From<ColumnAlias> for usize"],["impl From<Instruction> for usize"],["impl From<ChallengeTerm> for Challenge"],["impl From<Steps> for usize"]], "poly_commitment":[["impl<'a, G, CamlG> From<&'a PolyComm<G>> for CamlPolyComm<CamlG>where\n G: AffineCurve,\n CamlG: From<G> + From<&'a G>,"],["impl<'a, G, CamlG> From<&'a CamlPolyComm<CamlG>> for PolyComm<G>where\n G: AffineCurve + From<&'a CamlG> + From<CamlG>,"],["impl<G, CamlF, CamlG> From<OpeningProof<G>> for CamlOpeningProof<CamlG, CamlF>where\n G: AffineCurve,\n CamlG: From<G>,\n CamlF: From<G::ScalarField>,"],["impl<G, CamlF, CamlG> From<CamlOpeningProof<CamlG, CamlF>> for OpeningProof<G>where\n G: AffineCurve,\n CamlG: Into<G>,\n CamlF: Into<G::ScalarField>,"],["impl<G, CamlG> From<PolyComm<G>> for CamlPolyComm<CamlG>where\n G: AffineCurve,\n CamlG: From<G>,"],["impl<G, CamlG> From<CamlPolyComm<CamlG>> for PolyComm<G>where\n G: AffineCurve + From<CamlG>,"]] diff --git a/rustdoc/implementors/core/fmt/trait.Debug.js b/rustdoc/implementors/core/fmt/trait.Debug.js index 371161cf4a..2c9c26b0a5 100644 --- a/rustdoc/implementors/core/fmt/trait.Debug.js +++ b/rustdoc/implementors/core/fmt/trait.Debug.js @@ -1,7 +1,7 @@ (function() {var implementors = { "export_test_vectors":[["impl Debug for TestVectors"],["impl Debug for ParamType"],["impl Debug for TestVector"],["impl Debug for Mode"]], "folding":[["impl<C> Debug for FoldingCompatibleExprInner<C>where\n C: FoldingConfig,"],["impl<G: Debug + CommitmentCurve, W: Debug + Witness<G>> Debug for RelaxedWitness<G, W>where\n G::ScalarField: Debug,"],["impl Debug for Degree"],["impl<C> Debug for FoldingExp<C>where\n C: FoldingConfig,"],["impl<G: Debug + CommitmentCurve, W: Debug + Witness<G>> Debug for ExtendedWitness<G, W>where\n G::ScalarField: Debug,"],["impl Debug for Column"],["impl<F: Debug + Field> Debug for Alphas<F>"],["impl<C> Debug for Term<C>where\n C: Debug + FoldingConfig,"],["impl<C> Debug for ExtendedFoldingColumn<C>where\n C: FoldingConfig,"],["impl<G, Col, Chall, I, W, Sel, Str> Debug for StandardConfig<G, Col, Chall, I, W, Sel, Str>"],["impl<'a, F: Debug> Debug for EvalLeaf<'a, F>"],["impl<C> Debug for IntegratedFoldingExpr<C>where\n C: FoldingConfig,"],["impl<C> Debug for FoldingCompatibleExpr<C>where\n C: FoldingConfig,"],["impl Debug for Sign"],["impl<C> Debug for ExpExtension<C>where\n C: FoldingConfig,"]], -"ivc":[["impl<const N_WIT: usize, G: Debug + KimchiCurve> Debug for ProofCommitments<N_WIT, G>"],["impl<const N_COL: usize, const N_FSEL: usize, F: Debug + Field, Evals: Debug> Debug for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Debug + KimchiCurve, OpeningProof: Debug + OpenProof<G>> Debug for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where\n G::ScalarField: Debug,"],["impl Debug for PlonkishChallengeIter"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> Debug for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<Ff: Debug> Debug for IVCLookupTable<Ff>"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Debug> Debug for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>"],["impl<G: Debug + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Debug for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: Debug,"],["impl Debug for IVCColumn"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Debug for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Debug for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl Debug for PlonkishChallenge"],["impl Debug for ProverError"]], +"ivc":[["impl<const N_WIT: usize, G: Debug + KimchiCurve> Debug for ProofCommitments<N_WIT, G>"],["impl<const N_COL: usize, const N_FSEL: usize, F: Debug + Field, Evals: Debug> Debug for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Debug + KimchiCurve, OpeningProof: Debug + OpenProof<G>> Debug for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where\n G::ScalarField: Debug,"],["impl Debug for PlonkishChallengeIter"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> Debug for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<Ff: Debug> Debug for IVCLookupTable<Ff>"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Debug> Debug for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>"],["impl<G: Debug + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Debug for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where\n G::ScalarField: Debug,"],["impl Debug for IVCColumn"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Debug for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> Debug for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl Debug for PlonkishChallenge"],["impl Debug for ProverError"]], "kimchi":[["impl<Var: Debug> Debug for EcAddCompleteInput<Var>"],["impl Debug for CurrOrNext"],["impl<F: Debug, Column: Debug> Debug for PolishToken<F, Column>"],["impl Debug for RuntimeTableSpec"],["impl<G: Debug + AffineCurve> Debug for LookupCommitments<G>"],["impl<A: Debug> Debug for EndoscaleScalarRound<A>"],["impl Debug for SetupError"],["impl<F: Debug + FftField> Debug for DomainConstantEvaluations<F>"],["impl<G: Debug + AffineCurve> Debug for ProverCommitments<G>"],["impl<Field> Debug for SnarkyConstraintSystem<Field>where\n Field: PrimeField + Debug,"],["impl Debug for FeatureFlag"],["impl<F: Debug> Debug for RuntimeTable<F>"],["impl<F: Debug + PrimeField> Debug for CircuitGate<F>"],["impl Debug for DomainCreationError"],["impl<F: Debug> Debug for LookupConfiguration<F>"],["impl Debug for RowOffset"],["impl<C: Debug, Column: Debug> Debug for ExprInner<C, Column>"],["impl Debug for LookupPatternIter"],["impl<F: Debug + FftField> Debug for EvaluationDomains<F>"],["impl<F: Debug> Debug for Witness<F>"],["impl<F: Debug + PrimeField> Debug for Boolean<F>"],["impl<G: Debug + KimchiCurve, OpeningProof: Debug + OpenProof<G>> Debug for VerifierIndex<G, OpeningProof>where\n G::ScalarField: Debug,\n OpeningProof::SRS: Debug,"],["impl<Var: Debug, Field: Debug> Debug for BasicInput<Var, Field>"],["impl Debug for ProverError"],["impl Debug for CamlTraces"],["impl<E: Debug, Column: Debug> Debug for Linearization<E, Column>"],["impl Debug for GateLookupTable"],["impl Debug for GateLookupTables"],["impl<G: Debug> Debug for TestSRS<G>"],["impl<T: Debug> Debug for DisjointSet<T>"],["impl<F: Debug + PrimeField> Debug for ConstraintSystem<F>"],["impl Debug for LookupInfo"],["impl Debug for FeatureFlags"],["impl<Evals: Debug> Debug for PointEvaluations<Evals>"],["impl<F> Debug for RunState<F>where\n F: PrimeField + Debug,"],["impl<Var: Debug, Field: Debug> Debug for KimchiConstraint<Var, Field>"],["impl Debug for LookupError"],["impl<F: Debug + FftField> Debug for LookupConstraintSystem<F>"],["impl Debug for RotMode"],["impl Debug for RealSnarkyError"],["impl<F: Debug + Field> Debug for Constants<F>"],["impl Debug for SnarkyCompilationError"],["impl<F: Debug + PrimeField> Debug for Constraint<F>"],["impl<G: Debug + AffineCurve, OpeningProof: Debug> Debug for ProverProof<G, OpeningProof>where\n G::ScalarField: Debug,"],["impl Debug for Wire"],["impl Debug for GateType"],["impl Debug for VerifyError"],["impl<Var: Debug> Debug for EcEndoscaleInput<Var>"],["impl<Var: Debug> Debug for PoseidonInput<Var>"],["impl<G> Debug for RecursionChallenge<G>where\n G: AffineCurve + Debug,\n G::ScalarField: Debug,"],["impl Debug for GateError"],["impl Debug for ChallengeTerm"],["impl Debug for VerifierIndexError"],["impl<F: Debug> Debug for ForeignElement<F>"],["impl<Column: Debug> Debug for ExprError<Column>"],["impl<I, T> Debug for MustConsumeIterator<I, T>where\n I: Iterator<Item = T> + Debug,\n T: Display + Debug,"],["impl<SingleLookup: Debug, LookupTableID: Debug> Debug for JointLookup<SingleLookup, LookupTableID>"],["impl Debug for Traces"],["impl<A: Debug> Debug for EndoscaleRound<A>"],["impl<F: Debug> Debug for FullChallenge<F>"],["impl<G: Debug + KimchiCurve, OpeningProof: Debug + OpenProof<G>> Debug for ProverIndex<G, OpeningProof>where\n G::ScalarField: Debug,\n OpeningProof::SRS: Debug,\n G::BaseField: Debug,"],["impl<F: Debug + PrimeField> Debug for ColumnEvaluations<F>"],["impl Debug for ArgumentType"],["impl<T: Debug> Debug for Operations<T>"],["impl<T: Debug> Debug for LookupSelectors<T>"],["impl Debug for LookupPatterns"],["impl Debug for CacheId"],["impl<F: Debug> Debug for Alphas<F>"],["impl<F: Debug> Debug for RuntimeTableCfg<F>"],["impl Debug for LookupFeatures"],["impl<Evals: Debug> Debug for ProofEvaluations<Evals>"],["impl<F: Debug> Debug for ConstantTerm<F>"],["impl Debug for FFOps"],["impl<A: Debug> Debug for ScaleRound<A>"],["impl Debug for Domain"],["impl Debug for LookupTableID"],["impl<F: Debug + Field> Debug for RandomOracles<F>"],["impl<F: Debug + PrimeField> Debug for EvaluatedColumnCoefficients<F>"],["impl Debug for SnarkyError"],["impl Debug for LocalPosition"],["impl Debug for CircuitGateError"],["impl<F: Debug> Debug for LookupTable<F>"],["impl<G: Debug + CommitmentCurve> Debug for LookupVerifierIndex<G>"],["impl<F: Debug> Debug for ConstantExprInner<F>"],["impl<F> Debug for FieldVar<F>where\n F: PrimeField + Debug,"],["impl<Column: Debug> Debug for Variable<Column>"],["impl Debug for Column"],["impl Debug for SnarkyRuntimeError"],["impl<Var: Debug> Debug for BasicSnarkyConstraint<Var>"],["impl Debug for LookupPattern"]], "kimchi_msm":[["impl Debug for FECColumnOutput"],["impl Debug for Column"],["impl<F: Debug, ID: Debug + LookupTableID> Debug for LookupTable<F, ID>"],["impl Debug for LookupTableIDs"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Debug, ID: Debug + LookupTableID> Debug for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F, ID>"],["impl<Ff> Debug for LookupTableIter<Ff>"],["impl Debug for FFAColumn"],["impl Debug for TestColumn"],["impl<T: Debug> Debug for IdMPrism<T>"],["impl Debug for FECColumn"],["impl<const N_WIT: usize, F: Debug + PrimeField, ID: Debug + LookupTableID> Debug for ProofInputs<N_WIT, F, ID>"],["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Debug + KimchiCurve, OpeningProof: Debug + OpenProof<G>, ID: Debug + LookupTableID> Debug for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof, ID>where\n G::ScalarField: Debug,"],["impl Debug for LookupTable"],["impl<Ff> Debug for LookupTableIter<Ff>"],["impl<Pair: Debug + PairingEngine> Debug for TestPairingSRS<Pair>where\n Pair::G1Affine: Debug,\n Pair::G2Affine: Debug,"],["impl<Ff: Debug> Debug for LookupTable<Ff>"],["impl<F: Debug, ID: Debug + LookupTableID> Debug for Logup<F, ID>"],["impl<Ff: Debug> Debug for LookupTable<Ff>"],["impl Debug for ProverError"],["impl Debug for DummyLookupTable"],["impl Debug for LookupTable"],["impl<const N_WIT: usize, T: Debug> Debug for Witness<N_WIT, T>"],["impl<const N_WIT: usize, G: Debug + KimchiCurve, ID: Debug + LookupTableID> Debug for ProofCommitments<N_WIT, G, ID>"],["impl Debug for FECColumnInter"],["impl Debug for FECColumnInput"],["impl Debug for LookupTableIter"],["impl<F: Debug, ID: Debug + LookupTableID> Debug for LogupWitness<F, ID>"],["impl Debug for LookupTableIter"],["impl<T: Debug, ID: Debug> Debug for LookupProof<T, ID>"],["impl Debug for SerializationColumn"]], "kimchi_visu":[["impl<F> Debug for Witness<F>where\n F: Field + Debug,"]], diff --git a/rustdoc/implementors/core/marker/trait.StructuralEq.js b/rustdoc/implementors/core/marker/trait.StructuralEq.js index eb53811dac..6354ec269e 100644 --- a/rustdoc/implementors/core/marker/trait.StructuralEq.js +++ b/rustdoc/implementors/core/marker/trait.StructuralEq.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[["impl StructuralEq for Column"],["impl StructuralEq for Degree"],["impl StructuralEq for Sign"],["impl<G: CommitmentCurve, I: Instance<G>> StructuralEq for ExtendedInstance<G, I>"],["impl<G: CommitmentCurve, I: Instance<G>> StructuralEq for RelaxedInstance<G, I>"]], -"ivc":[["impl StructuralEq for PlonkishChallenge"],["impl StructuralEq for IVCColumn"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const N_COL: usize, const N_FSEL: usize, F: Field, Evals> StructuralEq for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> StructuralEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<Ff> StructuralEq for IVCLookupTable<Ff>"]], +"ivc":[["impl StructuralEq for PlonkishChallenge"],["impl StructuralEq for IVCColumn"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const N_COL: usize, const N_FSEL: usize, F: Field, Evals> StructuralEq for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> StructuralEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<Ff> StructuralEq for IVCLookupTable<Ff>"]], "kimchi":[["impl StructuralEq for GateLookupTables"],["impl StructuralEq for LookupPatterns"],["impl StructuralEq for LookupPattern"],["impl StructuralEq for ArgumentType"],["impl StructuralEq for RotMode"],["impl StructuralEq for GateType"],["impl StructuralEq for FeatureFlag"],["impl StructuralEq for Wire"],["impl StructuralEq for GateLookupTable"],["impl StructuralEq for FFOps"],["impl<F, Column> StructuralEq for PolishToken<F, Column>"],["impl<F> StructuralEq for ConstantTerm<F>"],["impl StructuralEq for CacheId"],["impl StructuralEq for CurrOrNext"],["impl<Column> StructuralEq for Variable<Column>"],["impl StructuralEq for RowOffset"],["impl<T> StructuralEq for Operations<T>"],["impl StructuralEq for Column"],["impl StructuralEq for ChallengeTerm"],["impl StructuralEq for CircuitGateError"],["impl StructuralEq for StoredSRSType"],["impl StructuralEq for LookupFeatures"],["impl<G> StructuralEq for TestSRS<G>"]], "kimchi_msm":[["impl StructuralEq for FECColumnInter"],["impl StructuralEq for TestColumn"],["impl StructuralEq for Column"],["impl<const N_WIT: usize, F: PrimeField, ID: LookupTableID> StructuralEq for ProofInputs<N_WIT, F, ID>"],["impl StructuralEq for FECColumnOutput"],["impl<Ff> StructuralEq for LookupTable<Ff>"],["impl StructuralEq for DummyLookupTable"],["impl<F, ID: LookupTableID> StructuralEq for LogupWitness<F, ID>"],["impl<Pair: PairingEngine> StructuralEq for TestPairingSRS<Pair>"],["impl StructuralEq for FECColumn"],["impl StructuralEq for LookupTable"],["impl StructuralEq for SerializationColumn"],["impl<Ff> StructuralEq for LookupTable<Ff>"],["impl<F, ID: LookupTableID> StructuralEq for Logup<F, ID>"],["impl<const N_WIT: usize, T> StructuralEq for Witness<N_WIT, T>"],["impl StructuralEq for FECColumnInput"],["impl StructuralEq for LookupTable"],["impl StructuralEq for FFAColumn"],["impl StructuralEq for LookupTableIDs"]], "mina_curves":[["impl StructuralEq for LegacyPallasParameters"],["impl StructuralEq for LegacyVestaParameters"],["impl StructuralEq for VestaParameters"],["impl StructuralEq for PallasParameters"]], diff --git a/rustdoc/implementors/core/marker/trait.StructuralPartialEq.js b/rustdoc/implementors/core/marker/trait.StructuralPartialEq.js index e2fb403ae1..d2be96c348 100644 --- a/rustdoc/implementors/core/marker/trait.StructuralPartialEq.js +++ b/rustdoc/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[["impl StructuralPartialEq for Degree"],["impl<G: CommitmentCurve, I: Instance<G>> StructuralPartialEq for ExtendedInstance<G, I>"],["impl StructuralPartialEq for Column"],["impl StructuralPartialEq for Sign"],["impl<G: CommitmentCurve, I: Instance<G>> StructuralPartialEq for RelaxedInstance<G, I>"]], -"ivc":[["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralPartialEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"],["impl StructuralPartialEq for IVCColumn"],["impl<Ff> StructuralPartialEq for IVCLookupTable<Ff>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> StructuralPartialEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<const N_COL: usize, const N_FSEL: usize, F: Field, Evals> StructuralPartialEq for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl StructuralPartialEq for PlonkishChallenge"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralPartialEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralPartialEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"]], +"ivc":[["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralPartialEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"],["impl StructuralPartialEq for IVCColumn"],["impl<Ff> StructuralPartialEq for IVCLookupTable<Ff>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize, const NB_PARTIAL_ROUND: usize> StructuralPartialEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND, NB_PARTIAL_ROUND>"],["impl<const N_COL: usize, const N_FSEL: usize, F: Field, Evals> StructuralPartialEq for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl StructuralPartialEq for PlonkishChallenge"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralPartialEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"],["impl<const STATE_SIZE: usize, const NB_FULL_ROUND: usize> StructuralPartialEq for PoseidonColumn<STATE_SIZE, NB_FULL_ROUND>"]], "kimchi":[["impl<F> StructuralPartialEq for ConstantExprInner<F>"],["impl StructuralPartialEq for Domain"],["impl StructuralPartialEq for CurrOrNext"],["impl StructuralPartialEq for FFOps"],["impl StructuralPartialEq for GateType"],["impl<C, Column> StructuralPartialEq for ExprInner<C, Column>"],["impl StructuralPartialEq for LookupPatterns"],["impl StructuralPartialEq for GateLookupTables"],["impl<F> StructuralPartialEq for ConstantTerm<F>"],["impl StructuralPartialEq for StoredSRSType"],["impl StructuralPartialEq for ArgumentType"],["impl StructuralPartialEq for GateLookupTable"],["impl StructuralPartialEq for LookupPattern"],["impl<T> StructuralPartialEq for Operations<T>"],["impl StructuralPartialEq for ChallengeTerm"],["impl StructuralPartialEq for CircuitGateError"],["impl<Column> StructuralPartialEq for Variable<Column>"],["impl StructuralPartialEq for RotMode"],["impl StructuralPartialEq for CacheId"],["impl StructuralPartialEq for LookupFeatures"],["impl StructuralPartialEq for FeatureFlag"],["impl StructuralPartialEq for Column"],["impl<F, Column> StructuralPartialEq for PolishToken<F, Column>"],["impl<G> StructuralPartialEq for TestSRS<G>"],["impl StructuralPartialEq for Wire"],["impl StructuralPartialEq for RowOffset"]], "kimchi_msm":[["impl StructuralPartialEq for LookupTable"],["impl<Pair: PairingEngine> StructuralPartialEq for TestPairingSRS<Pair>"],["impl<const N_WIT: usize, T> StructuralPartialEq for Witness<N_WIT, T>"],["impl StructuralPartialEq for FECColumnInter"],["impl StructuralPartialEq for FECColumn"],["impl StructuralPartialEq for SerializationColumn"],["impl StructuralPartialEq for DummyLookupTable"],["impl StructuralPartialEq for LookupTableIDs"],["impl<Ff> StructuralPartialEq for LookupTable<Ff>"],["impl StructuralPartialEq for FECColumnOutput"],["impl StructuralPartialEq for LookupTable"],["impl StructuralPartialEq for FFAColumn"],["impl<const N_WIT: usize, F: PrimeField, ID: LookupTableID> StructuralPartialEq for ProofInputs<N_WIT, F, ID>"],["impl<F, ID: LookupTableID> StructuralPartialEq for LogupWitness<F, ID>"],["impl StructuralPartialEq for Column"],["impl<Ff> StructuralPartialEq for LookupTable<Ff>"],["impl StructuralPartialEq for FECColumnInput"],["impl StructuralPartialEq for TestColumn"],["impl<F, ID: LookupTableID> StructuralPartialEq for Logup<F, ID>"]], "mina_curves":[["impl StructuralPartialEq for VestaParameters"],["impl StructuralPartialEq for LegacyVestaParameters"],["impl StructuralPartialEq for LegacyPallasParameters"],["impl StructuralPartialEq for PallasParameters"]], diff --git a/rustdoc/implementors/core/ops/index/trait.Index.js b/rustdoc/implementors/core/ops/index/trait.Index.js index 17ee2d5d86..126bc38cd4 100644 --- a/rustdoc/implementors/core/ops/index/trait.Index.js +++ b/rustdoc/implementors/core/ops/index/trait.Index.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[["impl<G: KimchiCurve, Col> Index<Col> for EmptyStructure<G>"]], -"ivc":[["impl<const N_COL: usize, const N_FSEL: usize, F: FftField, Evals: CombinableEvals<F>> Index<Column> for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const N_COL: usize, const N_FSEL: usize, F: FftField> Index<()> for PlonkishWitness<N_COL, N_FSEL, F>"],["impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> Index<PlonkishChallenge> for PlonkishInstance<G, N_COL, 3, N_ALPHAS>"],["impl<G: KimchiCurve> Index<Column> for GenericVecStructure<G>"]], +"ivc":[["impl<const N_COL: usize, const N_FSEL: usize, F: FftField, Evals: CombinableEvals<F>> Index<Column> for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<const N_COL: usize, const N_FSEL: usize, F: FftField> Index<()> for PlonkishWitness<N_COL, N_FSEL, F>"],["impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> Index<PlonkishChallenge> for PlonkishInstance<G, N_COL, 3, N_ALPHAS>"],["impl<G: KimchiCurve> Index<Column> for GenericVecStructure<G>"]], "kimchi":[["impl<T> Index<LookupPattern> for LookupSelectors<T>"],["impl Index<LookupPattern> for LookupPatterns"],["impl<T> Index<(CurrOrNext, usize)> for ArgumentWitness<T>"],["impl<'a, T> Index<&'a str> for Variables<'a, T>"],["impl Index<GateLookupTable> for GateLookupTables"]], "kimchi_msm":[["impl<const N_WIT: usize, T> Index<usize> for Witness<N_WIT, T>"]], "mvpoly":[["impl<F: PrimeField, const N: usize, const D: usize> Index<usize> for Dense<F, N, D>"]], diff --git a/rustdoc/implementors/folding/instance_witness/trait.Foldable.js b/rustdoc/implementors/folding/instance_witness/trait.Foldable.js index 5e898594f4..86d9f0d6c0 100644 --- a/rustdoc/implementors/folding/instance_witness/trait.Foldable.js +++ b/rustdoc/implementors/folding/instance_witness/trait.Foldable.js @@ -1,6 +1,6 @@ (function() {var implementors = { "folding":[], -"ivc":[["impl<const N_COL: usize, const N_FSEL: usize, F: Field, Evals: CombinableEvals<F>> Foldable<F> for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Foldable<<G as AffineCurve>::ScalarField> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"]], +"ivc":[["impl<const N_COL: usize, const N_FSEL: usize, F: Field, Evals: CombinableEvals<F>> Foldable<F> for PlonkishWitnessGeneric<N_COL, N_FSEL, F, Evals>"],["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Foldable<<G as AffineCurve>::ScalarField> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"]], "kimchi_msm":[["impl<const N: usize, F: FftField> Foldable<F> for Witness<N, Evaluations<F, Radix2EvaluationDomain<F>>>"]], "o1vm":[["impl<const N: usize, F: FftField> Foldable<F> for FoldingWitness<N, F>"],["impl<const N: usize, G: CommitmentCurve> Foldable<<G as AffineCurve>::ScalarField> for FoldingInstance<N, G>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/folding/instance_witness/trait.Instance.js b/rustdoc/implementors/folding/instance_witness/trait.Instance.js index b5345758c4..430fc60925 100644 --- a/rustdoc/implementors/folding/instance_witness/trait.Instance.js +++ b/rustdoc/implementors/folding/instance_witness/trait.Instance.js @@ -1,5 +1,5 @@ (function() {var implementors = { "folding":[], -"ivc":[["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Instance<G> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"]], +"ivc":[["impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Instance<G> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>"]], "o1vm":[["impl<const N: usize, G: CommitmentCurve> Instance<G> for FoldingInstance<N, G>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/implementors/kimchi/circuits/expr/trait.ColumnEvaluations.js b/rustdoc/implementors/kimchi/circuits/expr/trait.ColumnEvaluations.js index 57f9431322..04304cfbdd 100644 --- a/rustdoc/implementors/kimchi/circuits/expr/trait.ColumnEvaluations.js +++ b/rustdoc/implementors/kimchi/circuits/expr/trait.ColumnEvaluations.js @@ -1,5 +1,5 @@ (function() {var implementors = { -"ivc":[["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> ColumnEvaluations<F> for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>"]], +"ivc":[["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> ColumnEvaluations<F> for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>"]], "kimchi":[], "kimchi_msm":[["impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone, ID: LookupTableID> ColumnEvaluations<F> for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F, ID>"]] };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/rustdoc/index.html b/rustdoc/index.html index 270215765f..4a586a4814 100644 --- a/rustdoc/index.html +++ b/rustdoc/index.html @@ -1 +1 @@ -Index of crates

List of all crates

\ No newline at end of file +Index of crates

List of all crates

\ No newline at end of file diff --git a/rustdoc/ivc/expr_eval/struct.GenericEvalEnv.html b/rustdoc/ivc/expr_eval/struct.GenericEvalEnv.html index 05848bcdb4..660d868b9e 100644 --- a/rustdoc/ivc/expr_eval/struct.GenericEvalEnv.html +++ b/rustdoc/ivc/expr_eval/struct.GenericEvalEnv.html @@ -1,4 +1,4 @@ -GenericEvalEnv in ivc::expr_eval - Rust
pub struct GenericEvalEnv<Curve: KimchiCurve, const N_COL: usize, const N_FSEL: usize, Eval: CombinableEvals<Curve::ScalarField>> {
+GenericEvalEnv in ivc::expr_eval - Rust
pub struct GenericEvalEnv<Curve: KimchiCurve, const N_COL: usize, const N_FSEL: usize, Eval: CombinableEvals<Curve::ScalarField>> {
     pub ext_witness: ExtendedWitness<Curve, PlonkishWitnessGeneric<N_COL, N_FSEL, Curve::ScalarField, Eval>>,
     pub alphas: Alphas<Curve::ScalarField>,
     pub challenges: [Curve::ScalarField; 3],
@@ -6,7 +6,7 @@
     pub u: Curve::ScalarField,
 }
Expand description

Minimal environment needed for evaluating constraints.

Fields§

§ext_witness: ExtendedWitness<Curve, PlonkishWitnessGeneric<N_COL, N_FSEL, Curve::ScalarField, Eval>>§alphas: Alphas<Curve::ScalarField>§challenges: [Curve::ScalarField; 3]§error_vec: Eval§u: Curve::ScalarField

The scalar u that is used to homogenize the polynomials

-

Implementations§

source§

impl<Curve: KimchiCurve, const N_COL: usize, const N_FSEL: usize, Evals: CombinableEvals<Curve::ScalarField>> GenericEvalEnv<Curve, N_COL, N_FSEL, Evals>

source

pub fn process_extended_folding_column<FC: FoldingConfig<Column = GenericColumn, Curve = Curve, Challenge = PlonkishChallenge>>( +

Implementations§

source§

impl<Curve: KimchiCurve, const N_COL: usize, const N_FSEL: usize, Evals: CombinableEvals<Curve::ScalarField>> GenericEvalEnv<Curve, N_COL, N_FSEL, Evals>

source

pub fn process_extended_folding_column<FC: FoldingConfig<Column = GenericColumn, Curve = Curve, Challenge = PlonkishChallenge>>( &self, col: &ExtendedFoldingColumn<FC> ) -> EvalLeaf<'_, Curve::ScalarField>

source

pub fn eval_naive_fexpr<'a, FC: FoldingConfig<Column = GenericColumn, Curve = Curve, Challenge = PlonkishChallenge>>( diff --git a/rustdoc/ivc/expr_eval/struct.GenericVecStructure.html b/rustdoc/ivc/expr_eval/struct.GenericVecStructure.html index 37e8a9915a..b8272ab74c 100644 --- a/rustdoc/ivc/expr_eval/struct.GenericVecStructure.html +++ b/rustdoc/ivc/expr_eval/struct.GenericVecStructure.html @@ -1,6 +1,6 @@ -GenericVecStructure in ivc::expr_eval - Rust
pub struct GenericVecStructure<G: KimchiCurve>(pub Vec<Vec<G::ScalarField>>);
Expand description

Generic structure containing column vectors.

-

Tuple Fields§

§0: Vec<Vec<G::ScalarField>>

Trait Implementations§

source§

impl<G: Clone + KimchiCurve> Clone for GenericVecStructure<G>where - G::ScalarField: Clone,

source§

fn clone(&self) -> GenericVecStructure<G>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<G: KimchiCurve> Index<Column> for GenericVecStructure<G>

§

type Output = [<G as AffineCurve>::ScalarField]

The returned type after indexing.
source§

fn index(&self, index: GenericColumn) -> &Self::Output

Performs the indexing (container[index]) operation. Read more

Auto Trait Implementations§

§

impl<G> RefUnwindSafe for GenericVecStructure<G>where +GenericVecStructure in ivc::expr_eval - Rust
pub struct GenericVecStructure<G: KimchiCurve>(pub Vec<Vec<G::ScalarField>>);
Expand description

Generic structure containing column vectors.

+

Tuple Fields§

§0: Vec<Vec<G::ScalarField>>

Trait Implementations§

source§

impl<G: Clone + KimchiCurve> Clone for GenericVecStructure<G>where + G::ScalarField: Clone,

source§

fn clone(&self) -> GenericVecStructure<G>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<G: KimchiCurve> Index<Column> for GenericVecStructure<G>

§

type Output = [<G as AffineCurve>::ScalarField]

The returned type after indexing.
source§

fn index(&self, index: GenericColumn) -> &Self::Output

Performs the indexing (container[index]) operation. Read more

Auto Trait Implementations§

§

impl<G> RefUnwindSafe for GenericVecStructure<G>where <G as AffineCurve>::ScalarField: RefUnwindSafe,

§

impl<G> Send for GenericVecStructure<G>

§

impl<G> Sync for GenericVecStructure<G>

§

impl<G> Unpin for GenericVecStructure<G>where <G as AffineCurve>::ScalarField: Unpin,

§

impl<G> UnwindSafe for GenericVecStructure<G>where <G as AffineCurve>::ScalarField: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/rustdoc/ivc/ivc/lookups/enum.IVCLookupTable.html b/rustdoc/ivc/ivc/lookups/enum.IVCLookupTable.html index d543c88728..1a1d6f94bc 100644 --- a/rustdoc/ivc/ivc/lookups/enum.IVCLookupTable.html +++ b/rustdoc/ivc/ivc/lookups/enum.IVCLookupTable.html @@ -12,7 +12,7 @@ relation) columns, and no extra columns should be added. Read more

source§

fn length(&self) -> usize

Returns the length of each table.
source§

fn all_variants() -> Vec<Self>

§

fn to_field<F>(&self) -> Fwhere F: Field,

Assign a unique ID to the lookup tables.
§

fn to_constraint<F>( &self -) -> Operations<ExprInner<Operations<ConstantExprInner<F>>, Column>>where +) -> Operations<ExprInner<Operations<ConstantExprInner<F>>, Column>>where F: Field,

Assign a unique ID to the lookup tables, as an expression.
source§

impl<Ff: Ord> Ord for IVCLookupTable<Ff>

source§

fn cmp(&self, other: &IVCLookupTable<Ff>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere diff --git a/rustdoc/ivc/plonkish_lang/enum.PlonkishChallenge.html b/rustdoc/ivc/plonkish_lang/enum.PlonkishChallenge.html index 3ae361a661..5344b7e719 100644 --- a/rustdoc/ivc/plonkish_lang/enum.PlonkishChallenge.html +++ b/rustdoc/ivc/plonkish_lang/enum.PlonkishChallenge.html @@ -2,9 +2,9 @@ Beta, Gamma, JointCombiner, -}

Variants§

§

Beta

§

Gamma

§

JointCombiner

Trait Implementations§

source§

impl Clone for PlonkishChallenge

source§

fn clone(&self) -> PlonkishChallenge

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PlonkishChallenge

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl EnumCount for PlonkishChallenge

source§

const COUNT: usize = 3usize

source§

impl From<ChallengeTerm> for PlonkishChallenge

source§

fn from(chal: ChallengeTerm) -> Self

Converts to this type from the input type.
source§

impl Hash for PlonkishChallenge

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where +}

Variants§

§

Beta

§

Gamma

§

JointCombiner

Trait Implementations§

source§

impl Clone for PlonkishChallenge

source§

fn clone(&self) -> PlonkishChallenge

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for PlonkishChallenge

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl EnumCount for PlonkishChallenge

source§

const COUNT: usize = 3usize

source§

impl From<ChallengeTerm> for PlonkishChallenge

source§

fn from(chal: ChallengeTerm) -> Self

Converts to this type from the input type.
source§

impl Hash for PlonkishChallenge

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, - Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> Index<PlonkishChallenge> for PlonkishInstance<G, N_COL, 3, N_ALPHAS>

§

type Output = <G as AffineCurve>::ScalarField

The returned type after indexing.
source§

fn index(&self, index: PlonkishChallenge) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IntoEnumIterator for PlonkishChallenge

source§

impl PartialEq<PlonkishChallenge> for PlonkishChallenge

source§

fn eq(&self, other: &PlonkishChallenge) -> bool

This method tests for self and other values to be equal, and is used + Self: Sized,
Feeds a slice of this type into the given Hasher. Read more
source§

impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> Index<PlonkishChallenge> for PlonkishInstance<G, N_COL, 3, N_ALPHAS>

§

type Output = <G as AffineCurve>::ScalarField

The returned type after indexing.
source§

fn index(&self, index: PlonkishChallenge) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IntoEnumIterator for PlonkishChallenge

source§

impl PartialEq<PlonkishChallenge> for PlonkishChallenge

source§

fn eq(&self, other: &PlonkishChallenge) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for PlonkishChallenge

source§

impl Eq for PlonkishChallenge

source§

impl StructuralEq for PlonkishChallenge

source§

impl StructuralPartialEq for PlonkishChallenge

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere diff --git a/rustdoc/ivc/plonkish_lang/struct.PlonkishInstance.html b/rustdoc/ivc/plonkish_lang/struct.PlonkishInstance.html index 81f10351f4..4b104e3b85 100644 --- a/rustdoc/ivc/plonkish_lang/struct.PlonkishInstance.html +++ b/rustdoc/ivc/plonkish_lang/struct.PlonkishInstance.html @@ -1,9 +1,9 @@ -PlonkishInstance in ivc::plonkish_lang - Rust
pub struct PlonkishInstance<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> {
+PlonkishInstance in ivc::plonkish_lang - Rust
pub struct PlonkishInstance<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> {
     pub commitments: [G; N_COL],
     pub challenges: [G::ScalarField; N_CHALS],
     pub alphas: Alphas<G::ScalarField>,
     pub blinder: G::ScalarField,
-}

Fields§

§commitments: [G; N_COL]§challenges: [G::ScalarField; N_CHALS]§alphas: Alphas<G::ScalarField>§blinder: G::ScalarField

Implementations§

source§

impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> PlonkishInstance<G, N_COL, 3, N_ALPHAS>

source

pub fn from_witness<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( +}

Fields§

§commitments: [G; N_COL]§challenges: [G::ScalarField; N_CHALS]§alphas: Alphas<G::ScalarField>§blinder: G::ScalarField

Implementations§

source§

impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> PlonkishInstance<G, N_COL, 3, N_ALPHAS>

source

pub fn from_witness<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( w: &GenericWitness<N_COL, Evaluations<G::ScalarField, R2D<G::ScalarField>>>, fq_sponge: &mut EFqSponge, srs: &SRS<G>, @@ -11,18 +11,18 @@ ) -> Self

source

pub fn verify_from_witness<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( &self, fq_sponge: &mut EFqSponge -) -> Result<(), String>

Trait Implementations§

source§

impl<G: Clone + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Clone for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where - G::ScalarField: Clone,

source§

fn clone(&self) -> PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<G: Debug + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Debug for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where - G::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Foldable<<G as AffineCurve>::ScalarField> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

source§

fn combine(a: Self, b: Self, challenge: G::ScalarField) -> Self

Combine two objects ‘a’ and ‘b’ into a new object using the challenge.
source§

impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> Index<PlonkishChallenge> for PlonkishInstance<G, N_COL, 3, N_ALPHAS>

§

type Output = <G as AffineCurve>::ScalarField

The returned type after indexing.
source§

fn index(&self, index: PlonkishChallenge) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Instance<G> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

source§

fn to_absorb(&self) -> (Vec<G::ScalarField>, Vec<G>)

This method returns the scalars and commitments that must be absorbed by +) -> Result<(), String>

Trait Implementations§

source§

impl<G: Clone + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Clone for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where + G::ScalarField: Clone,

source§

fn clone(&self) -> PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<G: Debug + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Debug for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where + G::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Foldable<<G as AffineCurve>::ScalarField> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

source§

fn combine(a: Self, b: Self, challenge: G::ScalarField) -> Self

Combine two objects ‘a’ and ‘b’ into a new object using the challenge.
source§

impl<G: KimchiCurve, const N_COL: usize, const N_ALPHAS: usize> Index<PlonkishChallenge> for PlonkishInstance<G, N_COL, 3, N_ALPHAS>

§

type Output = <G as AffineCurve>::ScalarField

The returned type after indexing.
source§

fn index(&self, index: PlonkishChallenge) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Instance<G> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

source§

fn to_absorb(&self) -> (Vec<G::ScalarField>, Vec<G>)

This method returns the scalars and commitments that must be absorbed by the sponge. It is not supposed to do any absorption itself, and the user is responsible for calling the sponge absorb methods with the elements returned by this method. When called on a RelaxedInstance, elements will be returned in the -following order, for given instances L and R Read more
source§

fn get_alphas(&self) -> &Alphas<G::ScalarField>

Returns the alphas values for the instance
source§

fn get_blinder(&self) -> G::ScalarField

Return the blinder that can be used while committing to polynomials.
source§

impl<G: PartialEq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> PartialEq<PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where +following order, for given instances L and R Read more

source§

fn get_alphas(&self) -> &Alphas<G::ScalarField>

Returns the alphas values for the instance
source§

fn get_blinder(&self) -> G::ScalarField

Return the blinder that can be used while committing to polynomials.
source§

impl<G: PartialEq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> PartialEq<PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>> for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where G::ScalarField: PartialEq,

source§

fn eq(&self, other: &PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<G: Eq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Eq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where - G::ScalarField: Eq,

source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralPartialEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

Auto Trait Implementations§

§

impl<G, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> RefUnwindSafe for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where +sufficient, and should not be overridden without very good reason.

source§

impl<G: Eq + KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Eq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where + G::ScalarField: Eq,

source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

source§

impl<G: KimchiCurve, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> StructuralPartialEq for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

Auto Trait Implementations§

§

impl<G, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> RefUnwindSafe for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where G: RefUnwindSafe, <G as AffineCurve>::ScalarField: RefUnwindSafe,

§

impl<G, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> !Send for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

§

impl<G, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> !Sync for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>

§

impl<G, const N_COL: usize, const N_CHALS: usize, const N_ALPHAS: usize> Unpin for PlonkishInstance<G, N_COL, N_CHALS, N_ALPHAS>where G: Unpin, diff --git a/rustdoc/ivc/prover/fn.prove.html b/rustdoc/ivc/prover/fn.prove.html index 2b331186ea..d87c7f5089 100644 --- a/rustdoc/ivc/prover/fn.prove.html +++ b/rustdoc/ivc/prover/fn.prove.html @@ -1,5 +1,5 @@ -prove in ivc::prover - Rust

Function ivc::prover::prove

source ·
pub fn prove<EFqSponge: Clone + FqSponge<Fq, G, Fp>, EFrSponge: FrSponge<Fp>, FC: FoldingConfig<Column = GenericColumn, Curve = G, Challenge = PlonkishChallenge>, RNG, const N_WIT: usize, const N_WIT_QUAD: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, const N_ALPHAS: usize>(
-    domain: EvaluationDomains<Fp>,
+prove in ivc::prover - Rust

Function ivc::prover::prove

source ·
pub fn prove<EFqSponge: Clone + FqSponge<Fq, G, Fp>, EFrSponge: FrSponge<Fp>, FC: FoldingConfig<Column = GenericColumn, Curve = G, Challenge = PlonkishChallenge>, RNG, const N_WIT: usize, const N_WIT_QUAD: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, const N_ALPHAS: usize>(
+    domain: EvaluationDomains<Fp>,
     srs: &PairingSRS<Pairing>,
     combined_expr: &FoldingCompatibleExpr<FC>,
     folded_instance: RelaxedInstance<G, PlonkishInstance<G, N_WIT, 3, N_ALPHAS>>,
diff --git a/rustdoc/ivc/prover/struct.Proof.html b/rustdoc/ivc/prover/struct.Proof.html
index 158df516f5..7d87326990 100644
--- a/rustdoc/ivc/prover/struct.Proof.html
+++ b/rustdoc/ivc/prover/struct.Proof.html
@@ -1,12 +1,12 @@
-Proof in ivc::prover - Rust

Struct ivc::prover::Proof

source ·
pub struct Proof<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: KimchiCurve, OpeningProof: OpenProof<G>> {
+Proof in ivc::prover - Rust

Struct ivc::prover::Proof

source ·
pub struct Proof<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: KimchiCurve, OpeningProof: OpenProof<G>> {
     pub proof_comms: ProofCommitments<N_WIT, G>,
     pub proof_evals: ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, G::ScalarField>,
     pub opening_proof: OpeningProof,
     pub alphas: Alphas<G::ScalarField>,
     pub challenges: [G::ScalarField; 3],
     pub u: G::ScalarField,
-}

Fields§

§proof_comms: ProofCommitments<N_WIT, G>§proof_evals: ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, G::ScalarField>§opening_proof: OpeningProof§alphas: Alphas<G::ScalarField>§challenges: [G::ScalarField; 3]§u: G::ScalarField

Trait Implementations§

source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Clone + KimchiCurve, OpeningProof: Clone + OpenProof<G>> Clone for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where - G::ScalarField: Clone,

source§

fn clone(&self) -> Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Debug + KimchiCurve, OpeningProof: Debug + OpenProof<G>> Debug for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where +}

Fields§

§proof_comms: ProofCommitments<N_WIT, G>§proof_evals: ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, G::ScalarField>§opening_proof: OpeningProof§alphas: Alphas<G::ScalarField>§challenges: [G::ScalarField; 3]§u: G::ScalarField

Trait Implementations§

source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Clone + KimchiCurve, OpeningProof: Clone + OpenProof<G>> Clone for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where + G::ScalarField: Clone,

source§

fn clone(&self) -> Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G: Debug + KimchiCurve, OpeningProof: Debug + OpenProof<G>> Debug for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where G::ScalarField: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, G, OpeningProof> RefUnwindSafe for Proof<N_WIT, N_REL, N_DSEL, N_FSEL, G, OpeningProof>where G: RefUnwindSafe, OpeningProof: RefUnwindSafe, diff --git a/rustdoc/ivc/prover/struct.ProofCommitments.html b/rustdoc/ivc/prover/struct.ProofCommitments.html index c23bf8f922..f37e6859d4 100644 --- a/rustdoc/ivc/prover/struct.ProofCommitments.html +++ b/rustdoc/ivc/prover/struct.ProofCommitments.html @@ -1,11 +1,11 @@ -ProofCommitments in ivc::prover - Rust
pub struct ProofCommitments<const N_WIT: usize, G: KimchiCurve> {
+ProofCommitments in ivc::prover - Rust
pub struct ProofCommitments<const N_WIT: usize, G: KimchiCurve> {
     pub witness_comms: Witness<N_WIT, PolyComm<G>>,
     pub t_comm: PolyComm<G>,
 }

Fields§

§witness_comms: Witness<N_WIT, PolyComm<G>>

Commitments to the N columns of the circuits, also called the ‘witnesses’. If some columns are considered as public inputs, it is counted in the witness.

§t_comm: PolyComm<G>

Commitments to the quotient polynomial. The value contains the chunked polynomials.

-

Trait Implementations§

source§

impl<const N_WIT: usize, G: Clone + KimchiCurve> Clone for ProofCommitments<N_WIT, G>

source§

fn clone(&self) -> ProofCommitments<N_WIT, G>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, G: Debug + KimchiCurve> Debug for ProofCommitments<N_WIT, G>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<const N_WIT: usize, G> RefUnwindSafe for ProofCommitments<N_WIT, G>where +

Trait Implementations§

source§

impl<const N_WIT: usize, G: Clone + KimchiCurve> Clone for ProofCommitments<N_WIT, G>

source§

fn clone(&self) -> ProofCommitments<N_WIT, G>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, G: Debug + KimchiCurve> Debug for ProofCommitments<N_WIT, G>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<const N_WIT: usize, G> RefUnwindSafe for ProofCommitments<N_WIT, G>where G: RefUnwindSafe,

§

impl<const N_WIT: usize, G> Send for ProofCommitments<N_WIT, G>

§

impl<const N_WIT: usize, G> Sync for ProofCommitments<N_WIT, G>

§

impl<const N_WIT: usize, G> Unpin for ProofCommitments<N_WIT, G>where G: Unpin,

§

impl<const N_WIT: usize, G> UnwindSafe for ProofCommitments<N_WIT, G>where G: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/rustdoc/ivc/prover/struct.ProofEvaluations.html b/rustdoc/ivc/prover/struct.ProofEvaluations.html index 941f45f0ae..b3bf2c3b44 100644 --- a/rustdoc/ivc/prover/struct.ProofEvaluations.html +++ b/rustdoc/ivc/prover/struct.ProofEvaluations.html @@ -1,18 +1,18 @@ ProofEvaluations in ivc::prover - Rust
pub struct ProofEvaluations<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F> {
-    pub witness_evals: Witness<N_WIT, PointEvaluations<F>>,
-    pub fixed_selectors_evals: Box<[PointEvaluations<F>; N_FSEL]>,
-    pub error_vec: PointEvaluations<F>,
+    pub witness_evals: Witness<N_WIT, PointEvaluations<F>>,
+    pub fixed_selectors_evals: Box<[PointEvaluations<F>; N_FSEL]>,
+    pub error_vec: PointEvaluations<F>,
     pub ft_eval1: F,
-}

Fields§

§witness_evals: Witness<N_WIT, PointEvaluations<F>>

Witness evaluations, including public inputs

-
§fixed_selectors_evals: Box<[PointEvaluations<F>; N_FSEL]>

Evaluations of fixed selectors.

-
§error_vec: PointEvaluations<F>§ft_eval1: F

Evaluation of Z_H(ζ) (t_0(X) + ζ^n t_1(X) + …) at ζω.

-

Trait Implementations§

source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> Clone for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

source§

fn clone(&self) -> ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> ColumnEvaluations<F> for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

The trait ColumnEvaluations is used by the verifier. +}

Fields§

§witness_evals: Witness<N_WIT, PointEvaluations<F>>

Witness evaluations, including public inputs

+
§fixed_selectors_evals: Box<[PointEvaluations<F>; N_FSEL]>

Evaluations of fixed selectors.

+
§error_vec: PointEvaluations<F>§ft_eval1: F

Evaluation of Z_H(ζ) (t_0(X) + ζ^n t_1(X) + …) at ζω.

+

Trait Implementations§

source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> Clone for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

source§

fn clone(&self) -> ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Clone> ColumnEvaluations<F> for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

The trait ColumnEvaluations is used by the verifier. It will return the evaluation of the corresponding column at the evaluation points coined by the verifier during the protocol.

-
§

type Column = Column

source§

fn evaluate( +

§

type Column = Column

source§

fn evaluate( &self, - col: Self::Column -) -> Result<PointEvaluations<F>, ExprError<Self::Column>>

source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Debug> Debug for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F> RefUnwindSafe for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>where + col: Self::Column +) -> Result<PointEvaluations<F>, ExprError<Self::Column>>

source§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F: Debug> Debug for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F> RefUnwindSafe for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>where F: RefUnwindSafe,

§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F> Send for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>where F: Send,

§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F> Sync for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>where F: Sync,

§

impl<const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, F> Unpin for ProofEvaluations<N_WIT, N_REL, N_DSEL, N_FSEL, F>where diff --git a/rustdoc/ivc/verifier/fn.verify.html b/rustdoc/ivc/verifier/fn.verify.html index 55d3e45a45..d9c22ee209 100644 --- a/rustdoc/ivc/verifier/fn.verify.html +++ b/rustdoc/ivc/verifier/fn.verify.html @@ -1,5 +1,5 @@ -verify in ivc::verifier - Rust

Function ivc::verifier::verify

source ·
pub fn verify<EFqSponge: Clone + FqSponge<Fq, G, Fp>, EFrSponge: FrSponge<Fp>, FC: FoldingConfig<Column = GenericColumn, Curve = G, Challenge = PlonkishChallenge>, const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, const NPUB: usize>(
-    domain: EvaluationDomains<Fp>,
+verify in ivc::verifier - Rust

Function ivc::verifier::verify

source ·
pub fn verify<EFqSponge: Clone + FqSponge<Fq, G, Fp>, EFrSponge: FrSponge<Fp>, FC: FoldingConfig<Column = GenericColumn, Curve = G, Challenge = PlonkishChallenge>, const N_WIT: usize, const N_REL: usize, const N_DSEL: usize, const N_FSEL: usize, const NPUB: usize>(
+    domain: EvaluationDomains<Fp>,
     srs: &PairingSRS<Pairing>,
     combined_expr: &FoldingCompatibleExpr<FC>,
     fixed_selectors: Box<[Evaluations<Fp, R2D<Fp>>; N_FSEL]>,
diff --git a/rustdoc/mvpoly/index.html b/rustdoc/mvpoly/index.html
index 190d18acd0..325906914f 100644
--- a/rustdoc/mvpoly/index.html
+++ b/rustdoc/mvpoly/index.html
@@ -1,2 +1,2 @@
-mvpoly - Rust

Crate mvpoly

source ·

Modules

Trait Implementations§

source§

impl<F: PrimeField, const N: usize, const D: usize> Add<&Dense<F, N, D>> for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the + operator.
source§

fn add(self, other: &Dense<F, N, D>) -> Dense<F, N, D>

Performs the + operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Add<&Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the + operator.
source§

fn add(self, other: &Dense<F, N, D>) -> Dense<F, N, D>

Performs the + operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Add<Dense<F, N, D>> for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the + operator.
source§

fn add(self, other: Dense<F, N, D>) -> Dense<F, N, D>

Performs the + operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Add<Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the + operator.
source§

fn add(self, other: Self) -> Self

Performs the + operation. Read more
source§

impl<F: Clone + PrimeField, const N: usize, const D: usize> Clone for Dense<F, N, D>

source§

fn clone(&self) -> Dense<F, N, D>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Debug for Dense<F, N, D>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Default for Dense<F, N, D>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> From<ConstantExprInner<F>> for Dense<F, N, D>

source§

fn from(expr: ConstantExprInner<F>) -> Self

Converts to this type from the input type.
source§

impl<const N: usize, const D: usize, F: PrimeField> From<Dense<F, N, D>> for Sparse<F, N, D>

source§

fn from(dense: Dense<F, N, D>) -> Self

Converts to this type from the input type.
source§

impl<F: PrimeField, const N: usize, const D: usize> From<F> for Dense<F, N, D>

source§

fn from(value: F) -> Self

Converts to this type from the input type.
source§

impl<F: PrimeField, const N: usize, const D: usize> From<Operations<ConstantExprInner<F>>> for Dense<F, N, D>

source§

fn from(op: Operations<ConstantExprInner<F>>) -> Self

Converts to this type from the input type.
source§

impl<F: PrimeField, const N: usize, const D: usize> Index<usize> for Dense<F, N, D>

§

type Output = F

The returned type after indexing.
source§

fn index(&self, index: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> IndexMut<usize> for Dense<F, N, D>

source§

fn index_mut(&mut self, index: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> MVPoly<F, N, D> for Dense<F, N, D>

source§

unsafe fn random<RNG: RngCore>(rng: &mut RNG, max_degree: Option<usize>) -> Self

Generate a random polynomial of maximum degree max_degree.

If None is provided as the maximum degree, the polynomial will be generated with a maximum degree of D.

Safety
@@ -30,17 +30,18 @@
Safety
source§

fn eval(&self, x: &[F; N]) -> F

Evaluate the polynomial at the vector point x.

This is a dummy implementation. A cache can be used for the monomials to speed up the computation.

-
source§

fn is_constant(&self) -> bool

source§

fn double(&self) -> Self

source§

fn mul_by_scalar(&self, c: F) -> Self

source§

fn from_expr<Column: Into<usize>>(expr: Expr<ConstantExpr<F>, Column>) -> Self

Build a value from an expression. +
source§

fn is_constant(&self) -> bool

source§

fn double(&self) -> Self

source§

fn mul_by_scalar(&self, c: F) -> Self

source§

fn from_expr<Column: Into<usize>>(expr: Expr<ConstantExpr<F>, Column>) -> Self

Build a value from an expression. This method aims to be used to be retro-compatible with what we call “the expression framework”. In the near future, the “expression framework” should be moved also into this library.
source§

fn is_homogeneous(&self) -> bool

Returns true if the polynomial is homogeneous (of degree D). As a reminder, a polynomial is homogeneous if all its monomials have the same degree.
source§

fn homogeneous_eval(&self, x: &[F; N], u: F) -> F

Evaluate the polynomial at the vector point x and the extra variable -u using its homogeneous form of degree D.
source§

impl<F: PrimeField, const N: usize, const D: usize> Mul<Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the * operator.
source§

fn mul(self, other: Self) -> Self

Performs the * operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Neg for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Neg for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> One for Dense<F, N, D>

source§

fn one() -> Self

Returns the multiplicative identity element of Self, 1. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
source§

fn is_one(&self) -> boolwhere - Self: PartialEq<Self>,

Returns true if self is equal to the multiplicative identity. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> PartialEq<Dense<F, N, D>> for Dense<F, N, D>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used +u using its homogeneous form of degree D.
source§

fn add_monomial(&mut self, exponents: [usize; N], coeff: F)

Add the monomial coeff * x_1^{e_1} * ... * x_N^{e_N} to the +polynomial, where e_i are the values given by the array exponents. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Mul<Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the * operator.
source§

fn mul(self, other: Self) -> Self

Performs the * operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Neg for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Neg for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn neg(self) -> Self::Output

Performs the unary - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> One for Dense<F, N, D>

source§

fn one() -> Self

Returns the multiplicative identity element of Self, 1. Read more
source§

fn set_one(&mut self)

Sets self to the multiplicative identity element of Self, 1.
source§

fn is_one(&self) -> boolwhere + Self: PartialEq<Self>,

Returns true if self is equal to the multiplicative identity. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> PartialEq<Dense<F, N, D>> for Dense<F, N, D>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always -sufficient, and should not be overridden without very good reason.
source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<&Dense<F, N, D>> for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: &Dense<F, N, D>) -> Dense<F, N, D>

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<&Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: &Dense<F, N, D>) -> Dense<F, N, D>

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<Dense<F, N, D>> for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: Dense<F, N, D>) -> Dense<F, N, D>

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: Self) -> Self

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Zero for Dense<F, N, D>

source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn zero() -> Self

Returns the additive identity element of Self, 0. Read more
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
source§

impl<F: PrimeField, const N: usize, const D: usize> Eq for Dense<F, N, D>

Auto Trait Implementations§

§

impl<F, const N: usize, const D: usize> RefUnwindSafe for Dense<F, N, D>where +sufficient, and should not be overridden without very good reason.

source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<&Dense<F, N, D>> for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: &Dense<F, N, D>) -> Dense<F, N, D>

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<&Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: &Dense<F, N, D>) -> Dense<F, N, D>

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<Dense<F, N, D>> for &Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: Dense<F, N, D>) -> Dense<F, N, D>

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Sub<Dense<F, N, D>> for Dense<F, N, D>

§

type Output = Dense<F, N, D>

The resulting type after applying the - operator.
source§

fn sub(self, other: Self) -> Self

Performs the - operation. Read more
source§

impl<F: PrimeField, const N: usize, const D: usize> Zero for Dense<F, N, D>

source§

fn is_zero(&self) -> bool

Returns true if self is equal to the additive identity.
source§

fn zero() -> Self

Returns the additive identity element of Self, 0. Read more
source§

fn set_zero(&mut self)

Sets self to the additive identity element of Self, 0.
source§

impl<F: PrimeField, const N: usize, const D: usize> Eq for Dense<F, N, D>

Auto Trait Implementations§

§

impl<F, const N: usize, const D: usize> RefUnwindSafe for Dense<F, N, D>where F: RefUnwindSafe,

§

impl<F, const N: usize, const D: usize> Send for Dense<F, N, D>

§

impl<F, const N: usize, const D: usize> Sync for Dense<F, N, D>

§

impl<F, const N: usize, const D: usize> Unpin for Dense<F, N, D>where F: Unpin,

§

impl<F, const N: usize, const D: usize> UnwindSafe for Dense<F, N, D>where F: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere diff --git a/rustdoc/mvpoly/trait.MVPoly.html b/rustdoc/mvpoly/trait.MVPoly.html index 1c773a5df2..7c65fc271c 100644 --- a/rustdoc/mvpoly/trait.MVPoly.html +++ b/rustdoc/mvpoly/trait.MVPoly.html @@ -1,4 +1,4 @@ -MVPoly in mvpoly - Rust

Trait mvpoly::MVPoly

source ·
pub trait MVPoly<F: PrimeField, const N: usize, const D: usize>: Add<Self, Output = Self> + Mul<Self, Output = Self> + Neg<Output = Self> + Sub<Self, Output = Self> + One + Zero + Debug + PartialEq + Eq + From<F> + Sized {
+MVPoly in mvpoly - Rust

Trait mvpoly::MVPoly

source ·
pub trait MVPoly<F: PrimeField, const N: usize, const D: usize>: Add<Self, Output = Self> + Mul<Self, Output = Self> + Neg<Output = Self> + Sub<Self, Output = Self> + One + Zero + Debug + PartialEq + Eq + From<F> + Sized {
     // Required methods
     unsafe fn random<RNG: RngCore>(
         rng: &mut RNG,
@@ -10,10 +10,11 @@
     unsafe fn degree(&self) -> usize;
     fn eval(&self, x: &[F; N]) -> F;
     fn from_expr<Column: Into<usize>>(
-        expr: Expr<ConstantExpr<F>, Column>
+        expr: Expr<ConstantExpr<F>, Column>
     ) -> Self;
     fn is_homogeneous(&self) -> bool;
     fn homogeneous_eval(&self, x: &[F; N], u: F) -> F;
+    fn add_monomial(&mut self, exponents: [usize; N], coeff: F);
 }
Expand description

Generic trait to represent a multi-variate polynomial

Required Methods§

source

unsafe fn random<RNG: RngCore>(rng: &mut RNG, max_degree: Option<usize>) -> Self

Generate a random polynomial of maximum degree max_degree.

If None is provided as the maximum degree, the polynomial will be @@ -34,7 +35,7 @@

Safety
source

fn eval(&self, x: &[F; N]) -> F

Evaluate the polynomial at the vector point x.

This is a dummy implementation. A cache can be used for the monomials to speed up the computation.

-
source

fn from_expr<Column: Into<usize>>(expr: Expr<ConstantExpr<F>, Column>) -> Self

Build a value from an expression. +

source

fn from_expr<Column: Into<usize>>(expr: Expr<ConstantExpr<F>, Column>) -> Self

Build a value from an expression. This method aims to be used to be retro-compatible with what we call “the expression framework”. In the near future, the “expression framework” should be moved also into @@ -44,4 +45,8 @@

Safety
same degree.

source

fn homogeneous_eval(&self, x: &[F; N], u: F) -> F

Evaluate the polynomial at the vector point x and the extra variable u using its homogeneous form of degree D.

-

Implementors§

source§

impl<F: PrimeField, const N: usize, const D: usize> MVPoly<F, N, D> for Dense<F, N, D>

source§

impl<const N: usize, const D: usize, F: PrimeField> MVPoly<F, N, D> for Sparse<F, N, D>

\ No newline at end of file +

source

fn add_monomial(&mut self, exponents: [usize; N], coeff: F)

Add the monomial coeff * x_1^{e_1} * ... * x_N^{e_N} to the +polynomial, where e_i are the values given by the array exponents.

+

For instance, to add the monomial 3 * x_1^2 * x_2^3 to the polynomial, +one would call add_monomial([2, 3], 3).

+

Implementors§

source§

impl<F: PrimeField, const N: usize, const D: usize> MVPoly<F, N, D> for Dense<F, N, D>

source§

impl<const N: usize, const D: usize, F: PrimeField> MVPoly<F, N, D> for Sparse<F, N, D>

\ No newline at end of file diff --git a/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html b/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html index 5b6fe5dc3c..3479e4a5ba 100644 --- a/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html +++ b/rustdoc/poly_commitment/commitment/fn.absorb_commitment.html @@ -1,4 +1,4 @@ -absorb_commitment in poly_commitment::commitment - Rust
pub fn absorb_commitment<Fq: Field, G: Clone, Fr: PrimeField + SquareRootField, EFqSponge: FqSponge<Fq, G, Fr>>(
+absorb_commitment in poly_commitment::commitment - Rust
pub fn absorb_commitment<Fq: Field, G: Clone, Fr: PrimeField + SquareRootField, EFqSponge: FqSponge<Fq, G, Fr>>(
     sponge: &mut EFqSponge,
     commitment: &PolyComm<G>
 )
\ No newline at end of file diff --git a/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html b/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html index 26f1941dc9..d8360661a7 100644 --- a/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html +++ b/rustdoc/poly_commitment/commitment/fn.squeeze_challenge.html @@ -1,4 +1,4 @@ -squeeze_challenge in poly_commitment::commitment - Rust
pub fn squeeze_challenge<Fq: Field, G, Fr: PrimeField + SquareRootField, EFqSponge: FqSponge<Fq, G, Fr>>(
+squeeze_challenge in poly_commitment::commitment - Rust
pub fn squeeze_challenge<Fq: Field, G, Fr: PrimeField + SquareRootField, EFqSponge: FqSponge<Fq, G, Fr>>(
     endo_r: &Fr,
     sponge: &mut EFqSponge
 ) -> Fr
\ No newline at end of file diff --git a/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html b/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html index 71c6f364eb..8caa6be222 100644 --- a/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html +++ b/rustdoc/poly_commitment/commitment/fn.squeeze_prechallenge.html @@ -1,3 +1,3 @@ -squeeze_prechallenge in poly_commitment::commitment - Rust
pub fn squeeze_prechallenge<Fq: Field, G, Fr: SquareRootField, EFqSponge: FqSponge<Fq, G, Fr>>(
+squeeze_prechallenge in poly_commitment::commitment - Rust
pub fn squeeze_prechallenge<Fq: Field, G, Fr: SquareRootField, EFqSponge: FqSponge<Fq, G, Fr>>(
     sponge: &mut EFqSponge
-) -> ScalarChallenge<Fr>
\ No newline at end of file +) -> ScalarChallenge<Fr>
\ No newline at end of file diff --git a/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html b/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html index 1a1acd44a8..cd247841f4 100644 --- a/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html +++ b/rustdoc/poly_commitment/commitment/struct.BatchEvaluationProof.html @@ -1,6 +1,6 @@ BatchEvaluationProof in poly_commitment::commitment - Rust
pub struct BatchEvaluationProof<'a, G, EFqSponge, OpeningProof>where
     G: AffineCurve,
-    EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,{
+    EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>,{
     pub sponge: EFqSponge,
     pub evaluations: Vec<Evaluation<G>>,
     pub evaluation_points: Vec<G::ScalarField>,
diff --git a/rustdoc/poly_commitment/commitment/trait.EndoCurve.html b/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
index efadf04185..e95bb0a2ef 100644
--- a/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
+++ b/rustdoc/poly_commitment/commitment/trait.EndoCurve.html
@@ -6,7 +6,7 @@
         _endo_q: Self::BaseField,
         g1: &[Self],
         g2: &[Self],
-        x2: ScalarChallenge<Self::ScalarField>
+        x2: ScalarChallenge<Self::ScalarField>
     ) -> Vec<Self> { ... }
     fn combine(
         g1: &[Self],
@@ -23,7 +23,7 @@
     _endo_q: Self::BaseField,
     g1: &[Self],
     g2: &[Self],
-    x2: ScalarChallenge<Self::ScalarField>
+    x2: ScalarChallenge<Self::ScalarField>
 ) -> Vec<Self>

Combine where x1 = one

source

fn combine( g1: &[Self], @@ -36,7 +36,7 @@ endo_q: Self::BaseField, g1: &[Self], g2: &[Self], - x2: ScalarChallenge<Self::ScalarField> + x2: ScalarChallenge<Self::ScalarField> ) -> Vec<Self>

source§

fn combine( g1: &[Self], g2: &[Self], diff --git a/rustdoc/poly_commitment/evaluation_proof/struct.OpeningProof.html b/rustdoc/poly_commitment/evaluation_proof/struct.OpeningProof.html index 3101a28489..3371e5f235 100644 --- a/rustdoc/poly_commitment/evaluation_proof/struct.OpeningProof.html +++ b/rustdoc/poly_commitment/evaluation_proof/struct.OpeningProof.html @@ -6,12 +6,12 @@ pub sg: G, }

Fields§

§lr: Vec<(G, G)>

Vector of rounds of L & R commitments

§delta: G§z1: G::ScalarField§z2: G::ScalarField§sg: G

A final folded commitment base

-

Implementations§

source§

impl<G: AffineCurve> OpeningProof<G>

source

pub fn prechallenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( +

Implementations§

source§

impl<G: AffineCurve> OpeningProof<G>

source

pub fn prechallenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( &self, sponge: &mut EFqSponge -) -> Vec<ScalarChallenge<G::ScalarField>>

Computes a log-sized vector of scalar challenges for +) -> Vec<ScalarChallenge<G::ScalarField>>

Computes a log-sized vector of scalar challenges for recombining elements inside the IPA.

-
source

pub fn challenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( +

source

pub fn challenges<EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>>( &self, endo_r: &G::ScalarField, sponge: &mut EFqSponge @@ -38,14 +38,14 @@ sponge: EFqSponge, rng: &mut RNG ) -> Selfwhere - EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, <G as AffineCurve>::ScalarField>, + EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, <G as AffineCurve>::ScalarField>, RNG: RngCore + CryptoRng,

Parameters: Read more
source§

fn verify<EFqSponge, RNG>( srs: &Self::SRS, group_map: &G::Map, batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>], rng: &mut RNG ) -> boolwhere - EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, + EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng,

source§

impl<G> Serialize for OpeningProof<G>where G: CanonicalDeserialize + CanonicalSerialize + AffineCurve,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<G> RefUnwindSafe for OpeningProof<G>where diff --git a/rustdoc/poly_commitment/pairing_proof/struct.PairingProof.html b/rustdoc/poly_commitment/pairing_proof/struct.PairingProof.html index bb0a745b33..8d84ba85bc 100644 --- a/rustdoc/poly_commitment/pairing_proof/struct.PairingProof.html +++ b/rustdoc/poly_commitment/pairing_proof/struct.PairingProof.html @@ -34,7 +34,7 @@ _sponge: EFqSponge, _rng: &mut RNG ) -> Selfwhere - EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, F>, + EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, F>, RNG: RngCore + CryptoRng,

Parameters:

source§

impl<Pair: PairingEngine> Serialize for PairingProof<Pair>where Pair::G1Affine: CanonicalDeserialize + CanonicalSerialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<Pair> RefUnwindSafe for PairingProof<Pair>where diff --git a/rustdoc/poly_commitment/srs/struct.SRS.html b/rustdoc/poly_commitment/srs/struct.SRS.html index 44dec2d73b..d5b1ea7880 100644 --- a/rustdoc/poly_commitment/srs/struct.SRS.html +++ b/rustdoc/poly_commitment/srs/struct.SRS.html @@ -12,7 +12,7 @@ batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, OpeningProof<G>>], rng: &mut RNG ) -> boolwhere - EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, + EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng, G::BaseField: PrimeField,

This function verifies a batch of polynomial commitment opening proofs. Return true if the verification is successful, false otherwise.

@@ -26,7 +26,7 @@ sponge: EFqSponge, rng: &mut RNG ) -> OpeningProof<G>where - EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, + EFqSponge: Clone + FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng, G::BaseField: PrimeField, G: EndoCurve,

This function opens polynomial commitments in batch diff --git a/rustdoc/poly_commitment/trait.OpenProof.html b/rustdoc/poly_commitment/trait.OpenProof.html index e3e1a7ee4f..85c716d665 100644 --- a/rustdoc/poly_commitment/trait.OpenProof.html +++ b/rustdoc/poly_commitment/trait.OpenProof.html @@ -12,7 +12,7 @@ sponge: EFqSponge, rng: &mut RNG ) -> Self - where EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, <G as AffineCurve>::ScalarField>, + where EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, <G as AffineCurve>::ScalarField>, RNG: RngCore + CryptoRng; fn verify<EFqSponge, RNG>( srs: &Self::SRS, @@ -20,7 +20,7 @@ batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>], rng: &mut RNG ) -> bool - where EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, + where EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng; }

Required Associated Types§

source

type SRS: SRS<G>

Required Methods§

source

fn open<EFqSponge, RNG, D: EvaluationDomain<<G as AffineCurve>::ScalarField>>( srs: &Self::SRS, @@ -32,7 +32,7 @@ sponge: EFqSponge, rng: &mut RNG ) -> Selfwhere - EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, <G as AffineCurve>::ScalarField>, + EFqSponge: Clone + FqSponge<<G as AffineCurve>::BaseField, G, <G as AffineCurve>::ScalarField>, RNG: RngCore + CryptoRng,

Parameters:

  • srs: the structured reference string
  • @@ -51,5 +51,5 @@ batch: &mut [BatchEvaluationProof<'_, G, EFqSponge, Self>], rng: &mut RNG ) -> boolwhere - EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, + EFqSponge: FqSponge<G::BaseField, G, G::ScalarField>, RNG: RngCore + CryptoRng,

Implementors§

source§

impl<BaseField: PrimeField, G: AffineCurve<BaseField = BaseField> + CommitmentCurve + EndoCurve> OpenProof<G> for OpeningProof<G>

§

type SRS = SRS<G>

source§

impl<F: PrimeField, G: CommitmentCurve<ScalarField = F>, G2: CommitmentCurve<ScalarField = F>, Pair: PairingEngine<G1Affine = G, G2Affine = G2>> OpenProof<G> for PairingProof<Pair>

§

type SRS = PairingSRS<Pair>

\ No newline at end of file diff --git a/rustdoc/search-index.js b/rustdoc/search-index.js index 6f9cd71ddd..ffd552404b 100644 --- a/rustdoc/search-index.js +++ b/rustdoc/search-index.js @@ -13,7 +13,7 @@ var searchIndex = JSON.parse('{\ "mina_hasher":{"doc":"Mina hasher","t":"QIGIICCCFFKKLKLKAKAKKDGGLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL","n":["D","DomainParameter","Fp","Hashable","Hasher","PoseidonHasherKimchi","PoseidonHasherLegacy","ROInput","create_kimchi","create_legacy","digest","domain_string","hash","init","init_and_hash","into_bytes","poseidon","reset","roinput","to_roinput","update","Poseidon","PoseidonHasherKimchi","PoseidonHasherLegacy","borrow","borrow_mut","deref","deref_mut","digest","drop","from","init","init","into","reset","try_from","try_into","type_id","update","vzip","ROInput","append_bool","append_bytes","append_field","append_hashable","append_roinput","append_scalar","append_u32","append_u64","borrow","borrow_mut","clone","clone_into","default","deref","deref_mut","drop","eq","equivalent","fmt","from","init","into","new","to_bytes","to_fields","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"mina_hasher"],[21,"mina_hasher::poseidon"],[40,"mina_hasher::roinput"]],"d":["Generic domain string argument type","The domain parameter trait is used during hashing to …","","Interface for hashable objects","Interface for hashing Hashable inputs","","","","Create an experimental kimchi hasher context","Create a legacy hasher context","Obtain has result output","Generate unique domain string of length <= 20.","Hash input and obtain result output","Set the initial state based on domain separation string …","Initialize state, hash input and obtain result output","Conversion into vector of bytes","Mina Poseidon hasher","Restore the initial state that was set most recently","Random oracle input structures and algorithms","Serialization to random oracle input","Consume hash input","Poseidon hasher context","Poseidon hasher type with experimental kimchi plonk sponge …","Poseidon hasher type with legacy plonk sponge constants","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","Random oracle input structure","Append a single bit","Append bytes","Append a base field element","Append a Hashable input","Append another random oracle input","Append a scalar field element","Append a 32-bit unsigned integer","Append a 64-bit unsigned integer","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Create a new empty random oracle input","Serialize random oracle input to bytes","Serialize random oracle input to vector of base field …","","","","",""],"i":[1,0,0,0,0,0,0,0,0,0,7,1,7,7,7,23,0,7,0,1,7,0,0,0,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10],"f":[0,0,0,0,0,0,0,0,[[],[[2,[1]]]],[[],[[3,[1]]]],[[],4],[[],[[6,[5]]]],[[],4],[[],7],[[],4],[[],[[9,[8]]]],0,[[],7],0,[[],10],[[],7],0,0,0,[[]],[[]],[11],[11],[[[13,[12,1]]],4],[11],[[]],[[],11],[[[13,[12,1]]],7],[[]],[[[13,[12,1]]],7],[[],14],[[],14],[[],15],[[[13,[12,1]],1],7],[[]],0,[[10,16],10],[[10,[17,[8]]],10],[[10,4],10],[[10,1],10],[[10,10],10],[[10,18],10],[[10,19],10],[[10,20],10],[[]],[[]],[10,10],[[]],[[],10],[11],[11],[11],[[10,10],16],[[],16],[[10,21],22],[[]],[[],11],[[]],[[],10],[10,[[9,[8]]]],[10,[[9,[4]]]],[[]],[[],14],[[],14],[[],15],[[]]],"c":[],"p":[[8,"Hashable"],[6,"PoseidonHasherKimchi"],[6,"PoseidonHasherLegacy"],[6,"Fp"],[3,"String"],[4,"Option"],[8,"Hasher"],[15,"u8"],[3,"Vec"],[3,"ROInput"],[15,"usize"],[8,"SpongeConstants"],[3,"Poseidon"],[4,"Result"],[3,"TypeId"],[15,"bool"],[15,"slice"],[6,"Fq"],[15,"u32"],[15,"u64"],[3,"Formatter"],[6,"Result"],[8,"DomainParameter"]]},\ "mina_poseidon":{"doc":"","t":"CAAAAAASSSSSSDDSSSILLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFAAAAFFFFFFFFFNDDIENKLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMKLKLMFLMKLMLLLLLLLLLLLLLLLRDDIDKLKLKLLLLLLLAKLKLLLLLLLLLLLKLKLLLLFLLLLLLLLLLLMMKLMMLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLL","n":["FqSponge","constants","dummy_values","pasta","permutation","poseidon","sponge","PERM_FULL_MDS","PERM_HALF_ROUNDS_FULL","PERM_INITIAL_ARK","PERM_ROUNDS_FULL","PERM_ROUNDS_PARTIAL","PERM_SBOX","PlonkSpongeConstantsKimchi","PlonkSpongeConstantsLegacy","SPONGE_CAPACITY","SPONGE_RATE","SPONGE_WIDTH","SpongeConstants","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","from","from","init","init","into","into","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","kimchi_dummy","fp_kimchi","fp_legacy","fq_kimchi","fq_legacy","params","static_params","static_params","params","static_params","static_params","full_round","half_rounds","poseidon_block_cipher","Absorbed","ArithmeticSponge","ArithmeticSpongeParams","Sponge","SpongeState","Squeezed","absorb","absorb","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","constants","default","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","fmt","fmt","from","from","from","full_round","init","init","init","into","into","into","mds","new","new","reset","reset","round_constants","sbox","serialize","sponge_state","squeeze","squeeze","state","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","CHALLENGE_LENGTH_IN_LIMBS","DefaultFqSponge","DefaultFrSponge","FqSponge","ScalarChallenge","absorb_fq","absorb_fq","absorb_fr","absorb_fr","absorb_g","absorb_g","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","caml","challenge","challenge","challenge_fq","challenge_fq","clone","clone","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","digest","digest","digest_fq","digest_fq","drop","drop","drop","endo_coefficient","fmt","from","from","from","from","init","init","init","into","into","into","last_squeezed","last_squeezed","new","new","sponge","sponge","squeeze","squeeze","squeeze_field","squeeze_limbs","to_field","to_field_with_length","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","CamlScalarChallenge","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","from","from","from_value","init","into","into_value","ocaml_binding","ocaml_desc","to_owned","try_from","try_into","type_id","unique_id","vzip"],"q":[[0,"mina_poseidon"],[7,"mina_poseidon::constants"],[49,"mina_poseidon::dummy_values"],[50,"mina_poseidon::pasta"],[54,"mina_poseidon::pasta::fp_kimchi"],[56,"mina_poseidon::pasta::fp_legacy"],[57,"mina_poseidon::pasta::fq_kimchi"],[59,"mina_poseidon::pasta::fq_legacy"],[60,"mina_poseidon::permutation"],[63,"mina_poseidon::poseidon"],[134,"mina_poseidon::sponge"],[211,"mina_poseidon::sponge::caml"]],"d":["","","","","The permutation module contains the function implementing …","This module implements Poseidon Hash Function primitive","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Placeholder dummy value for the kimchi configuration, …","","","","","","the fp sponge params","the legacy fp sponge params","","the fq sponge params","the legacy fq sponge params","Apply a full round of the permutation. A full round is …","","","","","","Cryptographic sponge interface - for hashing an arbitrary …","","","Absorb an array of field elements x","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Create a new cryptographic sponge using arithmetic sponge …","","Reset the sponge back to its initial state (as if it were …","","","","","","Squeeze an output from the sponge","","","","","","","","","","","","","","","","","","","","","Abstracts a sponge operating on a base field Fq of the …","A challenge which is used as a scalar on a group element …","Absorbs a base field element. This operation is the most …","","Absorbs an element of the scalar field Fr — it is done …","","Absorbs a base field point, that is a pair of Fq elements.","","","","","","","","","Squeeze out a challenge in the scalar field. Implemented by","","Squeeze out a base field challenge. This operation is the …","","","","","","","","","","","","Returns a scalar field digest using the binary …","","Returns a base field digest by squeezing the underlying …","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","Creates a new sponge.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","",""],"i":[0,0,0,0,0,0,0,13,13,13,13,13,13,0,0,13,13,13,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,43,14,15,8,14,15,8,14,15,8,14,15,8,14,14,8,15,8,14,15,8,14,8,15,8,14,15,8,15,8,14,14,15,8,14,15,8,14,8,43,14,43,14,8,0,8,14,43,14,14,15,8,14,15,8,14,15,8,14,15,8,14,15,8,14,0,0,0,0,0,44,24,44,24,44,24,30,26,24,30,26,24,0,44,24,44,24,26,24,26,24,30,26,24,30,26,24,44,24,44,24,30,26,24,0,26,30,26,26,24,30,26,24,30,26,24,30,24,44,24,30,24,30,24,24,24,26,26,26,24,30,26,24,30,26,24,30,26,24,30,26,24,0,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[1,1],[2,2],[[]],[[]],[3],[3],[3],[3],[3],[3],[[]],[[]],[[],3],[[],3],[[]],[[]],[[]],[[]],[[],4],[[],4],[[],4],[[],4],[[],5],[[],5],[[]],[[]],[[],[[8,[[0,[6,7]]]]]],0,0,0,0,[[],[[8,[9]]]],[[],[[8,[9]]]],[[],[[8,[9]]]],[[],[[8,[10]]]],[[],[[8,[10]]]],[[],[[8,[10]]]],[[[8,[6]],[11,[6]],3]],[[[8,[6]],[12,[6]]]],[[[8,[6]],[11,[6]]]],0,0,0,0,0,0,[12],[[[14,[6,13]],[12,[6]]]],[[]],[[]],[[]],[[]],[[]],[[]],[15,15],[[[8,[[0,[16,6]]]]],[[8,[[0,[16,6]]]]]],[[[14,[[0,[16,6]],[0,[16,13]]]]],[[14,[[0,[16,6]],[0,[16,13]]]]]],[[]],[[]],[[]],0,[[],[[8,[[0,[17,6]]]]]],[3],[3],[3],[3],[3],[3],[18,[[4,[[8,[6]]]]]],[3],[3],[3],[[15,19],20],[[[8,[[0,[21,6]]]],19],20],[[]],[[]],[[]],[[[14,[6,13]],3]],[[],3],[[],3],[[],3],[[]],[[]],[[]],0,[8],[[[8,[6]]],[[14,[6,13]]]],[[]],[[[14,[6,13]]]],0,[6,6],[[[8,[6]],22],4],0,[[]],[[[14,[6,13]]],6],0,[[]],[[]],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],5],[[],5],[[],5],[[]],[[]],[[]],0,0,0,0,0,[12],[[[24,[23,13]],12]],[12],[[[24,[23,13]],12]],[12],[[[24,[23,13]],[12,[[25,[23]]]]]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[[24,[23,13]]]],[[]],[[[24,[23,13]]]],[[[26,[16]]],[[26,[16]]]],[[[24,[[0,[16,23]],[0,[16,13]]]]],[[24,[[0,[16,23]],[0,[16,13]]]]]],[[]],[[]],[3],[3],[3],[3],[3],[3],[[]],[[[24,[23,13]]]],[[]],[[[24,[23,13]]]],[3],[3],[3],[[],27],[[[26,[21]],19],20],[[]],[[[29,[28]]],26],[[]],[[]],[[],3],[[],3],[[],3],[[]],[[]],[[]],0,0,[8],[8,[[24,[23,13]]]],0,0,[[[30,[27,13]],3],27],[[[24,[23,13]],3]],[[[24,[23,13]]]],[[[24,[23,13]],3],[[11,[31]]]],[[[26,[27]],27],27],[[[26,[27]],3,27],27],[[]],[[]],[[],4],[[],4],[[],4],[[],4],[[],4],[[],4],[[],5],[[],5],[[],5],[[]],[[]],[[]],0,[[]],[[]],[[[29,[16]]],[[29,[16]]]],[[]],[3],[3],[3],[[[29,[21]],19],20],[[]],[26,[[29,[32]]]],[33,[[29,[34]]]],[[],3],[[]],[[[29,[35]],36],33],[[37,[39,[38]],40],41],[[37,[12,[38]]],41],[[]],[[],4],[[],4],[[],5],[[],42],[[]]],"c":[],"p":[[3,"PlonkSpongeConstantsLegacy"],[3,"PlonkSpongeConstantsKimchi"],[15,"usize"],[4,"Result"],[3,"TypeId"],[8,"Field"],[8,"FromStr"],[3,"ArithmeticSpongeParams"],[6,"Fp"],[6,"Fq"],[3,"Vec"],[15,"slice"],[8,"SpongeConstants"],[3,"ArithmeticSponge"],[4,"SpongeState"],[8,"Clone"],[8,"Default"],[8,"Deserializer"],[3,"Formatter"],[6,"Result"],[8,"Debug"],[8,"Serializer"],[8,"SWModelParameters"],[3,"DefaultFqSponge"],[3,"GroupAffine"],[3,"ScalarChallenge"],[8,"PrimeField"],[8,"Into"],[3,"CamlScalarChallenge"],[3,"DefaultFrSponge"],[15,"u64"],[8,"From"],[4,"Value"],[8,"FromValue"],[8,"IntoValue"],[3,"OCamlRuntime"],[3,"Env"],[15,"str"],[4,"Option"],[15,"bool"],[3,"String"],[15,"u128"],[8,"Sponge"],[8,"FqSponge"]]},\ "mina_signer":{"doc":"Mina signer","t":"GCGCNECGCCCINLLLLFFLLLLLLLLAAAAKALLLLKLDENNGNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLNNNNNDNRNDEGNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLMDLLLLLLLLLLLLLLRGDENNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLMMLLLLLL","n":["BaseField","CompressedPubKey","CurvePoint","Keypair","MAINNET","NetworkId","PubKey","ScalarField","Schnorr","SecKey","Signature","Signer","TESTNET","borrow","borrow_mut","clone","clone_into","create_kimchi","create_legacy","deref","deref_mut","drop","fmt","from","init","into","into_bytes","keypair","pubkey","schnorr","seckey","sign","signature","to_owned","try_from","try_into","type_id","verify","vzip","Keypair","KeypairError","NonCurvePoint","PublicKey","Result","SecretKey","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from_bytes","from_hex","from_parts_unsafe","from_secret_key","get_address","init","init","into","into","provide","public","rand","source","to_bytes","to_hex","to_owned","to_owned","to_string","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","AddressBase58","AddressChecksum","AddressLength","AddressRawByteLength","AddressVersion","CompressedPubKey","Hex","MINA_ADDRESS_LEN","NonCurvePoint","PubKey","PubKeyError","Result","SecKey","XCoordinate","XCoordinateBytes","YCoordinateBytes","YCoordinateParity","YCoordinateParityBytes","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","empty","eq","eq","eq","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","from","from","from","from_address","from_address","from_bytes","from_bytes","from_hex","from_hex","from_point_unsafe","from_secret_key","from_secret_key","init","init","init","into","into","into","into_address","into_address","into_compressed","into_point","is_odd","point","provide","to_bytes","to_bytes","to_hex","to_hex","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","x","Schnorr","borrow","borrow_mut","deref","deref_mut","drop","from","init","into","sign","try_from","try_into","type_id","verify","vzip","MINA_SEC_KEY_LEN","Result","SecKey","SecKeyError","SecretKeyBase58","SecretKeyBytes","SecretKeyChecksum","SecretKeyHex","SecretKeyLength","SecretKeyVersion","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","eq","eq","equivalent","equivalent","fmt","fmt","fmt","from","from","from_base58","from_bytes","from_hex","init","init","into","into","into_scalar","new","provide","rand","scalar","to_base58","to_bytes","to_hex","to_owned","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Signature","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","fmt","fmt","from","init","into","new","rx","s","to_owned","to_string","try_from","try_into","type_id","vzip"],"q":[[0,"mina_signer"],[39,"mina_signer::keypair"],[98,"mina_signer::pubkey"],[196,"mina_signer::schnorr"],[211,"mina_signer::seckey"],[270,"mina_signer::signature"]],"d":["Base field element type","","Affine curve point type","","Id for mainnet","Mina network (or blockchain) identifier","","Scalar field element type","","","","Interface for signed objects","Id for all testnets","","","","","Create an experimental kimchi signer context with domain …","Create a legacy signer context with domain parameters …","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Keypair structures and algorithms","Public key structures and algorithms","Mina Schnorr signature scheme","Secret key structures and helpers","Sign input (see Hashable) using keypair kp and return the …","Mina signature structure and associated helpers","","","","","Verify that the signature sig on input (see Hashable) is …","","Keypair structure","Keypair error","point not on curve","Public key error","Keypair result","Invalid secret key","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Deserialize keypair from secret key bytes","Deserialize keypair from secret key hex","Create keypair from scalar field secret element and curve …","Create keypair from secret key","Obtain the Mina address corresponding to the keypair’s …","","","Calls U::from(self).","Calls U::from(self).","","Public key","Generate random keypair","","Deserialize keypair into bytes","Deserialize keypair into hex","","","","","","","","","","","","","Invalid address base58","Invalid address checksum","Invalid address length","Invalid raw address bytes length","Invalid address version","Compressed public keys consist of x-coordinate and …","Invalid hex","Length of Mina addresses","Invalid y-coordinate parity","Public key","Public key errors","Public key Result","Invalid secret key","Invalid x-coordinate","Invalid x-coordinate bytes","Point not on curve","Invalid y-coordinate parity","Invalid y-coordinate","","","","","","","","","","","","","","","","","","","","","","The empty CompressedPubKey value that is used as public_key…","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Deserialize Mina address into public key","Deserialize Mina address into compressed public key (via …","Deserialize public key from bytes","Deserialize compressed public key from bytes","Deserialize public key from hex","Deserialize compressed public key from hex","Create public key from curve point Note: Does not check …","Create public key from a secret key","Create compressed public key from a secret key","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Serialize public key into corresponding Mina address","Serialize compressed public key into corresponding Mina …","Convert public key into compressed public key","Convert public key into curve point","Parity of y-coordinate","Borrow public key as curve point","","Deserialize public key into bytes","Deserialize compressed public key into bytes","Deserialize public key into hex","Deserialize compressed public key into hex","","","","","","","","","","","","","","","","","","X-coordinate","Schnorr signer context for the Mina signature algorithm","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","Secret key length","Keypair result","Secret key","Keypair error","Invalid base58 secret key","Invalid secret key bytes","Invalid secret key checksum","Invalid secret key hex","Invalid secrey key length","Invalid secret key version","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Deserialize base58 encoded secret key","Deserialize secret key from bytes","Deserialize secret key from hex","","","Calls U::from(self).","Calls U::from(self).","Convert secret key into scalar field element","Create secret key from scalar field element","","Generate a random secret key","Borrows secret key as scalar field element","Deserialize secret key into base58","Deserialize secret key into bytes","Deserialize secret key into hex","","","","","","","","","","","","Signature structure","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Create a new signature","Base field component","Scalar field component","","","","","",""],"i":[0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,3,0,1,1,1,1,3,1,0,0,15,15,0,15,15,9,15,9,15,9,15,9,15,9,15,9,15,9,15,9,15,9,15,15,9,9,15,15,15,9,9,9,9,9,9,15,9,15,9,15,9,9,15,9,9,15,9,15,9,15,9,15,9,15,9,15,9,16,16,16,16,16,0,16,0,16,0,0,0,16,16,16,16,16,16,16,13,30,16,13,30,16,13,30,16,13,30,16,13,30,16,13,30,16,13,30,30,16,13,30,16,13,30,16,16,13,13,30,16,13,30,13,30,13,30,13,30,13,13,30,16,13,30,16,13,30,13,30,13,13,30,13,16,13,30,13,30,16,13,30,16,13,16,13,30,16,13,30,16,13,30,16,13,30,30,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,0,0,0,17,17,17,17,17,17,17,23,17,23,17,23,17,23,17,23,17,23,17,23,17,23,17,23,17,17,23,17,23,23,23,23,17,23,17,23,23,23,17,23,23,23,23,23,17,23,17,17,23,17,23,17,23,17,23,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[1,1],[[]],[[],[[3,[2]]]],[[],[[3,[2]]]],[4],[4],[4],[[1,5],6],[[]],[[],4],[[]],[1,[[8,[7]]]],0,0,0,0,[9,10],0,[[]],[[],11],[[],11],[[],12],[[10,13],14],[[]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[15,15],[9,9],[[]],[[]],[4],[4],[4],[4],[4],[4],[[15,15],14],[[9,9],14],[[],14],[[],14],[[15,5],6],[[15,5],6],[[9,5],6],[[9,5],6],[16,15],[[]],[17,15],[[]],[[[18,[7]]],[[19,[9]]]],[20,[[19,[9]]]],[[21,22],9],[23,[[19,[9]]]],[9,24],[[],4],[[],4],[[]],[[]],[25],0,[[[0,[26,27]]],[[19,[9]]]],[15,[[29,[28]]]],[9,[[8,[7]]]],[9,24],[[]],[[]],[[],24],[[],24],[[],11],[[],11],[[],11],[[],11],[[],12],[[],12],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[16,16],[13,13],[30,30],[[]],[[]],[[]],[4],[4],[4],[4],[4],[4],[4],[4],[4],[[],30],[[16,16],14],[[13,13],14],[[30,30],14],[[],14],[[],14],[[],14],[[16,5],6],[[16,5],6],[[13,5],6],[[13,5],6],[[30,5],6],[[]],[[]],[[]],[20,[[31,[13]]]],[20,[[31,[30]]]],[[[18,[7]]],[[31,[13]]]],[[[18,[7]]],[[31,[30]]]],[20,[[31,[13]]]],[20,[[31,[30]]]],[22,13],[23,[[31,[13]]]],[23,30],[[],4],[[],4],[[],4],[[]],[[]],[[]],[13,24],[30,24],[13,30],[13,22],0,[13,22],[25],[13,[[8,[7]]]],[30,[[8,[7]]]],[13,24],[30,24],[[]],[[]],[[]],[[],24],[[],24],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],12],[[],12],[[],12],[[]],[[]],[[]],0,0,[[]],[[]],[4],[4],[4],[[]],[[],4],[[]],[[[32,[2]],9,2],10],[[],11],[[],11],[[],12],[[[32,[2]],10,13,2],14],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[17,17],[23,23],[[]],[[]],[4],[4],[4],[4],[4],[4],[[17,17],14],[[23,23],14],[[],14],[[],14],[[17,5],6],[[17,5],6],[[23,5],6],[[]],[[]],[20,[[33,[23]]]],[[[18,[7]]],[[33,[23]]]],[20,[[33,[23]]]],[[],4],[[],4],[[]],[[]],[23,21],[21,23],[25],[[[0,[26,27]]],23],[23,21],[23,24],[23,[[8,[7]]]],[23,24],[[]],[[]],[[],24],[[],11],[[],11],[[],11],[[],11],[[],12],[[],12],[[]],[[]],0,[[]],[[]],[10,10],[[]],[4],[4],[4],[[10,10],14],[[],14],[[10,5],6],[[10,5],6],[[]],[[],4],[[]],[[34,21],10],0,0,[[]],[[],24],[[],11],[[],11],[[],12],[[]]],"c":[],"p":[[4,"NetworkId"],[8,"Hashable"],[8,"Signer"],[15,"usize"],[3,"Formatter"],[6,"Result"],[15,"u8"],[3,"Vec"],[3,"Keypair"],[3,"Signature"],[4,"Result"],[3,"TypeId"],[3,"PubKey"],[15,"bool"],[4,"KeypairError"],[4,"PubKeyError"],[4,"SecKeyError"],[15,"slice"],[6,"Result"],[15,"str"],[6,"ScalarField"],[6,"CurvePoint"],[3,"SecKey"],[3,"String"],[3,"Demand"],[8,"RngCore"],[8,"CryptoRng"],[8,"Error"],[4,"Option"],[3,"CompressedPubKey"],[6,"Result"],[3,"Schnorr"],[6,"Result"],[6,"BaseField"]]},\ -"mvpoly":{"doc":"","t":"IKKKKKKKAKAKADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLFFLLLLLLFLLLLLFLFLLLLLLL","n":["MVPoly","degree","double","eval","from_expr","homogeneous_eval","is_constant","is_homogeneous","monomials","mul_by_scalar","prime","random","utils","Sparse","add","add","add","add","add_monomial","borrow","borrow_mut","clone","clone_into","degree","deref","deref_mut","double","drop","eq","equivalent","eval","fmt","from","from","from","from","from_expr","homogeneous_eval","init","into","is_constant","is_homogeneous","is_zero","modify_monomial","monomials","mul","mul_by_scalar","neg","neg","one","random","sub","sub","sub","sub","to_owned","try_from","try_into","type_id","vzip","zero","Dense","add","add","add","add","borrow","borrow_mut","clone","clone_into","compute_normalized_indices","default","degree","deref","deref_mut","dimension","double","drop","eq","equivalent","eval","fmt","from","from","from","from","from","from_coeffs","from_expr","from_variable","homogeneous_eval","increase_degree","index","index_mut","init","into","is_constant","is_homogeneous","is_zero","iter","maximum_degree","mul","mul_by_scalar","neg","neg","new","number_of_variables","one","random","sub","sub","sub","sub","to_owned","try_from","try_into","type_id","vzip","zero","PrimeNumberGenerator","borrow","borrow_mut","compute_all_two_factors_decomposition","compute_indices_nested_loop","default","deref","deref_mut","drop","from","get_first_nth_primes","get_mapping_with_primes","get_next_prime","get_nth_prime","init","into","into_iter","is_prime","is_prime","naive_prime_factors","new","next","par_bridge","try_from","try_into","type_id","vzip"],"q":[[0,"mvpoly"],[13,"mvpoly::monomials"],[61,"mvpoly::prime"],[119,"mvpoly::utils"]],"d":["Generic trait to represent a multi-variate polynomial","Returns the degree of the polynomial.","","Evaluate the polynomial at the vector point x.","Build a value from an expression. This method aims to be …","Evaluate the polynomial at the vector point x and the …","","Returns true if the polynomial is homogeneous (of degree D…","","","Multivariate polynomial dense representation using prime …","Generate a random polynomial of maximum degree max_degree.","This module contains functions to work with prime numbers …","Represents a multivariate polynomial in N variables with …","","","","","","","","","","Returns the degree of the polynomial.","","","","","","","Evaluate the polynomial at the vector point x.","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","","","Generate a random polynomial of maximum degree max_degree.","","","","","","","","","","","Represents a multivariate polynomial of degree less than D …","","","","","","","","","Output example for N = 2 and D = 2:","","Returns the degree of the polynomial.","","","","","","","","Evaluate the polynomial at the vector point x.","","","","","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","Generate a random polynomial of maximum degree max_degree.","","","","","","","","","","","","","","Compute all the possible two factors decomposition of a …","Compute the list of indices to perform N nested loops of …","","","","","Returns the argument unchanged.","","Build mapping from 1..N to the first N prime numbers. It …","Get the next prime number","Generate the nth prime number","","Calls U::from(self).","","Naive implementation checking if n is prime You can also …","Check if a number is prime using the list of prime numbers …","Given a number n, return the list of prime factors of n, …","","","","","","",""],"i":[0,25,25,25,25,25,25,25,0,25,0,25,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,23,23,0,0,23,23,23,23,23,23,0,23,23,23,23,23,0,23,0,23,23,23,23,23,23,23],"f":[0,[[],1],[[]],[2],[[[5,[3,[4,[1]]]]]],[2],[[],6],[[],6],0,[[]],0,[[7,[8,[1]]]],0,0,[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]],[[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[2,[1]],9]],[[]],[[]],[[[10,[[0,[11,9]]]]],[[10,[[0,[11,9]]]]]],[[]],[[[10,[9]]],1],[1],[1],[[[10,[9]]],[[10,[9]]]],[1],[[[10,[9]],[10,[9]]],6],[[],6],[[[10,[9]],[2,[9]]],9],[[[10,[9]],12],13],[14],[[]],[[[15,[9]]],[[10,[9]]]],[9,[[10,[9]]]],[[[5,[[3,[9]],[4,[1]]]]],[[10,[9]]]],[[[10,[9]],[2,[9]],9],9],[[],1],[[]],[[[10,[9]]],6],[[[10,[9]]],6],[[[10,[9]]],6],[[[10,[9]],[2,[1]],9]],0,[[[10,[9]],[10,[9]]],[[10,[9]]]],[[[10,[9]],9],[[10,[9]]]],[[[10,[9]]]],[[[10,[9]]]],[[],[[10,[9]]]],[[7,[8,[1]]],[[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[]],[[],16],[[],16],[[],17],[[]],[[],[[10,[9]]]],0,[[[15,[9]],[15,[9]]],[[15,[9]]]],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[]],[[]],[[[15,[[0,[11,9]]]]],[[15,[[0,[11,9]]]]]],[[]],[[],[[18,[1]]]],[[],[[15,[9]]]],[[[15,[9]]],1],[1],[1],[[],1],[[[15,[9]]],[[15,[9]]]],[1],[[[15,[9]],[15,[9]]],6],[[],6],[[[15,[9]],[2,[9]]],9],[[[15,[9]],12],13],[14],[[[20,[[19,[9]]]]],[[15,[9]]]],[9,[[15,[9]]]],[[[19,[9]]],[[15,[9]]]],[[]],[[[18,[9]]],[[15,[9]]]],[[[5,[[3,[9]],[4,[1]]]]],[[15,[9]]]],[[[4,[1]]],[[15,[9]]]],[[[15,[9]],[2,[9]],9],9],[[[15,[9]]],[[15,[9]]]],[[[15,[9]],1]],[[[15,[9]],1]],[[],1],[[]],[[[15,[9]]],6],[[[15,[9]]],6],[[[15,[9]]],6],[[[15,[9]]],21],[[[15,[9]]],1],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[[15,[9]],9],[[15,[9]]]],[[[15,[9]]]],[[[15,[9]]]],[[],[[15,[9]]]],[[[15,[9]]],1],[[],[[15,[9]]]],[[7,[8,[1]]],[[15,[9]]]],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[[15,[9]],[15,[9]]],[[15,[9]]]],[[]],[[],16],[[],16],[[],17],[[]],[[],[[15,[9]]]],0,[[]],[[]],[[1,[22,[1,18]],23],18],[[[18,[1]]],[[18,[[18,[1]]]]]],[[],23],[1],[1],[1],[[]],[[23,1],[[18,[1]]]],[[],[[18,[1]]]],[23,1],[[23,1],1],[[],1],[[]],[[]],[1,6],[[23,1],6],[[1,23],18],[[],23],[23,8],[[],24],[[],16],[[],16],[[],17],[[]]],"c":[],"p":[[15,"usize"],[15,"array"],[6,"ConstantExpr"],[8,"Into"],[6,"Expr"],[15,"bool"],[8,"RngCore"],[4,"Option"],[8,"PrimeField"],[3,"Sparse"],[8,"Clone"],[3,"Formatter"],[6,"Result"],[15,"never"],[3,"Dense"],[4,"Result"],[3,"TypeId"],[3,"Vec"],[4,"ConstantExprInner"],[4,"Operations"],[8,"Iterator"],[3,"HashMap"],[3,"PrimeNumberGenerator"],[3,"IterBridge"],[8,"MVPoly"]]},\ +"mvpoly":{"doc":"","t":"IKKKKKKKKAKAKADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLFFLLLLLLFLLLLLFLFLLLLLLL","n":["MVPoly","add_monomial","degree","double","eval","from_expr","homogeneous_eval","is_constant","is_homogeneous","monomials","mul_by_scalar","prime","random","utils","Sparse","add","add","add","add","add_monomial","borrow","borrow_mut","clone","clone_into","degree","deref","deref_mut","double","drop","eq","equivalent","eval","fmt","from","from","from","from","from_expr","homogeneous_eval","init","into","is_constant","is_homogeneous","is_zero","modify_monomial","monomials","mul","mul_by_scalar","neg","neg","one","random","sub","sub","sub","sub","to_owned","try_from","try_into","type_id","vzip","zero","Dense","add","add","add","add","add_monomial","borrow","borrow_mut","clone","clone_into","compute_normalized_indices","default","degree","deref","deref_mut","dimension","double","drop","eq","equivalent","eval","fmt","from","from","from","from","from","from_coeffs","from_expr","from_variable","homogeneous_eval","increase_degree","index","index_mut","init","into","is_constant","is_homogeneous","is_zero","iter","maximum_degree","mul","mul_by_scalar","neg","neg","new","number_of_variables","one","random","sub","sub","sub","sub","to_owned","try_from","try_into","type_id","vzip","zero","PrimeNumberGenerator","borrow","borrow_mut","compute_all_two_factors_decomposition","compute_indices_nested_loop","default","deref","deref_mut","drop","from","get_first_nth_primes","get_mapping_with_primes","get_next_prime","get_nth_prime","init","into","into_iter","is_prime","is_prime","naive_prime_factors","new","next","par_bridge","try_from","try_into","type_id","vzip"],"q":[[0,"mvpoly"],[14,"mvpoly::monomials"],[62,"mvpoly::prime"],[121,"mvpoly::utils"]],"d":["Generic trait to represent a multi-variate polynomial","Add the monomial coeff * x_1^{e_1} * ... * x_N^{e_N} to the","Returns the degree of the polynomial.","","Evaluate the polynomial at the vector point x.","Build a value from an expression. This method aims to be …","Evaluate the polynomial at the vector point x and the …","","Returns true if the polynomial is homogeneous (of degree D…","","","Multivariate polynomial dense representation using prime …","Generate a random polynomial of maximum degree max_degree.","This module contains functions to work with prime numbers …","Represents a multivariate polynomial in N variables with …","","","","","","","","","","Returns the degree of the polynomial.","","","","","","","Evaluate the polynomial at the vector point x.","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","Generate a random polynomial of maximum degree max_degree.","","","","","","","","","","","Represents a multivariate polynomial of degree less than D …","","","","","","","","","","Output example for N = 2 and D = 2:","","Returns the degree of the polynomial.","","","","","","","","Evaluate the polynomial at the vector point x.","","","","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","Generate a random polynomial of maximum degree max_degree.","","","","","","","","","","","","","","Compute all the possible two factors decomposition of a …","Compute the list of indices to perform N nested loops of …","","","","","Returns the argument unchanged.","","Build mapping from 1..N to the first N prime numbers. It …","Get the next prime number","Generate the nth prime number","","Calls U::from(self).","","Naive implementation checking if n is prime You can also …","Check if a number is prime using the list of prime numbers …","Given a number n, return the list of prime factors of n, …","","","","","","",""],"i":[0,25,25,25,25,25,25,25,25,0,25,0,25,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,23,23,0,0,23,23,23,23,23,23,0,23,23,23,23,23,0,23,0,23,23,23,23,23,23,23],"f":[0,[[[2,[1]]]],[[],1],[[]],[2],[[[5,[3,[4,[1]]]]]],[2],[[],6],[[],6],0,[[]],0,[[7,[8,[1]]]],0,0,[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]],[[10,[9]]]],[[[10,[9]],[2,[1]],9]],[[]],[[]],[[[10,[[0,[11,9]]]]],[[10,[[0,[11,9]]]]]],[[]],[[[10,[9]]],1],[1],[1],[[[10,[9]]],[[10,[9]]]],[1],[[[10,[9]],[10,[9]]],6],[[],6],[[[10,[9]],[2,[9]]],9],[[[10,[9]],12],13],[9,[[10,[9]]]],[[[14,[9]]],[[10,[9]]]],[[]],[15],[[[5,[[3,[9]],[4,[1]]]]],[[10,[9]]]],[[[10,[9]],[2,[9]],9],9],[[],1],[[]],[[[10,[9]]],6],[[[10,[9]]],6],[[[10,[9]]],6],[[[10,[9]],[2,[1]],9]],0,[[[10,[9]],[10,[9]]],[[10,[9]]]],[[[10,[9]],9],[[10,[9]]]],[[[10,[9]]]],[[[10,[9]]]],[[],[[10,[9]]]],[[7,[8,[1]]],[[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[[10,[9]],[10,[9]]]],[[]],[[],16],[[],16],[[],17],[[]],[[],[[10,[9]]]],0,[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],[2,[1]],9]],[[]],[[]],[[[14,[[0,[11,9]]]]],[[14,[[0,[11,9]]]]]],[[]],[[],[[18,[1]]]],[[],[[14,[9]]]],[[[14,[9]]],1],[1],[1],[[],1],[[[14,[9]]],[[14,[9]]]],[1],[[[14,[9]],[14,[9]]],6],[[],6],[[[14,[9]],[2,[9]]],9],[[[14,[9]],12],13],[9,[[14,[9]]]],[15],[[]],[[[19,[9]]],[[14,[9]]]],[[[20,[[19,[9]]]]],[[14,[9]]]],[[[18,[9]]],[[14,[9]]]],[[[5,[[3,[9]],[4,[1]]]]],[[14,[9]]]],[[[4,[1]]],[[14,[9]]]],[[[14,[9]],[2,[9]],9],9],[[[14,[9]]],[[14,[9]]]],[[[14,[9]],1]],[[[14,[9]],1]],[[],1],[[]],[[[14,[9]]],6],[[[14,[9]]],6],[[[14,[9]]],6],[[[14,[9]]],21],[[[14,[9]]],1],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],9],[[14,[9]]]],[[[14,[9]]]],[[[14,[9]]]],[[],[[14,[9]]]],[[[14,[9]]],1],[[],[[14,[9]]]],[[7,[8,[1]]],[[14,[9]]]],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[[14,[9]],[14,[9]]],[[14,[9]]]],[[]],[[],16],[[],16],[[],17],[[]],[[],[[14,[9]]]],0,[[]],[[]],[[1,[22,[1,18]],23],18],[[[18,[1]]],[[18,[[18,[1]]]]]],[[],23],[1],[1],[1],[[]],[[23,1],[[18,[1]]]],[[],[[18,[1]]]],[23,1],[[23,1],1],[[],1],[[]],[[]],[1,6],[[23,1],6],[[1,23],18],[[],23],[23,8],[[],24],[[],16],[[],16],[[],17],[[]]],"c":[],"p":[[15,"usize"],[15,"array"],[6,"ConstantExpr"],[8,"Into"],[6,"Expr"],[15,"bool"],[8,"RngCore"],[4,"Option"],[8,"PrimeField"],[3,"Sparse"],[8,"Clone"],[3,"Formatter"],[6,"Result"],[3,"Dense"],[15,"never"],[4,"Result"],[3,"TypeId"],[3,"Vec"],[4,"ConstantExprInner"],[4,"Operations"],[8,"Iterator"],[3,"HashMap"],[3,"PrimeNumberGenerator"],[3,"IterBridge"],[8,"MVPoly"]]},\ "o1_utils":{"doc":"A collection of utility functions and constants that can …","t":"CCCCCCCCCCAAAAOOAAAAAAAAAADLLLLLLLLLLLLLLLLFFFIKKIKKKDLLMLLLLLLLLLLMLLLLLDLLLLLLLLLLMMLLLLIKKKKIKKKKINNNIENIGIKLLLLLLLLLLLLLKKKKKFLLLLLLLKKKKLLLLKKLLDILLLLLLLLLLLLLLLLLLMLLLLLLKLKLKLLLLISLFFDDLLLLLLLLLLLLLLLLLLALLLLLLLLLLFFF","n":["BigUintFieldHelpers","BigUintHelpers","BitwiseOps","ChunkedEvaluations","ExtendedDensePolynomial","ExtendedEvaluations","FieldHelpers","ForeignElement","RandomField","Two","adjacent_pairs","array","biguint_helpers","bitwise_operations","box_array","box_array2","chunked_evaluations","chunked_polynomial","dense_polynomial","evaluations","field_helpers","foreign_field","hasher","math","serialization","tests","AdjacentPairs","borrow","borrow_mut","deref","deref_mut","drop","from","from","from","init","into","into_iter","next","try_from","try_into","type_id","vzip","vec_to_boxed_array","vec_to_boxed_array2","vec_to_boxed_array3","BigUintHelpers","bitlen","from_hex","BitwiseOps","bitwise_and","bitwise_not","bitwise_xor","ChunkedEvaluations","borrow","borrow_mut","chunks","clone","clone_into","deref","deref_mut","deserialize","drop","from","init","into","serialize","size","to_owned","try_from","try_into","type_id","vzip","ChunkedPolynomial","borrow","borrow_mut","deref","deref_mut","drop","evaluate_chunks","from","init","into","linearize","polys","size","try_from","try_into","type_id","vzip","ExtendedDensePolynomial","eval_polynomial","scale","shiftr","to_chunked_polynomial","ExtendedEvaluations","pow","scale","shift","square","BigUintFieldHelpers","DecodeHex","DeserializeBits","DeserializeBytes","FieldHelpers","FieldHelpersError","FromBigToField","RandomField","Result","Two","bits_to_field","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","fmt","fmt","from","from_biguint","from_bits","from_bytes","from_hex","gen","gen_field_with_bits","i32_to_field","init","into","modulus_biguint","provide","size_in_bytes","to_bigint_positive","to_biguint","to_bits","to_bytes","to_field","to_hex","to_owned","to_string","try_from","try_into","two","two_pow","type_id","vzip","ForeignElement","ForeignFieldHelpers","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","fmt","from","from_be","from_biguint","from_field","index","index_mut","init","into","limbs","neg","new","to_biguint","to_owned","try_from","try_into","two_to_2limb","two_to_2limb","two_to_3limb","two_to_3limb","two_to_limb","two_to_limb","type_id","vzip","zero","CryptoDigest","PREFIX","digest","ceil_log2","div_ceil","SerdeAs","SerdeAsUnchecked","borrow","borrow","borrow_mut","borrow_mut","deref","deref","deref_mut","deref_mut","deserialize_as","deserialize_as","drop","drop","from","from","init","init","into","into","ser","serialize_as","serialize_as","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","deserialize","serialize","make_test_rng"],"q":[[0,"o1_utils"],[26,"o1_utils::adjacent_pairs"],[43,"o1_utils::array"],[46,"o1_utils::biguint_helpers"],[49,"o1_utils::bitwise_operations"],[53,"o1_utils::chunked_evaluations"],[73,"o1_utils::chunked_polynomial"],[90,"o1_utils::dense_polynomial"],[95,"o1_utils::evaluations"],[100,"o1_utils::field_helpers"],[149,"o1_utils::foreign_field"],[185,"o1_utils::hasher"],[188,"o1_utils::math"],[190,"o1_utils::serialization"],[221,"o1_utils::serialization::ser"],[223,"o1_utils::tests"]],"d":["","","","","","","","","","","This module hosts the AdjacentPairs type, which can be …","This module provides different helpers in creating …","This module provides a set of functions to perform bit …","This module provides a set of functions to perform bit …","A macro similar to vec![$elem; $size] which returns a boxed","A macro similar to vec![vec![$elem; $size1]; $size2] which …","This module contains a type ChunkedEvaluations,","This module contains a type ChunkedPolynomial, and a …","This adds a few utility functions for the DensePolynomial …","This adds a few utility functions for the Evaluations …","Useful helper methods to extend ark_ff::Field.","Describes helpers for foreign field arithmetics Generic …","This module provides the CryptoDigest trait, which …","This modules implements some math helper functions.","This adds a few utility functions for serializing and …","Utils only for testing","You can create a new AdjacentPairs from an iterator using:","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","Converts a vector of elements to a boxed one. Semantically …","Converts a two-dimensional vector to a constant sized …","Converts a three-dimensional vector to a constant sized …","Helpers for BigUint","Returns the minimum number of bits required to represent a …","Creates a BigUint from an hexadecimal string in big endian","Bitwise operations","Conjunction of the bits of two BigUint inputs for a given …","Negate the bits of a Self input If it provides a larger …","Bitwise XOR of two BigUint inputs","This struct contains multiple chunk evaluations.","","","The chunk evaluations.","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","Each chunk polynomial has degree size-1.","","","","","","This struct contains multiple chunk polynomials with …","","","","","","This function evaluates polynomial in chunks.","Returns the argument unchanged.","","Calls U::from(self).","Multiplies the chunks of a polynomial with powers of …","The chunk polynomials.","Each chunk polynomial has degree size-1.","","","","","An extension for the DensePolynomial type.","eval_polynomial(coeffs, x) evaluates a polynomial given …","This function “scales” (multiplies all the …","Shifts all the coefficients to the right.","Convert a polynomial into chunks. Implementors must ensure …","An extension for the Evaluations type.","Raise each evaluation to some power pow","This function “scales” (multiplies) a polynomial with …","Utility function for shifting poly along domain coordinate","Square each evaluation","Field element wrapper for BigUint","","","","Field element helpers Unless otherwise stated everything …","Field helpers error","","Helper to generate random field elements","Result alias using FieldHelpersError","Helper to obtain two","Create a new field element from this field elements bits","","","","","","","","","","","","Returns the argument unchanged.","Deserialize from BigUint","Deserialize from bits","Deserialize from bytes","Deserialize from little-endian hex","Initialize a random input with a random value of given …","Generates a random field element of up to a given number …","Converts an i32 into a Field","","Calls U::from(self).","Get the modulus as BigUint","","Field size in bytes","Serialize field element f to a (positive) BigInt directly.","Serialize field element to a BigUint","Serialize to bits","Serialize to bytes","Convert BigUint into PrimeField element","Serialize to hex","","","","","Value two","Power of two","","","Represents a foreign field element Represents a foreign …","Foreign field helpers for B the limb size.","","","","","","","","","","","Returns the argument unchanged.","Initializes a new foreign element from a set of bytes in …","Initializes a new foreign element from a big unsigned …","Initializes a new foreign element from an element in the …","","","","Calls U::from(self).","limbs in little endian order","Initializes a new foreign element from an absolute BigUint …","Creates a new foreign element from an array containing N …","Obtains the big integer representation of the foreign …","","","","2^{2 * B}","","2^{3 * B}","","2^{B}","","","","Creates a new foreign element representing the value zero","This trait can be implemented on any type that implements …","The domain separation string to use in the hash. This is …","Returns the digest of self. Note: this is implemented as …","Returns ceil(log2(d)) but panics if d = 0.","This function is bound to be stable soon. See …","You can use SerdeAs with serde_with in order to serialize …","Same as SerdeAs but using unchecked (de)serialization.","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","You can use this module for serialization and …","","","","","","","","","","","You can use this to deserialize an arkworks type with …","You can use this to serialize an arkworks type with serde …","Create a new test rng with a random seed"],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,42,42,0,43,43,43,0,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,0,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,0,44,44,44,44,0,45,45,45,45,0,24,24,24,0,0,24,0,0,0,46,24,24,24,24,24,24,24,24,24,24,24,24,46,46,46,46,47,47,0,24,24,46,24,46,46,46,46,46,48,46,24,24,24,24,49,49,24,24,0,0,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,37,50,37,50,37,50,37,37,37,37,0,51,51,0,0,0,0,52,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,52,53,0,52,53,52,53,52,53,52,53,52,53,0,0,0],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[1],[1],[1],[2],[3,[[5,[4]]]],[[]],[[],1],[[]],[[]],[[[5,[6,4]]],7],[[],8],[[],8],[[],9],[[]],[10,[[12,[11]]]],[[[10,[[10,[13]]]]],[[12,[[11,[[11,[13]]]]]]]],[[[10,[[10,[[10,[13]]]]]]],[[12,[[11,[[11,[[11,[13]]]]]]]]]],0,[[],1],[14],0,[1],[[[7,[1]]]],[[]],0,[[]],[[]],0,[[[16,[[0,[15,13]]]]],[[16,[[0,[15,13]]]]]],[[]],[1],[1],[17,[[8,[[16,[15]]]]]],[1],[[]],[[],1],[[]],[[[16,[15]],18],8],0,[[]],[[],8],[[],8],[[],9],[[]],0,[[]],[[]],[1],[1],[1],[[[20,[19]],19],[[10,[19]]]],[[]],[[],1],[[]],[[[20,[19]],19],[[21,[19]]]],0,0,[[],8],[[],8],[[],9],[[]],0,[22],[[]],[1],[[1,1],20],0,[1],[[]],[1],[[]],0,0,0,0,0,0,0,0,0,0,[[1,1],23],[[]],[[]],[24,24],[[]],[1],[1],[1],[[24,24],25],[[],25],[[24,26],27],[[24,26],27],[[]],[28,[[23,[15]]]],[[[22,[25]]],23],[[[22,[29]]],23],[14,23],[[7,[7,[1]]]],[1],[30,[[0,[[32,[31]],33]]]],[[],1],[[]],[[],28],[34],[[],1],[[],35],[[],28],[[],[[10,[25]]]],[[],[[10,[29]]]],[[],[[23,[15]]]],[[],36],[[]],[[],36],[[],8],[[],8],[[]],[31],[[],9],[[]],0,0,[[]],[[]],[[[37,[[0,[13,19]]]]],[[37,[[0,[13,19]]]]]],[[]],[1],[1],[1],[[[37,[[0,[38,19]]]],[37,[[0,[38,19]]]]],25],[[],25],[[[37,[19]],26],27],[[]],[[[22,[29]]],[[37,[19]]]],[28,[[37,[19]]]],[15,[[37,[15]]]],[[[37,[19]],1]],[[[37,[19]],1]],[[],1],[[]],0,[[[37,[19]],28],[[37,[19]]]],[[[11,[19]]],[[37,[19]]]],[[[37,[19]]],28],[[]],[[],8],[[],8],[[]],[[],19],[[]],[[],19],[[]],[[],19],[[],9],[[]],[[],[[37,[19]]]],0,0,[[],[[11,[29]]]],[1,1],[[1,1],1],0,0,[[]],[[]],[[]],[[]],[1],[1],[1],[1],[17,[[8,[39]]]],[17,[[8,[39]]]],[1],[1],[[]],[[]],[[],1],[[],1],[[]],[[]],0,[[40,18],8],[[40,18],8],[[],8],[[],8],[[],8],[[],8],[[],9],[[],9],[[]],[[]],[17,[[8,[39]]]],[[40,18],8],[[[7,[[11,[29]]]]],41]],"c":[],"p":[[15,"usize"],[15,"never"],[8,"IntoIterator"],[8,"Iterator"],[3,"AdjacentPairs"],[8,"Copy"],[4,"Option"],[4,"Result"],[3,"TypeId"],[3,"Vec"],[15,"array"],[3,"Box"],[8,"Clone"],[15,"str"],[8,"PrimeField"],[3,"ChunkedEvaluations"],[8,"Deserializer"],[8,"Serializer"],[8,"Field"],[3,"ChunkedPolynomial"],[3,"DensePolynomial"],[15,"slice"],[6,"Result"],[4,"FieldHelpersError"],[15,"bool"],[3,"Formatter"],[6,"Result"],[3,"BigUint"],[15,"u8"],[15,"i32"],[15,"u64"],[8,"From"],[8,"Neg"],[3,"Demand"],[3,"BigInt"],[3,"String"],[3,"ForeignElement"],[8,"PartialEq"],[8,"CanonicalDeserialize"],[8,"CanonicalSerialize"],[3,"StdRng"],[8,"BigUintHelpers"],[8,"BitwiseOps"],[8,"ExtendedDensePolynomial"],[8,"ExtendedEvaluations"],[8,"FieldHelpers"],[8,"RandomField"],[8,"BigUintFieldHelpers"],[8,"Two"],[8,"ForeignFieldHelpers"],[8,"CryptoDigest"],[3,"SerdeAs"],[3,"SerdeAsUnchecked"]]},\ "o1vm":{"doc":"","t":"GGRGGCCGGAAAAAAAAAANNNRRDDDNRRRRRDDDDNDDEDDMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMLLLLLLLLLLLLMLLLLLLLLLLLLMMMMMMMMMMMMMMMMLLMMMMMMFMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFFNEDDDDDNNMMLLLLLLLLLLLLLLMLLLLLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLLLLLLLLLLMMLLLLLLLMMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMNNNNCNNNENENNNNNNNCNCNNNNLLLLLLLLAALLLLLLALLLLLLALLALLALLFFLLALLLLLLLLANEDNNNENNNGNNRRRNNNNNNNNNNNNNNNNNNNEDNNEDNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLMLLLLLLLLMLLLLLLLDLLLLMLLLLLLLLLLLLMLLLLLLMLLDGGGLLLLLLLLLLLLLLLLLLLLLLLIIILLLLLLLLLLLLLLLLKLLLIIQKLLLKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLGGLLLLLLLDLLLLLLLLLLLLLLLLMMLLLLLLLMNNNENNNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLCCCCAAAAAAAENGRRRNLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLMLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLLLLMLLLLLLLLLLLLLLDGGGLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNRRRRRRRNEDEDINEDNNNNNNNNNNNNNNNNNNNNNNNNQNEDRRRRRRRNNNNNNNNNNNNNNNNNNNNNNNNNNNNNQNNLLLKKKKKLLLKLLLLLLLLLLLLLLLLKKKLLLLLLLLLLLLLLLLLLLLKKKKALLLLLLLLLLLLLLLLLLLKKLLLLLLLLLLLLKLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLKFFFFLLLLLLLLLLLLLKLLLLLLLLLLLLKKKLLLLLLLLKLLLLKLLLLLLLLKKLLKKLLLLLLKKKKLLKKKLLLLLKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLKDLLLLLLLLLLLLLLLMLLMMMMLMLLLLLRRRRRRRRRDLLLLMLLLLLLLMMMLLLLLMMMMLLLLLLGGLLLLLLLDRRRRRRRRDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMLLLLMLLLMMMMMMLLLLLLLMMMMLLLLMMLLLLMMLLLLLLMLLLLLLLLLLLLLLLLLLDIDDLLLLLLMLFLLLLLLLLLLLLKLKLMMLLLLLLMMMLLLLLLLLLLLLLMFEDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLIDIQDILLLLLLLLMLLLLMMLLKLLLLLKLLLLLLMKLKLKLKLKKLLLKLLLMLLLLLLLLM","n":["BaseSponge","Curve","DOMAIN_SIZE","Fp","OpeningProof","RAMLookup","RAMLookupMode","ScalarSponge","SpongeParams","cannon","cannon_cli","folding","keccak","lookups","mips","preimage_oracle","proof","ramlookup","trace","Always","Every","Exactly","HINT_CLIENT_READ_FD","HINT_CLIENT_WRITE_FD","Hint","HostProgram","Meta","Never","PAGE_ADDRESS_MASK","PAGE_ADDRESS_SIZE","PAGE_SIZE","PREIMAGE_CLIENT_READ_FD","PREIMAGE_CLIENT_WRITE_FD","Page","ParsePreimageKeyError","Preimage","PreimageKey","Range","Start","State","StepFrequency","Symbol","VmConfiguration","arguments","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","create","create","create","data","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize","deserialize","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","eq","equivalent","exit","exited","find_address_symbol","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from_str","get","get","heap","hi","host","index","info_at","init","init","init","init","init","init","init","init","init","init","init","init","input_state_file","into","into","into","into","into","into","into","into","into","into","into","into","last_hint","lo","memory","metadata_file","name","name","next_pc","output_state_file","pc","pprof_cpu","preimage","preimage_key","preimage_offset","proof_at","proof_fmt","registers","serialize","serialize","size","snapshot_fmt","snapshot_state_at","start","step","step","step_frequency_parser","stop_at","symbols","time","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","main_cli","read_configuration","Beta","Challenge","ChallengeIter","DecomposedFoldingEnvironment","FoldingEnvironment","FoldingInstance","FoldingWitness","Gamma","JointCombiner","alphas","blinder","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","challenge","challenge","challenges","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","col","col","combine","combine","commitments","curr_witnesses","curr_witnesses","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","eq","eq","equivalent","equivalent","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_alphas","get_blinder","get_hash","get_hash","hash","hash","index","index","init","init","init","init","init","init","instances","instances","into","into","into","into","into","into","into_iter","iter","len","new","new","next","next_back","next_witnesses","next_witnesses","nth","par_bridge","relax","relax","selector","selector","size_hint","structure","structure","to_absorb","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","witness","AbsorbRootZero","AbsorbShifts","AbsorbXor","AbsorbZeroPad","Absorbs","BooleanityPadding","ChiShiftsB","ChiShiftsSum","Constraint","Constraint","Error","IotaStateG","Lookup","PadAtEnd","PaddingSuffix","PiRhoRotatedE","PiRhoShiftsE","PiRhoWordE","Sponges","SqueezeShifts","Steps","ThetaQuotientC","ThetaRotatedC","ThetaShiftsC","ThetaWordC","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","column","constraints","deref","deref","deref_mut","deref_mut","drop","drop","environment","eq","eq","equivalent","equivalent","fmt","fmt","folding","from","from","helpers","init","init","interpreter","into","into","pad_blocks","standardize","to_owned","to_owned","trace","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness","Absorb","Absorbs","AbsorbsIter","BlockIndex","ChiShiftsB","ChiShiftsSum","ColumnAlias","First","HashIndex","Input","KeccakWitness","Last","Middle","N_ZKVM_KECCAK_COLS","N_ZKVM_KECCAK_REL_COLS","N_ZKVM_KECCAK_SEL_COLS","Only","Output","PadBytesFlags","PadLength","PadSuffix","PiRhoDenseE","PiRhoDenseRotE","PiRhoExpandRotE","PiRhoQuotientE","PiRhoRemainderE","PiRhoShiftsE","Round","RoundConstants","RoundNumber","Sponge","SpongeBytes","SpongeNewState","SpongeShifts","SpongeZeros","Sponges","SpongesIter","Squeeze","StepIndex","Steps","StepsIter","ThetaDenseC","ThetaDenseRotC","ThetaExpandRotC","ThetaQuotientC","ThetaRemainderC","ThetaShiftsC","TwoToPad","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","default","default","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_hash","get_hash","get_hash","get_hash","hash","hash","hash","hash","index","index","index_mut","index_mut","init","init","init","init","init","init","init","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","is_witness","iter","iter","iter","len","len","len","next","next","next","next_back","next_back","next_back","nth","nth","nth","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","size_hint","size_hint","size_hint","to_column","to_column","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Env","add_lookup","borrow","borrow_mut","clone","clone_into","constant","constant_field","constrain","constraints","default","deref","deref_mut","drop","fmt","from","init","into","lookups","to_owned","try_from","try_into","two_pow","type_id","variable","vzip","KeccakEnv","borrow","borrow_mut","clone","clone_into","constraints_env","default","deref","deref_mut","drop","fmt","from","init","into","new","null_state","selector","step","step","to_owned","try_from","try_into","type_id","update_step","vzip","witness_env","write_column","write_column_field","KeccakConfig","KeccakFoldingEnvironment","KeccakFoldingInstance","KeccakFoldingWitness","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","fmt","from","get_hash","hash","index","index","index","init","into","to_owned","try_from","try_into","type_id","vzip","ArithHelpers","BoolHelpers","LogupHelpers","either_zero","is_boolean","is_nonzero","is_one","is_zero","lookup_byte","lookup_pad","lookup_rc16","lookup_reset","lookup_round_constants","lookup_sparse","not","one","or","read_syscall","two","two_pow","write_syscall","xor","zero","Interpreter","KeccakInterpreter","Variable","add_lookup","block_in_padding","block_index","bytes_block","constant","constant_field","constrain","constrain_absorb","constrain_booleanity","constrain_chi","constrain_flags","constrain_iota","constrain_padding","constrain_pirho","constrain_round","constrain_sponge","constrain_squeeze","constrain_theta","constraints","dense_c","dense_e","dense_rot_c","dense_rot_e","expand_rot_c","expand_rot_e","flags_block","from_quarters","from_shifts","hash_index","in_padding","input","input_of_step","is_absorb","is_pad","is_root","is_round","is_sponge","is_squeeze","lookup_steps","lookup_syscall_hash","lookup_syscall_preimage","lookups","lookups_round_chi","lookups_round_iota","lookups_round_pirho","lookups_round_theta","lookups_sponge","mode_absorb","mode_pad","mode_root","mode_rootpad","mode_round","mode_squeeze","new_state","old_state","output","output_of_step","pad_bytes_flags","pad_length","pad_suffix","quotient_c","quotient_e","remainder_c","remainder_e","round","round_constants","shifts_b","shifts_c","shifts_e","shifts_sum","sponge_byte","sponge_bytes","sponge_shifts","sponge_zeros","state_a","state_g","step_index","two_to_pad","variable","vec_dense_c","vec_dense_e","vec_dense_rot_c","vec_dense_rot_e","vec_expand_rot_c","vec_expand_rot_e","vec_quotient_c","vec_quotient_e","vec_remainder_c","vec_remainder_e","vec_shifts_b","vec_shifts_c","vec_shifts_e","vec_shifts_sum","vec_sponge_shifts","xor_state","DecomposedKeccakTrace","KeccakTrace","init","new","pad_dummy","pad_with_row","pad_with_zeros","pad_witnesses","push_row","Env","add_lookup","borrow","borrow_mut","clone","clone_into","constant","constant_field","constrain","default","deref","deref_mut","drop","fmt","from","init","into","multiplicities","tables","to_owned","try_from","try_into","two_pow","type_id","variable","vzip","witness","AtMost4Lookup","ByteLookup","KeccakStepLookup","LookupTableIDs","MemoryLookup","PadLookup","RangeCheck16Lookup","RegisterLookup","ResetLookup","RoundConstantsLookup","SparseLookup","SyscallLookup","all_variants","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","fmt","from","from_u32","get_hash","hash","init","into","is_fixed","ix_by_value","length","partial_cmp","runtime_create_column","to_owned","to_u32","try_from","try_into","type_id","vzip","ITypeInstruction","Instruction","JTypeInstruction","RTypeInstruction","column","constraints","folding","interpreter","registers","trace","witness","ColumnAlias","InstructionCounter","MIPSWitness","N_MIPS_COLS","N_MIPS_REL_COLS","N_MIPS_SEL_COLS","ScratchState","borrow","borrow_mut","clone","clone_into","cmp","deref","deref_mut","drop","eq","equivalent","fmt","from","get_hash","hash","index","index","index_mut","index_mut","init","into","is_witness","partial_cmp","to_column","to_owned","try_from","try_into","type_id","vzip","Env","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","bitmask","borrow","borrow_mut","check_boolean","check_equal","check_is_zero","constant","constraints","copy","count_leading_ones","count_leading_zeros","default","deref","deref_mut","divmod","divmod_signed","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","increase_instruction_counter","init","instruction_counter","into","inverse_or_zero","lookups","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","nor_witness","or_witness","push_memory","push_memory_access","push_register_access_if","push_register_if","report_exit","request_hint_write","request_preimage_write","scratch_state_idx","set_halted","shift_left","shift_right","shift_right_arithmetic","sub_witness","test_less_than","test_less_than_signed","test_zero","try_from","try_into","type_id","variable","vzip","xor_witness","DecomposableMIPSFoldingConfig","DecomposableMIPSFoldingEnvironment","MIPSFoldingInstance","MIPSFoldingWitness","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","eq","equivalent","fmt","from","get_hash","hash","index","index","index","init","into","to_owned","try_from","try_into","type_id","vzip","Add","AddImmediate","AddImmediateUnsigned","AddUnsigned","And","AndImmediate","BranchEq","BranchGeqZero","BranchGtZero","BranchLeqZero","BranchLtZero","BranchNeq","CountLeadingOnes","CountLeadingZeros","Div","DivUnsigned","FD_HINT_READ","FD_HINT_WRITE","FD_PREIMAGE_READ","FD_PREIMAGE_WRITE","FD_STDERR","FD_STDIN","FD_STDOUT","IType","ITypeInstruction","ITypeInstructionIter","Instruction","InstructionIter","InterpreterEnv","JType","JTypeInstruction","JTypeInstructionIter","Jump","JumpAndLink","JumpAndLinkRegister","JumpRegister","Load16","Load16Unsigned","Load32","Load8","Load8Unsigned","LoadUpperImmediate","LoadWordLeft","LoadWordRight","MoveFromHi","MoveFromLo","MoveNonZero","MoveToHi","MoveToLo","MoveZero","Multiply","MultiplyToRegister","MultiplyUnsigned","Nor","Or","OrImmediate","Position","RType","RTypeInstruction","RTypeInstructionIter","SYSCALL_BRK","SYSCALL_CLONE","SYSCALL_EXIT_GROUP","SYSCALL_FCNTL","SYSCALL_MMAP","SYSCALL_READ","SYSCALL_WRITE","SetLessThan","SetLessThanImmediate","SetLessThanImmediateUnsigned","SetLessThanUnsigned","ShiftLeftLogical","ShiftLeftLogicalVariable","ShiftRightArithmetic","ShiftRightArithmeticVariable","ShiftRightLogical","ShiftRightLogicalVariable","Store16","Store32","Store32Conditional","Store8","StoreWordLeft","StoreWordRight","Sub","SubUnsigned","Sync","SyscallExitGroup","SyscallFcntl","SyscallMmap","SyscallOther","SyscallReadHint","SyscallReadOther","SyscallReadPreimage","SyscallWriteHint","SyscallWriteOther","SyscallWritePreimage","Variable","Xor","XorImmediate","access_memory","access_register","access_register_if","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","assert_boolean","assert_equal","assert_is_zero","bitmask","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_boolean","check_equal","check_is_zero","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cmp","cmp","cmp","cmp","constant","copy","count_leading_ones","count_leading_zeros","debugging","default","default","default","deref","deref","deref","deref","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","deref_mut","divmod","divmod_signed","drop","drop","drop","drop","drop","drop","drop","drop","eq","eq","eq","eq","equal","equivalent","equivalent","equivalent","equivalent","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","get_hash","get_hash","get_hash","get_hash","get_instruction_pointer","get_next_instruction_pointer","hash","hash","hash","hash","increase_heap_pointer","increase_instruction_counter","init","init","init","init","init","init","init","init","instruction_counter","interpret_instruction","interpret_itype","interpret_jtype","interpret_rtype","into","into","into","into","into","into","into","into","into_iter","into_iter","into_iter","into_iter","into_iter","inverse_or_zero","is_zero","iter","iter","iter","iter","len","len","len","len","lookup_16bits","lookup_2bits","lookup_8bits","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","next","next","next","next","next_back","next_back","next_back","next_back","nor_witness","nth","nth","nth","nth","or_witness","par_bridge","par_bridge","par_bridge","par_bridge","partial_cmp","partial_cmp","partial_cmp","partial_cmp","push_memory","push_memory_access","push_register","push_register_access","push_register_access_if","push_register_if","range_check16","range_check2","range_check64","range_check8","read_memory","read_register","report_exit","request_hint_write","request_preimage_write","set_halted","set_instruction_pointer","set_next_instruction_pointer","shift_left","shift_right","shift_right_arithmetic","sign_extend","size_hint","size_hint","size_hint","size_hint","sub_witness","test_less_than","test_less_than_signed","test_zero","to_column","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","variable","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","write_memory","write_register","write_register_if","xor_witness","InstructionParts","borrow","borrow_mut","clone","clone_into","decode","default","deref","deref_mut","deserialize","drop","encode","eq","equivalent","fmt","from","funct","init","into","op_code","rd","rs","rt","serialize","shamt","to_owned","try_from","try_into","type_id","vzip","NUM_REGISTERS","REGISTER_CURRENT_IP","REGISTER_HEAP_POINTER","REGISTER_HI","REGISTER_LO","REGISTER_NEXT_IP","REGISTER_PREIMAGE_KEY_END","REGISTER_PREIMAGE_KEY_START","REGISTER_PREIMAGE_OFFSET","Registers","borrow","borrow_mut","clone","clone_into","current_instruction_pointer","default","deref","deref_mut","deserialize","drop","fmt","from","general_purpose","heap_pointer","hi","index","index_mut","init","into","iter","lo","next_instruction_pointer","preimage_key","preimage_offset","serialize","to_owned","try_from","try_into","type_id","vzip","DecomposedMIPSTrace","MIPSTrace","init","new","pad_dummy","pad_with_row","pad_with_zeros","pad_witnesses","push_row","Env","MAX_ACC","MAX_NB_MEM_ACC","MAX_NB_REG_ACC","NUM_DECODING_LOOKUP_TERMS","NUM_GLOBAL_LOOKUP_TERMS","NUM_INSTRUCTION_LOOKUP_TERMS","NUM_LOOKUP_TERMS","SCRATCH_SIZE","SyscallEnv","add_constraint","add_lookup","add_witness","alloc_scratch","and_witness","bitmask","borrow","borrow","borrow_mut","borrow_mut","check_boolean","check_equal","check_is_zero","clone","clone_into","constant","copy","count_leading_ones","count_leading_zeros","create","create","decode_instruction","default","deref","deref","deref_mut","deref_mut","divmod","divmod_signed","drop","drop","equal","fetch_memory","fetch_memory_access","fetch_register","fetch_register_access","from","from","get_memory_access_page_index","get_memory_direct","get_memory_page_index","halt","hash_counter","increase_instruction_counter","init","init","instruction_counter","instruction_counter","into","into","inverse_or_zero","keccak_env","last_hint","last_memory_accesses","last_memory_write_index_accesses","memory","memory_write_index","mul_hi_lo","mul_hi_lo_signed","mul_signed_witness","next_instruction_counter","nor_witness","normalized_instruction_counter","or_witness","preimage","preimage_bytes_read","preimage_key","preimage_oracle","push_memory","push_memory_access","push_register_access_if","push_register_if","registers","registers_write_index","report_exit","request_hint_write","request_preimage_write","reset_scratch_state","scratch_state","scratch_state_idx","set_halted","shift_left","shift_right","shift_right_arithmetic","step","sub_witness","syscall_env","test_less_than","test_less_than_signed","test_zero","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","update_last_memory_access","update_last_memory_write_index_access","variable","vzip","vzip","write_column","write_field_column","xor_witness","PreImageOracle","PreImageOracleT","RW","ReadWrite","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","cmd","create","create_bidirectional_channel","deref","deref","deref","deref_mut","deref_mut","deref_mut","drop","drop","drop","from","from","from","get_preimage","get_preimage","hint","hint","hint_client","hint_server","init","init","init","into","into","into","oracle_client","oracle_server","reader","start","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","writer","fold","LookupMode","RAMLookup","Read","Write","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deref","deref","deref_mut","deref_mut","drop","drop","fmt","fmt","fmt","from","from","init","init","into","into","into_logup","new","numerator","read_if","read_one","to_owned","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","write_if","write_one","DecomposableTracer","DecomposedTrace","Foldable","Selector","Trace","Tracer","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","constraints","deref","deref","deref_mut","deref_mut","domain_size","domain_size","drop","drop","folding_constraints","folding_constraints","from","from","in_circuit","index","init","init","init","init","into","into","is_full","lookups","new","number_of_rows","pad_dummy","pad_dummy","pad_with_row","pad_with_row","pad_with_zeros","pad_with_zeros","pad_witnesses","push_row","push_row","reset","set_selector_column","to_folding_pair","to_folding_pair","to_owned","to_owned","trace","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","witness"],"q":[[0,"o1vm"],[19,"o1vm::cannon"],[271,"o1vm::cannon_cli"],[273,"o1vm::folding"],[417,"o1vm::keccak"],[488,"o1vm::keccak::column"],[706,"o1vm::keccak::constraints"],[732,"o1vm::keccak::environment"],[760,"o1vm::keccak::folding"],[787,"o1vm::keccak::helpers"],[810,"o1vm::keccak::interpreter"],[908,"o1vm::keccak::trace"],[917,"o1vm::keccak::witness"],[944,"o1vm::lookups"],[985,"o1vm::mips"],[996,"o1vm::mips::column"],[1031,"o1vm::mips::constraints"],[1093,"o1vm::mips::folding"],[1120,"o1vm::mips::interpreter"],[1485,"o1vm::mips::interpreter::debugging"],[1515,"o1vm::mips::registers"],[1555,"o1vm::mips::trace"],[1564,"o1vm::mips::witness"],[1679,"o1vm::preimage_oracle"],[1733,"o1vm::proof"],[1734,"o1vm::ramlookup"],[1779,"o1vm::trace"]],"d":["","Elliptic curve group of BN254","Domain size shared by the Keccak evaluations, MIPS …","Scalar field of BN254","","","","","","Modules mimicking the defined structures used by Cannon …","A CLI mimicking the Cannon CLI.","Integration with folding. Contains common trait …","Implementation of Keccak used by the zkVM.","Instantiation of the lookups for the VM project. …","MIPS interpreter. This module implements a zero-knowledge …","Preimage oracle interface used by the zkVM.","Proof system of the zkVM.","The RAM lookup argument.","Abstract execution traces, possible long, that can be …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An iterator over the variants of Challenge","Environment for the decomposable folding protocol, for a …","","Folding instance containing the commitment to a witness of …","Includes the data witness columns and also the dynamic …","","","Reuses the Alphas defined in the example of folding","Blinder used in the polynomial commitment scheme","","","","","","","","","","","","","","","Challenges for the proof. We do use 3 challenges:","","","","","","","","","","","","","Commitments to the witness columns, including the dynamic …","Corresponds to the omega evaluations, for both sides","Corresponds to the evaluations at ω, for both sides","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","Commitments to the witness columns, for both sides","Commitments to the witness columns, for both sides","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","Corresponds to the zeta*omega evaluations, for both sides …","Corresponds to the evaluations at ζω, for both sides …","","","This method takes an Instance and a commitment to zero and …","This method takes a witness and a vector of evaluations to …","","","","","Structure of the folded circuit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","All the names for constraints involved in the Keccak …","","Errors that can occur during the check of the witness","","","","","","","","","","","","","","","","","","","","","","","This module defines the custom columns used in the Keccak …","This module contains the constraints for one Keccak step.","","","","","","","This module contains the definition and implementation of …","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","This module defines the Keccak interpreter in charge of …","Calls U::from(self).","Calls U::from(self).","This function returns a vector of field elements that …","Standardizes a Keccak step to a common opcode","","","","","","","","","","","","This file contains the witness for the Keccak hash …","","Order of absorb steps in the computation depending on the …","An iterator over the variants of Absorbs","Block index inside the hash to enumerate preimage bytes","","","Column aliases used by the Keccak circuit. The number of …","","Hash identifier to distinguish inside the syscalls …","","The witness columns used by the Keccak circuit. The Keccak …","","","Total number of columns used in Keccak, including relation …","The maximum total number of witness columns used by the …","The number of columns required for the Keccak selectors. …","","","","","","","","","","","","Current step performs a round of the permutation. The …","","","Current step is a sponge","","","","","Variants of Keccak sponges","An iterator over the variants of Sponges","","Hash step identifier to distinguish inside interstep …","Variants of Keccak steps available for the interpreter. …","An iterator over the variants of Steps","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","Map the column alias to the actual column index. Note that …","Map the column alias to the actual column index. Note that …","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Iterate over the instruction variants","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","This struct contains all that needs to be kept track of …","","","","","","","","","Constraints that are added to the circuit","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Variables that are looked up in the circuit","","","","","","","","This struct contains all that needs to be kept track of …","","","","","Environment for the constraints (includes lookups). The …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","Starts a new Keccak environment for a given hash index and …","Nullifies the Witness and Constraint environments by …","Returns the selector of the current step in standardized …","Entrypoint for the interpreter. It executes one step of …","Current step","","","","","This function updates the next step of the environment …","","Environment for the witness (includes multiplicities)","Writes an integer value to a column of the Keccak witness","Writes a field value to a column of the Keccak witness","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Map a column alias to the corresponding witness column.","Map a selector column to the corresponding witness column.","","Calls U::from(self).","","","","","","This trait contains helper functions for arithmetic …","This trait contains helper functions for boolean …","This trait contains helper functions for the lookups used …","Degree-2 variable encoding whether at least one of the two …","Degree-2 variable encoding whether the input is a boolean …","Degree-2 variable encoding whether the first input is …","Degree-1 variable encoding whether the input is the value …","","Adds a lookup to the Byte table","Adds a lookup to the Pad table","Adds a lookup to the RangeCheck16 table","Adds a lookup to the Reset table","Adds a lookup to the RoundConstants table","Adds a lookup to the Shift table","Degree-1 variable encoding the negation of the input Note: …","Returns a variable representing the value one","Degree-2 variable encoding the OR of two variables, which …","","Returns a variable representing the value two","Returns a variable representing the value 2^x","","Degree-2 variable encoding the XOR of two variables which …","Returns a variable representing the value zero","This trait includes functionalities needed to obtain the …","","","Adds a given Lookup to the environment if the condition …","This function returns a degree-2 variable that is computed …","Returns the block index as a variable","Returns a variable that encodes the idx-th block of bytes …","Creates a variable from a constant integer","Creates a variable from a constant field element","Adds one KeccakConstraint to the environment if the …","Constrains 332 checks of absorb sponges","Constrains 136 checks of booleanity for some mode flags.","Constrains 200 checks of the chi algorithm in round steps","Constrains 136 checks of correctness of mode flags","Constrains 4 checks of the iota algorithm in round steps","Constrains 6 checks of padding absorb sponges","Constrains 150 checks of the pirho algorithm in round steps","Constrains 389 checks of round steps","Constrains 354 checks of sponge steps","Constrains 16 checks of squeeze sponges","Constrains 35 checks of the theta algorithm in round steps","Creates all 879 constraints/checks to the environment:","Returns the (x,q)-th term of ThetaDenseC, as a variable","Returns the (y,x,q)-th variable of PiRhoDenseE","Returns the (x,q)-th variable of ThetaDenseRotC","Returns the (y,x,q)-th variable of PiRhoDenseRotE","Returns the (x,q)-th variable of ThetaExpandRotC","Returns the (y,x,q)-th variable of PiRhoExpandRotE","Returns a vector of pad bytes flags as variables, with idx …","This function returns the composed variable from dense …","COLUMN OPERATIONS /// This function returns the composed …","Returns the hash index as a variable","Returns a variable that encodes whether the idx-th byte of …","Returns the 100 step input variables, which correspond to …","Returns a slice of the input variables of the current step …","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a variable that encodes whether the current step …","SELECTOR OPERATIONS /// Returns a degree-2 variable that …","Returns a variable that encodes whether the current step …","Reads a Lookup containing the input of a step and writes a …","When in Squeeze mode, writes a Lookup containing the …","When in Absorb mode, reads Lookups containing the 136 …","Creates all possible lookups to the Keccak constraints …","Adds the 800 lookups required for Chi in the round","Adds the 1 lookup required for Iota in the round","Adds the 700 lookups required for PiRho in the round","Adds the 120 lookups required for Theta in the round","Adds the 601 lookups required for the sponge","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a degree-1 variable that encodes whether the …","Returns a variable that encodes whether the current step …","Returns a variable that encodes whether the current step …","Returns the idx-th new state expanded quarter, as a …","Returns the idx-th old state expanded quarter, as a …","Returns the 100 step output variables, which correspond to …","Returns a slice of the output variables of the current …","Returns the 136 flags indicating which bytes of the new …","Returns a variable that encodes the bytelength of the …","Returns a variable that encodes the idx-th chunk of the …","Returns the (x)-th term of ThetaQuotientC, as a variable","Returns the (y,x,q)-th variable of PiRhoQuotientE","Returns the (x,q)-th variable of ThetaRemainderC","Returns the (y,x,q)-th variable of PiRhoRemainderE","Returns a variable that encodes the current round number […","Returns the 4 expanded quarters that encode the round …","Returns the (i,y,x,q)-th variable of ChiShiftsB","Returns the (i,x,q)-th variable of ThetaShiftsC","Returns the (i,y,x,q)-th variable of PiRhoShiftsE","Returns the (i,y,x,q)-th variable of ChiShiftsSum","Returns the idx-th byte of the sponge, as a variable","Returns the 200 bytes of the sponge, as variables","Returns the idx-th term of the shifts of the sponge, as a …","Returns the last 32 terms that are added to the new block …","Returns the (y,x,q)-th input of the theta algorithm, as a …","Returns the idx-th output of a round step as a variable","Returns the step index as a variable","Returns a variable that encodes the value 2^pad_length","Returns the variable corresponding to a given column alias.","Returns the 20 variables corresponding to ThetaDenseC","Returns the 100 variables corresponding to PiRhoDenseE","Returns the 20 variables corresponding to ThetaDenseRotC","Returns the 100 variables corresponding to PiRhoDenseRotE","Returns the 20 variables corresponding to ThetaExpandRotC","Returns the 100 variables corresponding to PiRhoExpandRotE","Returns the 5 variables corresponding to ThetaQuotientC","Returns the 100 variables corresponding to PiRhoQuotientE","Returns the 20 variables corresponding to ThetaRemainderC","Returns the 100 variables corresponding to PiRhoRemainderE","Returns the 400 variables corresponding to ChiShiftsB","Returns the 80 variables corresponding to ThetaShiftsC","Returns the 400 variables corresponding to PiRhoShiftsE","Returns the 400 variables corresponding to ChiShiftsSum","Returns the 400 terms that compose the shifts of the …","Returns the output of an absorb sponge, which is the XOR …","The Keccak circuit trace","A Keccak instruction trace","","","","","","","","This struct contains all that needs to be kept track of …","","","","","","","","Checks the constraint tag by checking that the input x is …","","","","","","Returns the argument unchanged.","","Calls U::from(self).","The multiplicities of each lookup entry. Should not be …","The fixed tables used in the Keccak gate","","","","","","","","The full state of the Keccak gate (witness)","Values from 0 to 4 to check the number of bytes read from …","All values that can be stored in a byte (amortized table, …","Input/Output of Keccak steps","All of the possible lookup table IDs used in the zkVM","","All [1..136] values of possible padding lengths, the value …","Single-column table of all values in the range [0, 2^16)","","Dual-column table of all values in the range [0, 2^16) and …","24-row table with all possible values for round and their …","Single-column table of 2^16 entries with the sparse …","Syscalls communication channel","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Abstract columns (or variables of our multi-variate …","","Represents one line of the execution trace of the virtual …","All the witness columns used in MIPS","The number of columns used for relation witness in the …","The number of witness columns used to store the …","","","","","","","","","","","","","Returns the argument unchanged.","","","Map the column alias to the actual column index.","Map the column alias to the actual column index.","","","","Calls U::from(self).","","","","","","","","","The environment keeping the constraints between the …","","","","","","","","","","","","","A list of constraints, which are multi-variate polynomials …","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","This function checks that the preimage is read correctly. …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Map a selector column to the corresponding witness column.","Map a column alias to the corresponding witness column.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","An iterator over the variants of ITypeInstruction","","An iterator over the variants of Instruction","","","","An iterator over the variants of JTypeInstruction","","","","","","","","","","","","","","","","","","","","","","","","","A position can be seen as an indexed variable","","","An iterator over the variants of RTypeInstruction","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Access the memory address addr, adding constraints …","Access the general purpose register with index idx, adding …","Access the general purpose register with index idx, adding …","Add a constraint to the proof system, asserting that …","","Returns x + y and the overflow bit, storing the results in …","Allocate a new abstract variable for the current step. The …","Returns x or y, storing the result in position.","Assert that the value x is boolean, and add a constraint …","Assert that the values x and y are equal, and add a …","Assert that the value assert_equals_zero is 0, and add a …","Extract the bits from the variable x between highest_bit …","","","","","","","","","","","","","","","","","Check that the witness value x is a boolean (0 or 1); …","Check that the witness values in x and y are equal; …","Check that the witness value in assert_equals_zero is 0; …","","","","","","","","","","","","","","","","","","","","","","","Returns the number of leading 1s in x, storing the result …","Returns the number of leading 0s in x, storing the result …","","","","","","","","","","","","","","","","","","","","","Returns (x / y, x % y), storing the results in …","Returns (x / y, x % y), storing the results in …","","","","","","","","","","","","","Returns 1 if x is equal to y, or 0 otherwise, storing the …","","","","","Fetch the memory value at address addr and store it in …","Fetch the last ‘access index’ that the memory at …","Fetch the value of the general purpose register with index …","Fetch the last ‘access index’ for the general purpose …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","Increases the heap pointer by by_amount if if_is_true is 1…","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Iterate over the instruction variants","","","","","Returns x^(-1), or 0 if x is 0, storing the result in …","","","","","","","","","","Adds a lookup to the RangeCheck16Lookup table","Adds a lookup to the AtMost4Lookup table","Adds a lookup to the ByteLookup table","Returns ((x * y) >> 32, (x * y) & ((1 << 32) - 1)), …","Returns ((x * y) >> 32, (x * y) & ((1 << 32) - 1)), …","Returns x * y, where x and y are treated as integers, …","","","","","","","","","Returns x nor y, storing the result in position.","","","","","Returns x or y, storing the result in position.","","","","","","","","","Set the memory value at address addr to value.","Set the last ‘access index’ for the memory at address …","Set the general purpose register with index idx to value.","Set the last ‘access index’ for the general purpose …","Set the last ‘access index’ for the general purpose …","Set the general purpose register with index idx to value …","Range checks with 2 lookups to the RangeCheck16Lookup …","Range checks with 1 lookup to the AtMost4Lookup table 0 <= …","","Range checks with 2 lookups to the ByteLookup table that a …","","","","","Request the preimage oracle for len bytes and store the …","","","","Return the result of shifting x by by, storing the result …","Return the result of shifting x by by, storing the result …","Return the result of shifting x by by, storing the result …","Given a variable x, this function extends it to a signed …","","","","","Returns x + y and the underflow bit, storing the results …","Returns 1 if x < y as unsigned integers, or 0 otherwise, …","Returns 1 if x < y as signed integers, or 0 otherwise, …","Returns 1 if x is 0, or 0 otherwise, storing the result in …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns x xor y, storing the result in position.","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","This represents the internal state of the virtual machine.","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","","","","","","","","","","","","The MIPS circuit trace","The MIPS instruction trace","","","","","","","","This structure represents the environment the virtual …","Maximum number of memory or register accesses per …","Maximum number of memory accesses per instruction (based …","Maximum number of register accesses per instruction (based …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","Computes what is the non-normalized next instruction …","","The actual number of instructions executed results from …","","","","","","","","","","","","","","","","","","","","","","Execute a single step of the MIPS program. Returns the …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","FIXME: DUMMY FOLD FUNCTION THAT ONLY KEEPS THE LAST …","Enum representing the two different modes of a RAMLookup","Struct containing a RAMLookup","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Transforms the current RAMLookup into an equivalent Logup","Creates a new RAMLookup from a mode, a table ID, a …","Returns the numerator corresponding to this lookup in the …","Reads one value when if_is_true is 1.","Reads one value from a table.","","","","","","","","","","","","Writes one value when if_is_true is 1.","Writes one value to a table.","DecomposableTracer builds traces for some program …","Struct representing a circuit execution trace which is …","The trait Foldable describes structures that can be folded.","","Implement a trace for a single instruction.","Tracer builds traces for some program executions. The …","","","","","","","","","","","","","","","The domain size of the circuit (should coincide with that …","","","Returns a map of constraints that are compatible with …","","Returns the argument unchanged.","Returns the argument unchanged.","Returns a boolean indicating whether the witness for the …","","Initialize a new trace with the given domain size, …","","","","Calls U::from(self).","Calls U::from(self).","Returns whether the witness for the given selector has …","","Create a new decomposable trace with the given domain …","Returns the number of rows that have been instantiated for …","Pad the rows of one opcode with the first row until …","","Pad the rows of one opcode with the given row until …","","Pads the rows of one opcode with zero rows until reaching …","","Pads the rows of the witnesses until reaching the domain …","Add a witness row to the circuit (only for relation …","","Resets the witness after folding","Sets the selector column to all ones, and the rest to all …","Returns the witness for the given selector as a folding …","","","","The traces are indexed by the selector Inside the witness …","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,9,10,4,13,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,13,15,5,6,9,10,13,15,16,18,1,2,3,4,5,6,16,18,1,5,6,16,15,15,6,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,18,9,10,15,15,3,13,3,9,10,13,15,16,18,1,2,3,4,5,6,3,9,10,13,15,16,18,1,2,3,4,5,6,15,15,15,3,2,5,15,3,15,3,15,15,15,3,3,15,13,15,5,3,3,5,15,4,0,3,6,4,1,2,3,4,5,6,15,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,9,10,13,15,16,18,1,2,3,4,5,6,0,0,32,0,0,0,0,0,0,32,32,37,37,31,34,32,35,37,39,31,34,32,35,37,39,31,34,37,32,35,37,39,32,35,37,39,31,34,37,39,37,31,34,31,34,32,35,37,39,31,34,32,35,37,39,31,34,32,35,37,39,32,39,32,39,32,35,37,39,31,34,32,32,35,37,39,37,37,32,39,32,39,37,39,31,34,32,35,37,39,31,34,31,34,32,35,37,39,35,32,35,31,34,35,35,31,34,35,35,37,39,31,34,35,31,34,37,32,35,37,39,31,34,32,35,37,39,31,34,32,35,37,39,31,34,32,35,37,39,31,34,32,35,37,39,39,60,60,60,60,0,60,60,60,0,59,0,60,59,60,60,60,60,60,0,60,0,60,60,60,60,59,60,59,60,59,60,59,60,0,0,59,60,59,60,59,60,0,59,60,59,60,59,60,0,59,60,0,59,60,0,59,60,0,0,59,60,0,59,60,59,60,59,60,59,60,0,65,0,0,63,63,63,0,67,63,63,0,67,67,0,0,0,67,63,63,63,63,63,63,63,63,63,63,62,63,63,62,63,63,63,63,0,0,65,63,0,0,63,63,63,63,63,63,63,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,65,67,65,67,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,65,67,63,62,65,67,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,65,67,63,62,65,67,70,70,70,70,63,62,64,65,66,67,68,63,62,64,65,66,67,68,62,64,66,68,63,62,65,67,64,66,68,64,66,68,64,66,68,64,66,68,64,66,68,63,62,65,67,64,66,68,63,62,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,64,65,66,67,68,63,62,64,65,66,67,68,0,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,0,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,0,0,0,0,75,75,75,75,75,75,75,75,75,75,75,75,75,76,76,76,75,75,75,75,75,75,75,0,0,0,127,127,127,127,127,128,128,128,128,128,128,127,129,127,128,129,129,128,127,129,0,0,77,77,130,130,130,77,77,77,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,77,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,0,0,78,79,78,78,78,79,78,0,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,72,72,72,0,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,0,0,0,0,0,0,0,0,0,0,0,0,82,0,0,0,0,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,83,83,83,83,82,82,82,82,82,82,82,82,82,82,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,86,86,86,86,86,86,86,86,86,86,86,86,86,87,87,87,86,86,86,86,86,86,86,89,93,93,89,89,93,93,93,93,93,93,93,89,89,89,89,0,0,0,0,0,0,0,84,0,0,0,0,0,84,0,0,91,91,89,89,93,93,93,93,93,93,93,93,89,89,89,89,89,89,89,89,89,89,89,93,95,84,0,0,0,0,0,0,0,0,0,89,93,93,89,89,89,89,89,89,89,93,93,93,93,93,93,89,89,89,89,89,89,89,89,89,89,89,89,89,95,89,93,95,95,95,95,95,95,95,95,95,95,95,95,84,88,89,90,91,92,93,94,84,88,89,90,91,92,93,94,95,95,95,84,88,89,90,91,92,93,94,84,88,89,90,91,92,93,94,84,89,91,93,95,95,95,95,0,89,91,93,84,88,89,90,91,92,93,94,84,88,89,90,91,92,93,94,95,95,84,88,89,90,91,92,93,94,84,89,91,93,95,84,89,91,93,95,95,95,95,84,88,89,90,91,92,93,94,84,88,89,90,91,92,93,94,84,89,91,93,95,95,84,89,91,93,95,95,84,88,89,90,91,92,93,94,95,0,0,0,0,84,88,89,90,91,92,93,94,84,88,90,92,94,95,95,84,89,91,93,88,90,92,94,95,95,95,95,95,95,88,90,92,94,88,90,92,94,95,88,90,92,94,95,88,90,92,94,84,89,91,93,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,88,90,92,94,95,95,95,95,84,84,88,89,90,91,92,93,94,84,88,89,90,91,92,93,94,84,88,89,90,91,92,93,94,84,88,89,90,91,92,93,94,95,84,88,89,90,91,92,93,94,95,95,95,95,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,0,0,0,0,0,0,0,0,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,0,102,103,102,102,102,103,102,0,0,0,0,0,0,0,0,0,0,105,105,105,105,105,105,105,106,105,106,105,105,105,106,106,105,105,105,105,105,106,105,106,105,106,105,106,105,105,105,106,105,105,105,105,105,105,106,105,105,105,105,105,105,105,106,105,105,105,106,105,105,106,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,105,106,105,106,105,106,105,106,105,105,105,105,106,105,105,105,0,0,0,0,107,131,132,107,131,132,107,107,0,107,131,132,107,131,132,107,131,132,107,131,132,104,107,104,107,107,107,107,131,132,107,131,132,107,107,131,107,107,131,132,107,131,132,107,131,132,107,131,132,131,0,0,0,112,112,112,73,112,73,112,73,112,73,112,73,112,73,112,73,112,73,73,112,73,112,73,112,73,73,73,73,73,73,112,73,73,112,73,112,73,112,73,112,73,73,73,0,0,0,133,0,0,121,122,121,122,121,122,121,122,121,121,122,121,122,121,122,121,122,134,122,121,122,122,122,133,121,122,122,121,122,122,121,135,122,133,122,133,122,133,122,135,133,122,122,122,134,122,121,122,122,121,122,121,122,121,122,121,122,121],"f":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[[]],[[]],[[]],[[]],[[]],[[]],[[[8,[7]]],9],[[[8,[7]]],10],[11,4],0,[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[12,[[14,[13]]]],[12,[[14,[15]]]],[12,[[14,[5]]]],[12,[[14,[6]]]],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[16,16],17],[[18,18],17],[[1,1],17],[[5,5],17],[[6,6],17],[[],17],0,0,[[6,19],[[21,[20]]]],[[13,22],23],[[15,22],23],[[16,22],23],[[18,22],23],[[1,22],23],[[2,22],23],[[3,22],23],[[4,22],23],[[5,22],23],[[6,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[24,[[14,[18]]]],[9,[[8,[7]]]],[10,[[8,[7]]]],0,0,0,0,0,[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[13,25],14],[[15,25],14],0,0,0,0,0,0,[24,[[14,[1,20]]]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[15,20],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],27],[28,3],0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[31,[29,30]],32,33]],[[[34,[29,30]],32,33]],0,[32,32],[35,35],[[[37,[[0,[30,36]]]]],[[37,[[0,[30,36]]]]]],[[[39,[[0,[30,38]]]]],[[39,[[0,[30,38]]]]]],[[]],[[]],[[]],[[]],[[[31,[29,30]],40,33],41],[[[34,[29,30]],40,33],41],[[[37,[36]],[37,[36]]],[[37,[36]]]],[[[39,[38]],[39,[38]],38],[[39,[38]]]],0,0,0,[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[32,32],17],[[[39,[[0,[42,38]]]],[39,[[0,[42,38]]]]],17],[[],17],[[],17],[[32,22],23],[[35,22],23],[[[37,[[0,[43,36]]]],22],23],[[[39,[[0,[43,38]]]],22],23],[[]],[[]],[44,32],[[]],[[]],[[]],[[]],[[[37,[36]]],45],[[[37,[36]]]],[[[0,[46,47]],48],49],[[[0,[46,47]],48],49],[[32,50]],[[[39,[[0,[46,38]]]],50]],[[[37,[36]],32]],[[[39,[51]],52]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],35],[35,11],[[[53,[37]],[53,[39]]],[[31,[29,30]]]],[[[53,[37]],[53,[39]]],[[34,[29,30]]]],[35,21],[35,21],0,0,[[35,11],21],[[],54],[[],55],[[[57,[56]]],58],[[[31,[29,30]],33],41],[[[34,[29,30]],33],41],[35],0,0,[[[37,[36]]]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[]],[[]],[[]],[[]],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[59,59],[60,60],[[]],[[]],0,0,[11],[11],[11],[11],[11],[11],0,[[59,59],17],[[60,60],17],[[],17],[[],17],[[59,22],23],[[60,22],23],0,[[]],[[]],0,[[],11],[[],11],0,[[]],[[]],[11,[[53,[61]]]],[62,62],[[]],[[]],0,[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[63,63],[62,62],[64,64],[65,65],[66,66],[67,67],[68,68],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[63,63],69],[[62,62],69],[[65,65],69],[[67,67],69],[[],65],[[],67],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[63,63],17],[[62,62],17],[[65,65],17],[[67,67],17],[[],17],[[],17],[[],17],[[],17],[[63,22],23],[[62,22],23],[[64,22],23],[[65,22],23],[[66,22],23],[[67,22],23],[[68,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[46,47]],48],49],[[[0,[46,47]],48],49],[[[0,[46,47]],48],49],[[[0,[46,47]],48],49],[[63,50]],[[62,50]],[[65,50]],[[67,50]],[[[70,[30]],63]],[[[70,[30]],62]],[[[70,[30]],63]],[[[70,[30]],62]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[62],[[]],[[]],[[]],[63,17],[[],64],[[],66],[[],68],[64,11],[66,11],[68,11],[64,21],[66,21],[68,21],[64,21],[66,21],[68,21],[[64,11],21],[[66,11],21],[[68,11],21],[[],54],[[],54],[[],54],[[63,63],[[21,[69]]]],[[62,62],[[21,[69]]]],[[65,65],[[21,[69]]]],[[67,67],[[21,[69]]]],[64],[66],[68],[63,52],[62,52],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[71,[61]],[73,[72]]]],[[]],[[]],[[[71,[30]]],[[71,[30]]]],[[]],[49],[61],[[[71,[61]],60]],0,[[],[[71,[61]]]],[11],[11],[11],[[[71,[43]],22],23],[[]],[[],11],[[]],0,[[]],[[],14],[[],14],[49],[[],26],[[[71,[61]],63]],[[]],0,[[]],[[]],[[[74,[30]]],[[74,[30]]]],[[]],0,[[],[[74,[61]]]],[11],[11],[11],[[[74,[43]],22],23],[[]],[[],11],[[]],[[49,[41,[7]]],[[74,[61]]]],[[[74,[61]]]],[[[74,[61]]],62],[[[74,[61]]]],0,[[]],[[],14],[[],14],[[],26],[[[74,[61]]]],[[]],0,[[[74,[61]],63,49]],[[[74,[61]],63,61]],0,0,0,0,[[]],[[]],[75,75],[[]],[11],[11],[11],[[75,75],17],[[],17],[[75,22],23],[[]],[[[0,[46,47]],48],49],[[75,50]],[[76,63]],[[76,52]],[[76,62]],[[],11],[[]],[[]],[[],14],[[],14],[[],26],[[]],0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[8],[[]],[[]],[8],[[]],[[]],[[]],[[]],[8],[[]],[49],[8],[[]],[[]],0,0,0,[[[73,[72]]]],[11],[[]],[11,8],[49],[[]],[60],[62],[[77,62]],[[62,[8,[[8,[8]]]]],[[8,[[8,[8]]]]]],[[77,62]],[[62,[8,[[8,[8]]]]]],[62],[[62,[8,[[8,[8]]]]],[[8,[[8,[8]]]]]],[62],[62],[62],[62,[[8,[[8,[8]]]]]],[62],[[11,11]],[[11,11,11]],[[11,11]],[[11,11,11]],[[11,11]],[[11,11,11]],[11,8],[[41,[21,[11]],11]],[[41,[21,[11]],[21,[11]],[21,[11]],[21,[11]]]],[[]],[11],[[],53],[[],8],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[62],[11],[11],[[],53],[[],8],[[],53],[[]],[11],[11],[[11,11,11]],[[11,11]],[[11,11,11]],[[]],[[],53],[[11,11,11,11]],[[11,11,11]],[[11,11,11,11]],[[11,11,11,11]],[11],[[],53],[11],[[],53],[[11,11,11]],[11],[[]],[[]],[63],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[[],53],[11],0,0,[[11,62,74],78],[[11,74],79],[78,11],[[78,53],11],[78,11],[79],[[78,53]],0,[[[80,[61]],[73,[72]]]],[[]],[[]],[[[80,[30]]],[[80,[30]]]],[[]],[49],[61],[[[80,[61]],60]],[[],[[80,[61]]]],[11],[11],[11],[[[80,[43]],22],23],[[]],[[],11],[[]],0,0,[[]],[[],14],[[],14],[49],[[],26],[[[80,[61]],63]],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,[[],[[8,[72]]]],[[]],[[]],[72,72],[[]],[[72,72],69],[11],[11],[11],[[72,72],17],[[],17],[[72,22],23],[[]],[19,72],[[[0,[46,47]],48],49],[[72,50]],[[],11],[[]],[72,17],[[72,[41,[81]]],[[21,[11]]]],[72,11],[[72,72],[[21,[69]]]],[72,17],[[]],[72,19],[[],14],[[],14],[[],26],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[82,82],[[]],[[82,82],69],[11],[11],[11],[[82,82],17],[[],17],[[82,22],23],[[]],[[[0,[46,47]],48],49],[[82,50]],[[[83,[30]],84]],[[[83,[30]],82]],[[[83,[30]],82]],[[[83,[30]],84]],[[],11],[[]],[82,17],[[82,82],[[21,[69]]]],[82,52],[[]],[[],14],[[],14],[[],26],[[]],0,[[[85,[61]]]],[[[85,[61]],[73,[72]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]],19,19]],[[]],[[]],[[]],[[]],[[]],[19],0,[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[],[[85,[61]]]],[11],[11],[[[85,[61]]]],[[[85,[61]]]],[11],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[]],[[[85,[61]]]],[[],11],[[[85,[61]]]],[[]],[[[85,[61]]]],0,[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],0,[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[[85,[61]]]],[[],14],[[],14],[[],26],[[[85,[61]]]],[[]],[[[85,[61]]]],0,0,0,0,[[]],[[]],[86,86],[[]],[11],[11],[11],[[86,86],17],[[],17],[[86,22],23],[[]],[[[0,[46,47]],48],49],[[86,50]],[[87,84]],[[87,52]],[[87,82]],[[],11],[[]],[[]],[[],14],[[],14],[[],26],[[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[[73,[72]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[84,84],[88,88],[89,89],[90,90],[91,91],[92,92],[93,93],[94,94],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[84,84],69],[[89,89],69],[[91,91],69],[[93,93],69],[19],[[]],[[]],[[]],0,[[],89],[[],91],[[],93],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[11],[11],[11],[11],[11],[11],[11],[11],[[84,84],17],[[89,89],17],[[91,91],17],[[93,93],17],[[]],[[],17],[[],17],[[],17],[[],17],[[]],[[]],[[]],[[]],[[84,22],23],[[88,22],23],[[89,22],23],[[90,22],23],[[91,22],23],[[92,22],23],[[93,22],23],[[94,22],23],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[[0,[46,47]],48],49],[[[0,[46,47]],48],49],[[[0,[46,47]],48],49],[[[0,[46,47]],48],49],[[]],[[]],[[84,50]],[[89,50]],[[91,50]],[[93,50]],[[]],[[]],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[],11],[[]],[[95,84]],[[95,93]],[[95,91]],[[95,89]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[84],[[]],[[]],[[]],[[]],[[]],[[]],[[],88],[[],90],[[],92],[[],94],[88,11],[90,11],[92,11],[94,11],[[]],[[]],[[]],[[]],[[]],[[]],[88,21],[90,21],[92,21],[94,21],[88,21],[90,21],[92,21],[94,21],[[]],[[88,11],21],[[90,11],21],[[92,11],21],[[94,11],21],[[]],[[],54],[[],54],[[],54],[[],54],[[84,84],[[21,[69]]]],[[89,89],[[21,[69]]]],[[91,91],[[21,[69]]]],[[93,93],[[21,[69]]]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[[]],[[]],[19],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[19],[88],[90],[92],[94],[[]],[[]],[[]],[[]],[84,52],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[],26],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[96,96],[[]],[19,96],[[],96],[11],[11],[12,[[14,[96]]]],[11],[96,19],[[96,96],17],[[],17],[[96,22],23],[[]],0,[[],11],[[]],0,0,0,0,[[96,25],14],0,[[]],[[],14],[[],14],[[],26],[[]],0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[[97,[30]]],[[97,[30]]]],[[]],0,[[],[[97,[98]]]],[11],[11],[12,[[14,[[97,[99]]]]]],[11],[[[97,[43]],22],23],[[]],0,0,0,[[[97,[30]],11]],[[[97,[30]],11]],[[],11],[[]],[97,100],0,0,0,0,[[[97,[101]],25],14],[[]],[[],14],[[],14],[[],26],[[]],0,0,[[11,84,85],102],[[11,85],103],[102,11],[[102,53],11],[102,11],[103],[[102,53]],0,0,0,0,0,0,0,0,0,0,[[[105,[61,104]]]],[[[105,[61,104]],[73,[72]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]],19,19]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[106,106],[[]],[19],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[11,15,104],[[105,[61,104]]]],[15,106],[[[105,[61,104]]]],[[],106],[11],[11],[11],[11],[[[105,[61,104]]]],[[[105,[61,104]]]],[11],[11],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[]],[[]],[[[105,[61,104]],19],11],[[[105,[61,104]],19],7],[[[105,[61,104]],19],11],0,0,[[[105,[61,104]]]],[[],11],[[],11],[[[105,[61,104]]]],0,[[]],[[]],[[[105,[61,104]]]],0,0,0,0,0,0,[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]],49],[[[105,[61,104]]]],[[[105,[61,104]]],49],[[[105,[61,104]]]],0,0,0,0,[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],0,0,[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],0,0,[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]],3,6,4],84],[[[105,[61,104]]]],0,[[[105,[61,104]]]],[[[105,[61,104]]]],[[[105,[61,104]]]],[[]],[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[[105,[61,104]],11]],[[[105,[61,104]],11]],[[[105,[61,104]]]],[[]],[[]],[[[105,[61,104]],82,49]],[[[105,[61,104]],82,61]],[[[105,[61,104]]]],0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,[[[21,[2]]],107],[[],21],[11],[11],[11],[11],[11],[11],[11],[11],[11],[[]],[[]],[[]],[[[53,[7]]],9],[[107,[53,[7]]],9],[10],[[107,10]],0,0,[[],11],[[],11],[[],11],[[]],[[]],[[]],0,0,0,[107,108],[[],14],[[],14],[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[],26],[[]],[[]],[[]],0,[[109,[110,[72]],[111,[8]]]],0,0,0,0,[[]],[[]],[[]],[[]],[112,112],[[[73,[30,[0,[30,113]]]]],[[73,[30,[0,[30,113]]]]]],[[]],[[]],[11],[11],[11],[11],[11],[11],[[112,22],23],[[[73,[[0,[114,61]],113]],22],23],[[[73,[43,[0,[43,113]]]],22],23],[[]],[[]],[[],11],[[],11],[[]],[[]],[[[73,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]],[[120,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]]],[[112,113,[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],[41,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]]],[[73,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]]],[[[73,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]],[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113,[8,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]]],[[73,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]]],[[113,[8,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]]],[[73,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]]],[[]],[[]],[[],20],[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[]],[[]],[[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113,[8,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]]],[[73,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]]],[[113,[8,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]]]]],[[73,[[0,[30,[115,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[116,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],[117,[[0,[30,[115,[[0,[30,115,116,117,43,118,119]]]],[116,[[0,[30,115,116,117,43,118,119]]]],[117,[[0,[30,115,116,117,43,118,119]]]],43,118,119]]]],43,118,119]]]],43,118,119]],113]]]],0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[[121,[[0,[30,29]]]]],[[121,[[0,[30,29]]]]]],[[[122,[[0,[30,29]]]]],[[122,[[0,[30,29]]]]]],[[]],[[]],0,[11],[11],[11],[11],0,0,[11],[11],[[],[[124,[[8,[123]]]]]],[[[122,[29]]],[[124,[[8,[[123,[29]]]]]]]],[[]],[[]],[[[122,[29]]],17],[[[122,[29]]]],[11],[[],11],[11,[[122,[29]]]],[[],11],[[]],[[]],[[[122,[29]]],17],0,[11],[[[122,[29]]],11],[[],11],[[[122,[29]]],11],[53,11],[[[122,[29]],53],11],[[],11],[[[122,[29]]],11],[[]],[53],[[[122,[29]],53]],[[[122,[29]]]],[[[122,[29]],11]],[[56,125]],[[[122,[29]],126,56,125]],[[]],[[]],0,[[],14],[[],14],[[],14],[[],14],[[],26],[[],26],[[]],[[]],0],"c":[],"p":[[4,"StepFrequency"],[3,"HostProgram"],[3,"VmConfiguration"],[3,"Start"],[3,"Symbol"],[3,"Meta"],[15,"u8"],[3,"Vec"],[3,"Preimage"],[3,"Hint"],[15,"usize"],[8,"Deserializer"],[3,"Page"],[4,"Result"],[3,"State"],[3,"ParsePreimageKeyError"],[15,"bool"],[3,"PreimageKey"],[15,"u32"],[3,"String"],[4,"Option"],[3,"Formatter"],[6,"Result"],[15,"str"],[8,"Serializer"],[3,"TypeId"],[3,"Command"],[3,"ArgMatches"],[8,"FoldingConfig"],[8,"Clone"],[3,"DecomposedFoldingEnvironment"],[4,"Challenge"],[4,"Side"],[3,"FoldingEnvironment"],[3,"ChallengeIter"],[8,"CommitmentCurve"],[3,"FoldingInstance"],[8,"FftField"],[3,"FoldingWitness"],[4,"CurrOrNext"],[15,"slice"],[8,"PartialEq"],[8,"Debug"],[4,"ChallengeTerm"],[4,"Alphas"],[8,"Hash"],[8,"Sized"],[8,"BuildHasher"],[15,"u64"],[8,"Hasher"],[6,"Fp"],[4,"Column"],[15,"array"],[3,"IterBridge"],[3,"RelaxedInstance"],[3,"Radix2EvaluationDomain"],[3,"Evaluations"],[3,"RelaxedWitness"],[4,"Error"],[4,"Constraint"],[8,"Field"],[4,"Steps"],[4,"ColumnAlias"],[3,"StepsIter"],[4,"Sponges"],[3,"SpongesIter"],[4,"Absorbs"],[3,"AbsorbsIter"],[4,"Ordering"],[6,"KeccakWitness"],[3,"Env"],[4,"LookupTableIDs"],[3,"RAMLookup"],[3,"KeccakEnv"],[3,"KeccakConfig"],[6,"KeccakFoldingWitness"],[8,"Interpreter"],[6,"KeccakTrace"],[6,"DecomposedKeccakTrace"],[3,"Env"],[8,"PrimeField"],[4,"ColumnAlias"],[6,"MIPSWitness"],[4,"Instruction"],[3,"Env"],[3,"DecomposableMIPSFoldingConfig"],[6,"MIPSFoldingWitness"],[3,"InstructionIter"],[4,"RTypeInstruction"],[3,"RTypeInstructionIter"],[4,"JTypeInstruction"],[3,"JTypeInstructionIter"],[4,"ITypeInstruction"],[3,"ITypeInstructionIter"],[8,"InterpreterEnv"],[3,"InstructionParts"],[3,"Registers"],[8,"Default"],[8,"Deserialize"],[8,"Iterator"],[8,"Serialize"],[6,"MIPSTrace"],[6,"DecomposedMIPSTrace"],[8,"PreImageOracleT"],[3,"Env"],[3,"SyscallEnv"],[3,"PreImageOracle"],[3,"Child"],[3,"EvaluationDomains"],[3,"ProofInputs"],[3,"Witness"],[4,"LookupMode"],[8,"LookupTableID"],[8,"Display"],[8,"Add"],[8,"Sub"],[8,"Mul"],[8,"One"],[8,"Zero"],[3,"Logup"],[3,"Trace"],[3,"DecomposedTrace"],[4,"FoldingCompatibleExpr"],[3,"BTreeMap"],[3,"SRS"],[8,"FqSponge"],[8,"BoolHelpers"],[8,"LogupHelpers"],[8,"ArithHelpers"],[8,"KeccakInterpreter"],[3,"ReadWrite"],[3,"RW"],[8,"Tracer"],[8,"Foldable"],[8,"DecomposableTracer"]]},\ "poly_commitment":{"doc":"","t":"ICIQKKAKKKKKKAKAAKLKKKAKAKDDIIDQQDFLFFMLLLLLLLLALLLLLLLFFLLFMMMLLLLLLLLLLLLLLLMLLMMMMLLLLLLLLLLLLFLLLLLLLLLKMMFFLLLLFMFFLKFLLLLLLLLLLLLLLLLLLLDDLLLLLLMLLLLLLLLLLLLLLLLLLLLMLLLLMMLLLLLLLLLMLLMMNELLLLLLLLLLLLLLLLLLLDNENDLLLLLLMMLLLFLMLLLLLLLLLLLLLLLLLLLLLMLLLMLLLLLLLLLLLLLLMMDDLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLMLLLLLLLLLLLMLLLLDLLLLLLLLLLLLLLLLLLLLLLFLLLLMLMLLMLLLLLLLLLLLLLL","n":["OpenProof","PolyComm","SRS","SRS","add_lagrange_basis","blinding_commitment","chunked","commit","commit_custom","commit_evaluations","commit_evaluations_custom","commit_evaluations_non_hiding","commit_non_hiding","commitment","create","error","evaluation_proof","get_lagrange_basis","mask","mask_custom","max_poly_size","open","pairing_proof","size","srs","verify","BatchEvaluationProof","BlindedCommitment","CommitmentCurve","EndoCurve","Evaluation","Map","Params","PolyComm","absorb_commitment","add","b_poly","b_poly_coefficients","blinders","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","caml","chunk_blinding","chunk_commitment","clone","clone","clone_into","clone_into","combine","combine_commitments","combine_evaluations","combine_one","combine_one_endo","combined_inner_product","combined_inner_product","commitment","commitment","deref","deref","deref","deref","deref_mut","deref_mut","deref_mut","deref_mut","deserialize","deserialize","deserialize_as","drop","drop","drop","drop","elems","eq","equivalent","evalscale","evaluation_points","evaluations","evaluations","fmt","fmt","from","from","from","from","from","from","init","init","init","init","inner_prod","into","into","into","into","is_empty","len","map","multi_scalar_mul","new","of_coordinates","opening","polyscale","pows","product","scale","serialize","serialize","serialize_as","shift_scalar","sponge","squeeze_challenge","squeeze_prechallenge","sub","to_coordinates","to_group","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","zip","CamlOpeningProof","CamlPolyComm","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","delta","deref","deref","deref_mut","deref_mut","drop","drop","fmt","from","from","from","from","from","from_value","from_value","init","init","into","into","into_value","into_value","lr","ocaml_binding","ocaml_binding","ocaml_desc","ocaml_desc","sg","shifted","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","unique_id","unique_id","unshifted","vzip","vzip","z1","z2","BlindersDontMatch","CommitmentError","borrow","borrow_mut","clone","clone_into","deref","deref_mut","drop","fmt","fmt","from","init","into","provide","to_owned","to_string","try_from","try_into","type_id","vzip","Challenges","DensePolynomial","DensePolynomialOrEvaluations","Evaluations","OpeningProof","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","chal","chal_inv","challenges","clone","clone_into","combine_polys","default","delta","deref","deref","deref","deref_mut","deref_mut","deref_mut","deserialize","drop","drop","drop","fmt","from","from","from","from","init","init","init","into","into","into","lr","open","prechallenges","serialize","sg","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","verify","vzip","vzip","vzip","z1","z2","PairingProof","PairingSRS","add_lagrange_basis","blinding","blinding_commitment","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","commit","commit_custom","commit_evaluations","commit_evaluations_custom","commit_evaluations_non_hiding","commit_non_hiding","create","create","create","default","default","deref","deref","deref_mut","deref_mut","deserialize","deserialize","drop","drop","eq","equivalent","fmt","fmt","from","from","full_srs","get_lagrange_basis","init","init","into","into","mask","mask_custom","max_poly_size","open","quotient","serialize","serialize","size","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","verifier_srs","verify","verify","vzip","vzip","SRS","add_lagrange_basis","add_lagrange_basis","blinding_commitment","borrow","borrow_mut","clone","clone_into","commit","commit_custom","commit_evaluations","commit_evaluations_custom","commit_evaluations_non_hiding","commit_non_hiding","create","create","create_parallel","create_trusted_setup","default","deref","deref_mut","deserialize","drop","endos","eq","equivalent","fmt","from","g","get_lagrange_basis","h","init","into","lagrange_bases","mask","mask_custom","max_degree","max_poly_size","open","prover_polynomials_to_verifier_evaluations","serialize","size","to_owned","try_from","try_into","type_id","verify","vzip"],"q":[[0,"poly_commitment"],[26,"poly_commitment::commitment"],[142,"poly_commitment::commitment::caml"],[192,"poly_commitment::error"],[213,"poly_commitment::evaluation_proof"],[274,"poly_commitment::pairing_proof"],[339,"poly_commitment::srs"]],"d":["","","","","","Get the group element used for blinding commitments","","Commits a polynomial, potentially splitting the result in …","Commit to a polynomial, with custom blinding factors. It …","Commit to evaluations with blinding factors, generated …","Commit to evaluations with custom blinding factors. It is …","Commit to evaluations, without blinding factors. It is …","This function commits a polynomial using the SRS’ basis …","This module implements Dlog-based polynomial commitment …","","","This module contains the implementation of the polynomial …","Retrieve the precomputed Lagrange basis for the given …","Turns a non-hiding polynomial commitment into a hidding …","Same as SRS::mask except that you can pass the blinders …","The maximum polynomial degree that can be committed to","Parameters:","","","This module implements structures and methods to handle …","","Contains the batch evaluation","","A useful trait extending AffineCurve for commitments. …","A trait extending CommitmentCurve for endomorphisms. …","Contains the evaluation of a polynomial commitment at a …","","","A polynomial commitment.","","","Returns (1 + chal[-1] x)(1 + chal[-2] x^2)(1 + chal[-3] …","","","","","","","","","","","","Multiplies each blinding chunk of f with powers of zeta^n","Multiplies each commitment chunk of f with powers of zeta^n","","","","","","This function populates the parameters scalars and points. …","Combine the (chunked) evaluations of multiple polynomials. …","Combine where x1 = one","Combine where x1 = one","Computes the linearization of the evaluations of a …","","The commitment of the polynomial being evaluated. Note …","","","","","","","","","","","","","","","","","","","","scaling factor for polynomials","The actual evaluation points. Each field evaluations of …","Contains an evaluation table. For instance, for vanilla …","A list of evaluations, each supposed to correspond to a …","","","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Returns true if the commitment is empty.","Returns the length of the commitment.","","Performs a multi-scalar multiplication between scalars elm …","","","batched opening proof","scaling factor for evaluation point powers","pows(d, x) returns a vector containing the first d powers …","Returns the product of all the field elements belonging to …","","","","","Inside the circuit, we have a specialized scalar …","The sponge used to generate/absorb the challenges.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","","","vector of rounds of L & R commitments","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","Commitment round challenges (endo mapped) and their …","","","","","","","","","","","","","Same as prechallenges, but maps scalar challenges using the","","","Combine the polynomials using polyscale, creating a single …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Vector of rounds of L & R commitments","","Computes a log-sized vector of scalar challenges for …","","A final folded commitment base","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Create a pairing proof. Parameters:","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","The full SRS is the one used by the prover. Can be seen as …","","","","Calls U::from(self).","Calls U::from(self).","","","","Parameters:","","","","","","","","","","","","","SRS to be used by the verifier. Can be seen as the “…","","","","","","Compute commitments to the lagrange basis corresponding to …","","","","","","","Commits a polynomial, potentially splitting the result in …","","","","","This function commits a polynomial using the SRS’ basis …","This function creates SRS instance for circuits with …","","This function creates SRS instance for circuits with …","This function creates a trusted-setup SRS instance for …","","","","","","","","","","Returns the argument unchanged.","The vector of group elements for committing to polynomials …","","A group element used for blinding commitments","","Calls U::from(self).","Commitments to Lagrange bases, per domain size","Turns a non-hiding polynomial commitment into a hidding …","Same as SRS::mask except that you can pass the blinders …","","The maximum polynomial degree that can be committed to","This function opens polynomial commitments in batch plnms: …","This function is a debugging helper.","","","","","","","This function verifies a batch of polynomial commitment …",""],"i":[0,0,0,60,61,61,0,61,61,61,61,61,61,0,61,0,0,61,61,61,61,60,0,61,0,60,0,0,0,0,0,22,22,0,0,7,0,0,6,23,16,7,6,23,16,7,6,0,7,7,7,6,7,6,55,0,0,55,55,0,16,23,6,23,16,7,6,23,16,7,6,7,6,7,23,16,7,6,7,7,7,16,16,23,16,7,6,23,16,7,7,7,6,23,16,7,6,0,23,16,7,6,7,7,7,7,7,22,16,16,0,0,7,7,6,7,0,16,0,0,7,22,0,7,6,23,16,7,6,23,16,7,6,23,16,7,6,23,16,7,6,7,0,0,33,42,33,42,33,33,42,33,42,33,42,33,42,33,33,33,33,42,42,33,42,33,42,33,42,33,42,42,33,42,33,42,42,33,33,33,42,33,42,33,42,33,42,33,33,42,42,42,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,62,0,62,0,62,52,41,62,52,41,52,52,41,41,41,0,41,41,62,52,41,62,52,41,41,62,52,41,41,62,52,41,41,62,52,41,62,52,41,41,41,41,41,41,41,62,52,41,62,52,41,62,52,41,41,62,52,41,41,41,0,0,57,58,57,58,57,58,57,58,57,58,57,57,57,57,57,57,57,58,57,57,58,57,58,57,58,57,58,57,58,57,57,57,58,57,58,57,57,57,58,57,58,57,57,57,57,58,58,58,57,57,58,57,58,57,58,57,58,57,57,58,58,58,57,0,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,0,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59],"f":[0,0,0,0,[1],[[]],0,[[2,3,[0,[4,5]]],6],[[2,3,7],[[9,[6,8]]]],[[1,[10,[1]],[0,[4,5]]],6],[[1,[10,[1]],7],[[9,[6,8]]]],[[1,[10,[1]]],7],[[2,3],7],0,[3],0,0,[3,[[12,[[11,[7]]]]]],[[7,[0,[4,5]]],6],[[7,7],[[9,[6,8]]]],[[],3],[[13,13,[0,[14,15]],[0,[4,5]]]],0,[[],3],0,[[[13,[[16,[15]]]],[0,[4,5]]],17],0,0,0,0,0,0,0,0,[[[15,[18,14,[0,[19,20]]]],[7,[14]]]],[[[7,[21]],[7,[21]]],[[7,[21]]]],[[[13,[18]],18],18],[[[13,[18]]],[[11,[18]]]],0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],0,[[[7,[18]],18],18],[[[7,[22]]],[[7,[22]]]],[[[7,[14]]],[[7,[14]]]],[[[6,[[0,[22,14]]]]],[[6,[[0,[22,14]]]]]],[[]],[[]],[[13,13],11],[[[13,[[23,[22]]]],11,[11,[22]]]],[[[11,[[23,[22]]]]],11],[[13,13],11],[[13,13,24],11],[[19,19,[13,[[11,[[11,[19]]]]]]],19],0,0,0,[3],[3],[3],[3],[3],[3],[3],[3],[25,[[9,[[7,[[0,[26,27]]]]]]]],[25,[[9,[[6,[[0,[22,28]]]]]]]],[25,[[9,[7]]]],[3],[3],[3],[3],0,[[[7,[29]],[7,[29]]],17],[[],17],0,0,0,0,[[[7,[30]],31],32],[[[6,[[0,[22,30]]]],31],32],[[]],[[]],[33,[[7,[[0,[21,34,34]]]]]],[[]],[33,[[7,[[0,[21,34]]]]]],[[]],[[],3],[[],3],[[],3],[[],3],[[[13,[18]],[13,[18]]],18],[[]],[[]],[[]],[[]],[[[7,[[0,[26,27,14]]]]],17],[[[7,[[0,[26,27,14]]]]],3],[[[7,[[0,[26,27,14]]]],35],[[7,[[0,[26,27]]]]]],[[[13,[[7,[21]]]],13],[[7,[21]]]],[11,7],[[]],0,0,[[3,18],[[11,[18]]]],[36,18],[[[7,[21]]],[[7,[21]]]],[[[7,[[0,[26,27]]]],37],9],[[[6,[[0,[22,38]]]],37],9],[[7,37],9],[[]],0,[[[0,[19,20]],[15,[18,[0,[19,20]]]]],[[0,[19,20]]]],[[[15,[18,20]]],[[24,[20]]]],[[[7,[21]],[7,[21]]],[[7,[21]]]],[[],12],[[],22],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],39],[[],39],[[],39],[[],39],[[]],[[]],[[]],[[]],[[[7,[[0,[40,26,27]]]],[7,[[0,[40,26,27]]]]],[[12,[7]]]],0,0,[[]],[[]],[[]],[[]],[[[33,[14]]],[[33,[14]]]],[[]],0,[3],[3],[3],[3],[3],[3],[[[33,[30]],31],32],[[]],[[[7,[21]]],[[33,[[0,[[34,[21]],[34,[21]]]]]]]],[[[7,[21]]],[[33,[[34,[21]]]]]],[[[41,[21]]],[[42,[[34,[21]],34]]]],[[]],[43,[[33,[44]]]],[43,[[42,[44,44]]]],[[],3],[[],3],[[]],[[]],[[[33,[45]],46],43],[[[42,[45,45]],46],43],0,[[47,[12,[48]],17],49],[[47,[12,[48]],17],49],[[47,[13,[48]]],49],[[47,[13,[48]]],49],0,0,[[]],[[],9],[[],9],[[],9],[[],9],[[],39],[[],39],[[],50],[[],50],0,[[]],[[]],0,0,0,0,[[]],[[]],[8,8],[[]],[3],[3],[3],[[8,31],32],[[8,31],32],[[]],[[],3],[[]],[51],[[]],[[],49],[[],9],[[],9],[[],39],[[]],0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],0,0,[[[41,[21]],[15,[21]]],52],[[[41,[[0,[14,21]]]]],[[41,[[0,[14,21]]]]]],[[]],[[13,3]],[[],[[41,[[0,[53,21]]]]]],0,[3],[3],[3],[3],[3],[3],[25,[[9,[[41,[[0,[26,27,21]]]]]]]],[3],[3],[3],[[[41,[[0,[30,21]]]],31],32],[[]],[[]],[[]],[[[42,[[54,[21]],54]]],[[41,[21]]]],[[],3],[[],3],[[],3],[[]],[[]],[[]],0,[[13,13,[0,[14,[15,[[0,[21,22,55]]]]]],[0,[4,5]]],[[41,[[0,[21,22,55]]]]]],[[[41,[21]],[15,[21]]],[[11,[24]]]],[[[41,[[0,[26,27,21]]]],37],9],0,[[]],[[],9],[[],9],[[],9],[[],9],[[],9],[[],9],[[],39],[[],39],[[],39],[[[13,[[16,[[0,[21,22,55]],[15,[[0,[21,22,55]]]],[41,[[0,[21,22,55]]]]]]]],[0,[4,5]]],17],[[]],[[]],[[]],0,0,0,0,[[[57,[56]],1]],0,[[[57,[56]]],22],[[]],[[]],[[]],[[]],[[[58,[56]]],[[58,[56]]]],[[[57,[56]]],[[57,[56]]]],[[]],[[]],[[[57,[56]],[2,[19]],3,[0,[4,5]]],[[6,[22]]]],[[[57,[56]],2,3,7],[[9,[[6,[22]],8]]]],[[[57,[56]],1,[10,[1]],[0,[4,5]]],[[6,[22]]]],[[[57,[56]],1,[10,[1]],7],[[9,[[6,[22]],8]]]],[[[57,[56]],1,[10,[1]]],[[7,[22]]]],[[[57,[56]],2,3],[[7,[22]]]],[[[57,[56]],13,[13,[19]],19],[[12,[[58,[56]]]]]],[[19,3],[[57,[56]]]],[3,[[57,[56]]]],[[],[[58,[56]]]],[[],[[57,[56]]]],[3],[3],[3],[3],[25,[[9,[[58,[56]]]]]],[25,[[9,[[57,[56]]]]]],[3],[3],[[[57,[[0,[29,56]]]],[57,[[0,[29,56]]]]],17],[[],17],[[[58,[[0,[30,56]]]],31],32],[[[57,[[0,[30,56]]]],31],32],[[]],[[]],0,[[[57,[56]],3],[[12,[[11,[[7,[22]]]]]]]],[[],3],[[],3],[[]],[[]],[[[57,[56]],[7,[22]],[0,[4,5]]],[[6,[22]]]],[[[57,[56]],[7,[22]],7],[[9,[[6,[22]],8]]]],[[[57,[56]]],3],[[13,13,[0,[14,[15,[22,19]]]],[0,[4,5]]],[[58,[56]]]],0,[[[58,[56]],37],9],[[[57,[56]],37],9],[[[57,[56]]],3],[[]],[[]],[[],9],[[],9],[[],9],[[],9],[[],39],[[],39],0,[[[13,[[16,[22,[15,[22,19]],[58,[56]]]]]],[0,[4,5]]],17],[[[58,[56]],[57,[56]],[11,[[23,[22]]]],19,[13,[19]]],17],[[]],[[]],0,[[[59,[22]],1]],[[[59,[22]],1]],[[[59,[22]]],22],[[]],[[]],[[[59,[14]]],[[59,[14]]]],[[]],[[[59,[22]],2,3,[0,[4,5]]],[[6,[22]]]],[[[59,[22]],2,3,7],[[9,[[6,[22]],8]]]],[[[59,[22]],1,[10,[1]],[0,[4,5]]],[[6,[22]]]],[[[59,[22]],1,[10,[1]],7],[[9,[[6,[22]],8]]]],[[[59,[22]],1,[10,[1]]],[[7,[22]]]],[[[59,[22]],2,3],[[7,[22]]]],[3,[[59,[22]]]],[3,[[59,[22]]]],[3,[[59,[22]]]],[3,[[59,[22]]]],[[],[[59,[53]]]],[3],[3],[25,[[9,[[59,[[0,[26,27]]]]]]]],[3],[[]],[[[59,[29]],[59,[29]]],17],[[],17],[[[59,[30]],31],32],[[]],0,[[[59,[22]],3],[[12,[[11,[[7,[22]]]]]]]],0,[[],3],[[]],0,[[[59,[22]],[7,[22]],[0,[4,5]]],[[6,[22]]]],[[[59,[22]],[7,[22]],7],[[9,[[6,[22]],8]]]],[[[59,[22]]],3],[[[59,[22]]],3],[[[59,[55,22]],13,13,[0,[14,[15,[55,22]]]],[0,[4,5]]],[[41,[55,22]]]],[[[59,[22]],13,13],[[11,[[23,[22]]]]]],[[[59,[[0,[26,27]]]],37],9],[[[59,[22]]],3],[[]],[[],9],[[],9],[[],39],[[[59,[22]],[13,[[16,[22,[15,[22]],[41,[22]]]]]],[0,[4,5]]],17],[[]]],"c":[],"p":[[3,"Radix2EvaluationDomain"],[3,"DensePolynomial"],[15,"usize"],[8,"RngCore"],[8,"CryptoRng"],[3,"BlindedCommitment"],[3,"PolyComm"],[4,"CommitmentError"],[4,"Result"],[3,"Evaluations"],[3,"Vec"],[4,"Option"],[15,"slice"],[8,"Clone"],[8,"FqSponge"],[3,"BatchEvaluationProof"],[15,"bool"],[8,"Field"],[8,"PrimeField"],[8,"SquareRootField"],[8,"AffineCurve"],[8,"CommitmentCurve"],[3,"Evaluation"],[3,"ScalarChallenge"],[8,"Deserializer"],[8,"CanonicalDeserialize"],[8,"CanonicalSerialize"],[8,"Deserialize"],[8,"PartialEq"],[8,"Debug"],[3,"Formatter"],[6,"Result"],[3,"CamlPolyComm"],[8,"From"],[8,"FnMut"],[8,"Iterator"],[8,"Serializer"],[8,"Serialize"],[3,"TypeId"],[8,"Copy"],[3,"OpeningProof"],[3,"CamlOpeningProof"],[4,"Value"],[8,"FromValue"],[8,"IntoValue"],[3,"OCamlRuntime"],[3,"Env"],[15,"str"],[3,"String"],[15,"u128"],[3,"Demand"],[3,"Challenges"],[8,"Default"],[8,"Into"],[8,"EndoCurve"],[8,"PairingEngine"],[3,"PairingSRS"],[3,"PairingProof"],[3,"SRS"],[8,"OpenProof"],[8,"SRS"],[4,"DensePolynomialOrEvaluations"]]},\ diff --git a/rustdoc/settings.html b/rustdoc/settings.html index 78856e0fed..9f421508ce 100644 --- a/rustdoc/settings.html +++ b/rustdoc/settings.html @@ -1 +1 @@ -Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file +Rustdoc settings

Rustdoc settings

Back
\ No newline at end of file diff --git a/rustdoc/src/mvpoly/lib.rs.html b/rustdoc/src/mvpoly/lib.rs.html index 335ab314c0..39ab23e8fa 100644 --- a/rustdoc/src/mvpoly/lib.rs.html +++ b/rustdoc/src/mvpoly/lib.rs.html @@ -77,6 +77,13 @@ 77 78 79 +80 +81 +82 +83 +84 +85 +86
use ark_ff::PrimeField;
 use kimchi::circuits::expr::{ConstantExpr, Expr};
 use rand::RngCore;
@@ -155,5 +162,12 @@
     /// Evaluate the polynomial at the vector point `x` and the extra variable
     /// `u` using its homogeneous form of degree D.
     fn homogeneous_eval(&self, x: &[F; N], u: F) -> F;
+
+    /// Add the monomial `coeff * x_1^{e_1} * ... * x_N^{e_N}` to the
+    /// polynomial, where `e_i` are the values given by the array `exponents`.
+    ///
+    /// For instance, to add the monomial `3 * x_1^2 * x_2^3` to the polynomial,
+    /// one would call `add_monomial([2, 3], 3)`.
+    fn add_monomial(&mut self, exponents: [usize; N], coeff: F);
 }
 
\ No newline at end of file diff --git a/rustdoc/src/mvpoly/monomials.rs.html b/rustdoc/src/mvpoly/monomials.rs.html index 470d6c959a..662336d01e 100644 --- a/rustdoc/src/mvpoly/monomials.rs.html +++ b/rustdoc/src/mvpoly/monomials.rs.html @@ -857,13 +857,6 @@ .and_modify(|c| *c = coeff) .or_insert(coeff); } - - pub fn add_monomial(&mut self, exponents: [usize; N], coeff: F) { - self.monomials - .entry(exponents) - .and_modify(|c| *c += coeff) - .or_insert(coeff); - } } impl<const N: usize, const D: usize, F: PrimeField> MVPoly<F, N, D> for Sparse<F, N, D> { @@ -973,6 +966,13 @@ }) .sum() } + + fn add_monomial(&mut self, exponents: [usize; N], coeff: F) { + self.monomials + .entry(exponents) + .and_modify(|c| *c += coeff) + .or_insert(coeff); + } } impl<const N: usize, const D: usize, F: PrimeField> From<prime::Dense<F, N, D>> diff --git a/rustdoc/src/mvpoly/prime.rs.html b/rustdoc/src/mvpoly/prime.rs.html index 8127546c1d..5cb5911260 100644 --- a/rustdoc/src/mvpoly/prime.rs.html +++ b/rustdoc/src/mvpoly/prime.rs.html @@ -815,6 +815,21 @@ 815 816 817 +818 +819 +820 +821 +822 +823 +824 +825 +826 +827 +828 +829 +830 +831 +832
//! Multivariate polynomial dense representation using prime numbers
 //!
 //! First, we start by attributing a different prime number for each variable.
@@ -1240,6 +1255,21 @@
                 acc + c * monomial * u.pow([u_power as u64])
             })
     }
+
+    fn add_monomial(&mut self, exponents: [usize; N], coeff: F) {
+        let mut prime_gen = PrimeNumberGenerator::new();
+        let primes = prime_gen.get_first_nth_primes(N);
+        let normalized_index = exponents
+            .iter()
+            .zip(primes.iter())
+            .fold(1, |acc, (d, p)| acc * p.pow(*d as u32));
+        let inv_idx = self
+            .normalized_indices
+            .iter()
+            .position(|&x| x == normalized_index)
+            .unwrap();
+        self.coeff[inv_idx] += coeff;
+    }
 }
 
 impl<F: PrimeField, const N: usize, const D: usize> Dense<F, N, D> {