mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-07 00:03:10 +00:00
Add hash public input methods (#1529)
* Add hash public input methods * Change vecs to arrays * :: * Fix method name
This commit is contained in:
parent
8753162b77
commit
a7b985ce39
@ -337,10 +337,15 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
|||||||
[0; N].map(|_| self.add_virtual_target())
|
[0; N].map(|_| self.add_virtual_target())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Adds a new `HashOutTarget`. `NUM_HASH_OUT_ELTS` being hardcoded to 4, it internally
|
/// Adds a new `HashOutTarget`.
|
||||||
/// adds 4 virtual targets in a vector fashion.
|
|
||||||
pub fn add_virtual_hash(&mut self) -> HashOutTarget {
|
pub fn add_virtual_hash(&mut self) -> HashOutTarget {
|
||||||
HashOutTarget::from_vec(self.add_virtual_targets(4))
|
HashOutTarget::from(self.add_virtual_target_arr::<4>())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Registers a new `HashOutTarget` as a public input, adding
|
||||||
|
/// internally `NUM_HASH_OUT_ELTS` virtual targets.
|
||||||
|
pub fn add_virtual_hash_public_input(&mut self) -> HashOutTarget {
|
||||||
|
HashOutTarget::from(self.add_virtual_public_input_arr::<4>())
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Adds a new `MerkleCapTarget`, consisting in `1 << cap_height` `HashOutTarget`.
|
/// Adds a new `MerkleCapTarget`, consisting in `1 << cap_height` `HashOutTarget`.
|
||||||
@ -353,6 +358,13 @@ impl<F: RichField + Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
|||||||
(0..n).map(|_i| self.add_virtual_hash()).collect()
|
(0..n).map(|_i| self.add_virtual_hash()).collect()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Registers `n` new `HashOutTarget` as public inputs, in a vector fashion.
|
||||||
|
pub fn add_virtual_hashes_public_input(&mut self, n: usize) -> Vec<HashOutTarget> {
|
||||||
|
(0..n)
|
||||||
|
.map(|_i| self.add_virtual_hash_public_input())
|
||||||
|
.collect()
|
||||||
|
}
|
||||||
|
|
||||||
pub(crate) fn add_virtual_merkle_proof(&mut self, len: usize) -> MerkleProofTarget {
|
pub(crate) fn add_virtual_merkle_proof(&mut self, len: usize) -> MerkleProofTarget {
|
||||||
MerkleProofTarget {
|
MerkleProofTarget {
|
||||||
siblings: self.add_virtual_hashes(len),
|
siblings: self.add_virtual_hashes(len),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user