Skip to content

Commit e6b30db

Browse files
authored
Implement Mercury PCS (#38)
* Update rust-toolchain and add type annotation * Implement Mercury PCS * Apply parallelization * Resolve lint errors * Apply suggestions
1 parent 303cf24 commit e6b30db

File tree

5 files changed

+481
-2
lines changed

5 files changed

+481
-2
lines changed

plonkish_backend/src/backend/hyperplonk/util.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ pub fn vanilla_plonk_circuit_info<F: PrimeField>(
3434
preprocess_polys: [Vec<F>; 5],
3535
permutations: Vec<Vec<(usize, usize)>>,
3636
) -> PlonkishCircuitInfo<F> {
37-
let [pi, q_l, q_r, q_m, q_o, q_c, w_l, w_r, w_o] =
37+
let [pi, q_l, q_r, q_m, q_o, q_c, w_l, w_r, w_o]: &[Expression<F>; 9] =
3838
&array::from_fn(|poly| Query::new(poly, Rotation::cur())).map(Expression::Polynomial);
3939
PlonkishCircuitInfo {
4040
k: num_vars,

plonkish_backend/src/pcs/multilinear.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ mod gemini;
99
mod hyrax;
1010
mod ipa;
1111
mod kzg;
12+
mod mercury;
1213
mod zeromorph;
1314

1415
pub use brakedown::{
@@ -21,6 +22,7 @@ pub use kzg::{
2122
MultilinearKzg, MultilinearKzgCommitment, MultilinearKzgParam, MultilinearKzgProverParam,
2223
MultilinearKzgVerifierParam,
2324
};
25+
pub use mercury::Mercury;
2426
pub use zeromorph::{Zeromorph, ZeromorphKzgProverParam, ZeromorphKzgVerifierParam};
2527

2628
fn validate_input<'a, F: Field>(

0 commit comments

Comments
 (0)