Skip to content

Commit a009b53

Browse files
author
Kunming Jiang
committed
Merge with main
2 parents e9b4147 + b7a4e64 commit a009b53

File tree

3 files changed

+39
-30
lines changed

3 files changed

+39
-30
lines changed

circ_blocks/examples/zxc.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ use libspartan::{
3434
use merlin::Transcript;
3535
use serde::{Deserialize, Serialize};
3636
use std::time::*;
37+
use std::time::*;
3738

3839
// How many reserved variables (EXCLUDING V) are in front of the actual input / output?
3940
// %BN, %RET, %TS, %AS, %SP, %BP

spartan_parallel/src/r1csproof.rs

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
384384
}
385385
let mut ry_factors = vec![ONE; num_rounds_y + 1];
386386
for i in 0..num_rounds_y {
387-
ry_factors[i + 1] = ry_factors[i] * (ONE - ry[i]);
387+
ry_factors[i + 1] = ry_factors[i] * (S::field_one() - ry[i]);
388388
}
389389

390390
let mut poly_list = Vec::new();
@@ -438,6 +438,13 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
438438
// So we need to multiply each entry by (1 - rq0)(1 - rq1)
439439
let mut eval_vars_comb_list = Vec::new();
440440
for p in 0..num_instances {
441+
let _wit_sec_p = |i: usize| {
442+
if witness_secs[i].w_mat.len() == 1 {
443+
0
444+
} else {
445+
p
446+
}
447+
};
441448
let wit_sec_p = |i: usize| {
442449
if witness_secs[i].w_mat.len() == 1 {
443450
0
@@ -448,28 +455,28 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
448455
let e = |i: usize| eval_vars_at_ry_list[i][wit_sec_p(i)];
449456
let prefix_list = match num_witness_secs.next_power_of_two() {
450457
1 => {
451-
vec![ONE]
458+
vec![S::field_one()]
452459
}
453460
2 => {
454-
vec![(ONE - rw[0]), rw[0]]
461+
vec![(S::field_one() - rw[0]), rw[0]]
455462
}
456463
4 => {
457464
vec![
458-
(ONE - rw[0]) * (ONE - rw[1]),
459-
(ONE - rw[0]) * rw[1],
460-
rw[0] * (ONE - rw[1]),
465+
(S::field_one() - rw[0]) * (S::field_one() - rw[1]),
466+
(S::field_one() - rw[0]) * rw[1],
467+
rw[0] * (S::field_one() - rw[1]),
461468
rw[0] * rw[1],
462469
]
463470
}
464471
8 => {
465472
vec![
466-
(ONE - rw[0]) * (ONE - rw[1]) * (ONE - rw[2]),
467-
(ONE - rw[0]) * (ONE - rw[1]) * rw[2],
468-
(ONE - rw[0]) * rw[1] * (ONE - rw[2]),
469-
(ONE - rw[0]) * rw[1] * rw[2],
470-
rw[0] * (ONE - rw[1]) * (ONE - rw[2]),
471-
rw[0] * (ONE - rw[1]) * rw[2],
472-
rw[0] * rw[1] * (ONE - rw[2]),
473+
(S::field_one() - rw[0]) * (S::field_one() - rw[1]) * (S::field_one() - rw[2]),
474+
(S::field_one() - rw[0]) * (S::field_one() - rw[1]) * rw[2],
475+
(S::field_one() - rw[0]) * rw[1] * (S::field_one() - rw[2]),
476+
(S::field_one() - rw[0]) * rw[1] * rw[2],
477+
rw[0] * (S::field_one() - rw[1]) * (S::field_one() - rw[2]),
478+
rw[0] * (S::field_one() - rw[1]) * rw[2],
479+
rw[0] * rw[1] * (S::field_one() - rw[2]),
473480
rw[0] * rw[1] * rw[2],
474481
]
475482
}
@@ -507,7 +514,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
507514
&self,
508515
num_instances: usize,
509516
max_num_proofs: usize,
510-
num_proofs: &Vec<usize>,
517+
_num_proofs: &Vec<usize>,
511518
max_num_inputs: usize,
512519

513520
// NUM_WITNESS_SECS
@@ -619,9 +626,9 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
619626
// First by witness & by instance on ry
620627
// For every possible wit_sec.num_inputs, compute ry_factor = prodX(1 - ryX)...
621628
// If there are 2 witness secs, then ry_factors[0] = 1, ry_factors[1] = 1, ry_factors[2] = 1 - ry1, ry_factors[3] = (1 - ry1)(1 - ry2), etc.
622-
let mut ry_factors = vec![ONE; num_rounds_y + 1];
629+
let mut ry_factors = vec![S::field_one(); num_rounds_y + 1];
623630
for i in 0..num_rounds_y {
624-
ry_factors[i + 1] = (ry_factors[i]) * (ONE - ry[i]);
631+
ry_factors[i + 1] = (ry_factors[i]) * (S::field_one() - ry[i]);
625632
}
626633

627634
// POLY COMMIT
@@ -658,7 +665,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
658665
// Then on rp
659666
let mut expected_eval_vars_list = Vec::new();
660667
for p in 0..num_instances {
661-
let wit_sec_p = |i: usize| {
668+
let _wit_sec_p = |i: usize| {
662669
if witness_secs[i].num_proofs.len() == 1 {
663670
0
664671
} else {
@@ -675,28 +682,28 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
675682
};
676683
let prefix_list = match num_witness_secs.next_power_of_two() {
677684
1 => {
678-
vec![ONE]
685+
vec![S::field_one()]
679686
}
680687
2 => {
681-
vec![(ONE - rw[0]), rw[0]]
688+
vec![(S::field_one() - rw[0]), rw[0]]
682689
}
683690
4 => {
684691
vec![
685-
(ONE - rw[0]) * (ONE - rw[1]),
686-
(ONE - rw[0]) * rw[1],
687-
rw[0] * (ONE - rw[1]),
692+
(S::field_one() - rw[0]) * (S::field_one() - rw[1]),
693+
(S::field_one() - rw[0]) * rw[1],
694+
rw[0] * (S::field_one() - rw[1]),
688695
rw[0] * rw[1],
689696
]
690697
}
691698
8 => {
692699
vec![
693-
(ONE - rw[0]) * (ONE - rw[1]) * (ONE - rw[2]),
694-
(ONE - rw[0]) * (ONE - rw[1]) * rw[2],
695-
(ONE - rw[0]) * rw[1] * (ONE - rw[2]),
696-
(ONE - rw[0]) * rw[1] * rw[2],
697-
rw[0] * (ONE - rw[1]) * (ONE - rw[2]),
698-
rw[0] * (ONE - rw[1]) * rw[2],
699-
rw[0] * rw[1] * (ONE - rw[2]),
700+
(S::field_one() - rw[0]) * (S::field_one() - rw[1]) * (S::field_one() - rw[2]),
701+
(S::field_one() - rw[0]) * (S::field_one() - rw[1]) * rw[2],
702+
(S::field_one() - rw[0]) * rw[1] * (S::field_one() - rw[2]),
703+
(S::field_one() - rw[0]) * rw[1] * rw[2],
704+
rw[0] * (S::field_one() - rw[1]) * (S::field_one() - rw[2]),
705+
rw[0] * (S::field_one() - rw[1]) * rw[2],
706+
rw[0] * rw[1] * (S::field_one() - rw[2]),
700707
rw[0] * rw[1] * rw[2],
701708
]
702709
}

spartan_parallel/src/sparse_mlpoly.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,8 @@ impl<S: SpartanExtensionField> SparseMatPolynomial<S> {
451451

452452
for i in 0..self.M.len() {
453453
let entry = &self.M[i];
454-
M_evals[entry.col / max_num_cols][entry.col % max_num_cols] += rx[entry.row] * entry.val;
454+
M_evals[entry.col / max_num_cols][entry.col % max_num_cols] =
455+
M_evals[entry.col / max_num_cols][entry.col % max_num_cols] + rx[entry.row] * entry.val;
455456
}
456457
M_evals
457458
}

0 commit comments

Comments
 (0)