mirror of
https://github.com/logos-storage/plonky2.git
synced 2026-01-10 09:43:09 +00:00
PR feedback
This commit is contained in:
parent
9f004c9664
commit
9c01e1d942
@ -210,8 +210,12 @@ impl<F: Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
||||
) -> ExtensionTarget<D> {
|
||||
assert!(D > 1, "Not implemented for D=1.");
|
||||
let config = self.config.clone();
|
||||
let degree_log = common_data.config.cap_height + proof.evals_proofs[0].1.siblings.len()
|
||||
- config.rate_bits;
|
||||
let degree_log = common_data.degree_bits;
|
||||
debug_assert_eq!(
|
||||
degree_log,
|
||||
common_data.config.cap_height + proof.evals_proofs[0].1.siblings.len()
|
||||
- config.rate_bits
|
||||
);
|
||||
let subgroup_x = self.convert_to_ext(subgroup_x);
|
||||
let vanish_zeta = self.sub_extension(subgroup_x, zeta);
|
||||
let mut alpha = ReducingFactorTarget::new(alpha);
|
||||
@ -292,7 +296,6 @@ impl<F: Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
||||
let mut x_index_bits = self.low_bits(x_index, n_log, 64);
|
||||
let cap_index = self.le_sum(
|
||||
x_index_bits[x_index_bits.len() - common_data.config.fri_config.cap_height..]
|
||||
.to_vec()
|
||||
.into_iter(),
|
||||
);
|
||||
let mut domain_size = n;
|
||||
|
||||
@ -189,8 +189,11 @@ fn fri_combine_initial<F: Field + Extendable<D>, const D: usize>(
|
||||
) -> F::Extension {
|
||||
let config = &common_data.config;
|
||||
assert!(D > 1, "Not implemented for D=1.");
|
||||
let degree_log =
|
||||
common_data.config.cap_height + proof.evals_proofs[0].1.siblings.len() - config.rate_bits;
|
||||
let degree_log = common_data.degree_bits;
|
||||
debug_assert_eq!(
|
||||
degree_log,
|
||||
common_data.config.cap_height + proof.evals_proofs[0].1.siblings.len() - config.rate_bits
|
||||
);
|
||||
let subgroup_x = F::Extension::from_basefield(subgroup_x);
|
||||
let mut alpha = ReducingFactor::new(alpha);
|
||||
let mut sum = F::Extension::ZERO;
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
use std::convert::TryInto;
|
||||
|
||||
use anyhow::{ensure, Result};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
@ -111,15 +113,13 @@ impl<F: Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
||||
}
|
||||
|
||||
let index = self.le_sum(leaf_index_bits[proof.siblings.len()..].to_vec().into_iter());
|
||||
let mut state_ext = [zero; D];
|
||||
state_ext[..D].copy_from_slice(&state.elements[..D]);
|
||||
let state_ext = state.elements[..].try_into().expect("requires D = 4");
|
||||
let state_ext = ExtensionTarget(state_ext);
|
||||
let cap_ext = merkle_cap
|
||||
.0
|
||||
.iter()
|
||||
.map(|h| {
|
||||
let mut tmp = [zero; D];
|
||||
tmp[..D].copy_from_slice(&h.elements[..D]);
|
||||
let tmp = h.elements[..].try_into().expect("requires D = 4");
|
||||
ExtensionTarget(tmp)
|
||||
})
|
||||
.collect();
|
||||
@ -178,15 +178,13 @@ impl<F: Extendable<D>, const D: usize> CircuitBuilder<F, D> {
|
||||
)
|
||||
}
|
||||
|
||||
let mut state_ext = [zero; D];
|
||||
state_ext[..D].copy_from_slice(&state.elements[..D]);
|
||||
let state_ext = state.elements[..].try_into().expect("requires D = 4");
|
||||
let state_ext = ExtensionTarget(state_ext);
|
||||
let cap_ext = merkle_cap
|
||||
.0
|
||||
.iter()
|
||||
.map(|h| {
|
||||
let mut tmp = [zero; D];
|
||||
tmp[..D].copy_from_slice(&h.elements[..D]);
|
||||
let tmp = h.elements[..].try_into().expect("requires D = 4");
|
||||
ExtensionTarget(tmp)
|
||||
})
|
||||
.collect();
|
||||
|
||||
@ -7,6 +7,8 @@ use crate::hash::hashing::{compress, hash_or_noop};
|
||||
use crate::hash::merkle_proofs::MerkleProof;
|
||||
use crate::util::{log2_strict, reverse_bits, reverse_index_bits_in_place};
|
||||
|
||||
/// The Merkle cap of height `h` of a Merkle tree is the `h`-th layer (from the root) of the tree.
|
||||
/// It can be used in place of the root to verify Merkle paths, which are `h` elements shorter.
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
#[serde(bound = "")]
|
||||
pub struct MerkleCap<F: Field>(pub Vec<HashOut<F>>);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user