mirror of
https://github.com/arnaucube/hyperplonk.git
synced 2026-01-10 16:11:29 +01:00
refactor snark
This commit is contained in:
committed by
chancharles92
parent
bee67686d0
commit
bd1fc9897e
@@ -7,8 +7,8 @@ mod virtual_polynomial;
|
||||
pub use errors::ArithErrors;
|
||||
pub use multilinear_polynomial::{
|
||||
evaluate_no_par, evaluate_opt, fix_last_variables, fix_last_variables_no_par, fix_variables,
|
||||
identity_permutation_mles, merge_polynomials, random_mle_list, random_permutation_mles,
|
||||
random_zero_mle_list, DenseMultilinearExtension,
|
||||
identity_permutation, identity_permutation_mles, merge_polynomials, random_mle_list,
|
||||
random_permutation, random_permutation_mles, random_zero_mle_list, DenseMultilinearExtension,
|
||||
};
|
||||
pub use univariate_polynomial::{build_l, get_uni_domain};
|
||||
pub use util::{bit_decompose, gen_eval_point, get_batched_nv, get_index};
|
||||
|
||||
@@ -72,6 +72,11 @@ pub fn random_zero_mle_list<F: PrimeField, R: RngCore>(
|
||||
list
|
||||
}
|
||||
|
||||
pub fn identity_permutation<F: PrimeField>(num_vars: usize, num_chunks: usize) -> Vec<F> {
|
||||
let len = (num_chunks as u64) * (1u64 << num_vars);
|
||||
(0..len).map(F::from).collect()
|
||||
}
|
||||
|
||||
/// A list of MLEs that represents an identity permutation
|
||||
pub fn identity_permutation_mles<F: PrimeField>(
|
||||
num_vars: usize,
|
||||
@@ -88,12 +93,11 @@ pub fn identity_permutation_mles<F: PrimeField>(
|
||||
res
|
||||
}
|
||||
|
||||
/// A list of MLEs that represent a random permutation
|
||||
pub fn random_permutation_mles<F: PrimeField, R: RngCore>(
|
||||
pub fn random_permutation<F: PrimeField, R: RngCore>(
|
||||
num_vars: usize,
|
||||
num_chunks: usize,
|
||||
rng: &mut R,
|
||||
) -> Vec<Rc<DenseMultilinearExtension<F>>> {
|
||||
) -> Vec<F> {
|
||||
let len = (num_chunks as u64) * (1u64 << num_vars);
|
||||
let mut s_id_vec: Vec<F> = (0..len).map(F::from).collect();
|
||||
let mut s_perm_vec = vec![];
|
||||
@@ -101,6 +105,16 @@ pub fn random_permutation_mles<F: PrimeField, R: RngCore>(
|
||||
let index = rng.next_u64() as usize % s_id_vec.len();
|
||||
s_perm_vec.push(s_id_vec.remove(index));
|
||||
}
|
||||
s_perm_vec
|
||||
}
|
||||
|
||||
/// A list of MLEs that represent a random permutation
|
||||
pub fn random_permutation_mles<F: PrimeField, R: RngCore>(
|
||||
num_vars: usize,
|
||||
num_chunks: usize,
|
||||
rng: &mut R,
|
||||
) -> Vec<Rc<DenseMultilinearExtension<F>>> {
|
||||
let s_perm_vec = random_permutation(num_vars, num_chunks, rng);
|
||||
let mut res = vec![];
|
||||
let n = 1 << num_vars;
|
||||
for i in 0..num_chunks {
|
||||
|
||||
Reference in New Issue
Block a user