mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-03 14:23:07 +00:00
use hashmap
This commit is contained in:
parent
319d9b5a52
commit
b23193ba8d
@ -3,6 +3,7 @@
|
||||
use alloc::vec;
|
||||
|
||||
use anyhow::{ensure, Result};
|
||||
use hashbrown::HashMap;
|
||||
use itertools::Itertools;
|
||||
|
||||
use crate::field::extension::Extendable;
|
||||
@ -188,7 +189,7 @@ pub fn set_cyclic_recursion_data_target<
|
||||
cyclic_recursion_data_target: &CyclicRecursionTarget<F, C, D>,
|
||||
cyclic_recursion_data: &CyclicRecursionData<F, C, D>,
|
||||
// Public inputs to set in the base case to seed some initial data.
|
||||
public_inputs: &[(usize, F)],
|
||||
mut public_inputs: HashMap<usize, F>,
|
||||
) -> Result<()>
|
||||
where
|
||||
C::Hasher: AlgebraicHasher<F>,
|
||||
@ -221,7 +222,6 @@ where
|
||||
|
||||
// The circuit checks that the verifier data is the same throughout the cycle, so
|
||||
// we set the verifier data to the "real" verifier data even though it's unused in the base case.
|
||||
let mut public_inputs = public_inputs.to_vec();
|
||||
let verifier_data = &cyclic_recursion_data.verifier_data;
|
||||
public_inputs.extend((start_vk_pis..).zip(verifier_data.circuit_digest.elements));
|
||||
|
||||
@ -230,14 +230,14 @@ where
|
||||
public_inputs.extend((start..).zip(verifier_data.constants_sigmas_cap.0[i].elements));
|
||||
}
|
||||
|
||||
let proof = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, &public_inputs)?;
|
||||
let proof = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, public_inputs)?;
|
||||
pw.set_proof_with_pis_target(&cyclic_recursion_data_target.proof, &proof);
|
||||
pw.set_verifier_data_target(
|
||||
&cyclic_recursion_data_target.verifier_data,
|
||||
cyclic_recursion_data.verifier_data,
|
||||
);
|
||||
|
||||
let dummy_p = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, &[])?;
|
||||
let dummy_p = dummy_proof(&cyclic_recursion_data_target.dummy_circuit, HashMap::new())?;
|
||||
pw.set_proof_with_pis_target(&cyclic_recursion_data_target.dummy_proof, &dummy_p);
|
||||
pw.set_verifier_data_target(
|
||||
&cyclic_recursion_data_target.dummy_verifier_data,
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
use alloc::vec;
|
||||
|
||||
use hashbrown::HashMap;
|
||||
use plonky2_field::extension::Extendable;
|
||||
use plonky2_util::ceil_div_usize;
|
||||
|
||||
@ -16,7 +17,7 @@ use crate::plonk::proof::ProofWithPublicInputs;
|
||||
/// The rest will default to zero.
|
||||
pub(crate) fn dummy_proof<F, C, const D: usize>(
|
||||
circuit: &CircuitData<F, C, D>,
|
||||
nonzero_public_inputs: &[(usize, F)],
|
||||
nonzero_public_inputs: HashMap<usize, F>,
|
||||
) -> anyhow::Result<ProofWithPublicInputs<F, C, D>>
|
||||
where
|
||||
F: RichField + Extendable<D>,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user