Skip to content

Commit bf6cd29

Browse files
author
Kunming Jiang
committed
Bug fixes
1 parent a009b53 commit bf6cd29

File tree

3 files changed

+30
-39
lines changed

3 files changed

+30
-39
lines changed

circ_blocks/examples/zxc.rs

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

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

spartan_parallel/src/r1csproof.rs

Lines changed: 29 additions & 36 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] * (S::field_one() - ry[i]);
387+
ry_factors[i + 1] = ry_factors[i] * (ONE - ry[i]);
388388
}
389389

390390
let mut poly_list = Vec::new();
@@ -438,13 +438,6 @@ 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-
};
448441
let wit_sec_p = |i: usize| {
449442
if witness_secs[i].w_mat.len() == 1 {
450443
0
@@ -455,28 +448,28 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
455448
let e = |i: usize| eval_vars_at_ry_list[i][wit_sec_p(i)];
456449
let prefix_list = match num_witness_secs.next_power_of_two() {
457450
1 => {
458-
vec![S::field_one()]
451+
vec![ONE]
459452
}
460453
2 => {
461-
vec![(S::field_one() - rw[0]), rw[0]]
454+
vec![(ONE - rw[0]), rw[0]]
462455
}
463456
4 => {
464457
vec![
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]),
458+
(ONE - rw[0]) * (ONE - rw[1]),
459+
(ONE - rw[0]) * rw[1],
460+
rw[0] * (ONE - rw[1]),
468461
rw[0] * rw[1],
469462
]
470463
}
471464
8 => {
472465
vec![
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]),
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]),
480473
rw[0] * rw[1] * rw[2],
481474
]
482475
}
@@ -514,7 +507,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
514507
&self,
515508
num_instances: usize,
516509
max_num_proofs: usize,
517-
_num_proofs: &Vec<usize>,
510+
num_proofs: &Vec<usize>,
518511
max_num_inputs: usize,
519512

520513
// NUM_WITNESS_SECS
@@ -626,9 +619,9 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
626619
// First by witness & by instance on ry
627620
// For every possible wit_sec.num_inputs, compute ry_factor = prodX(1 - ryX)...
628621
// 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.
629-
let mut ry_factors = vec![S::field_one(); num_rounds_y + 1];
622+
let mut ry_factors = vec![ONE; num_rounds_y + 1];
630623
for i in 0..num_rounds_y {
631-
ry_factors[i + 1] = (ry_factors[i]) * (S::field_one() - ry[i]);
624+
ry_factors[i + 1] = (ry_factors[i]) * (ONE - ry[i]);
632625
}
633626

634627
// POLY COMMIT
@@ -665,7 +658,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
665658
// Then on rp
666659
let mut expected_eval_vars_list = Vec::new();
667660
for p in 0..num_instances {
668-
let _wit_sec_p = |i: usize| {
661+
let wit_sec_p = |i: usize| {
669662
if witness_secs[i].num_proofs.len() == 1 {
670663
0
671664
} else {
@@ -682,28 +675,28 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
682675
};
683676
let prefix_list = match num_witness_secs.next_power_of_two() {
684677
1 => {
685-
vec![S::field_one()]
678+
vec![ONE]
686679
}
687680
2 => {
688-
vec![(S::field_one() - rw[0]), rw[0]]
681+
vec![(ONE - rw[0]), rw[0]]
689682
}
690683
4 => {
691684
vec![
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]),
685+
(ONE - rw[0]) * (ONE - rw[1]),
686+
(ONE - rw[0]) * rw[1],
687+
rw[0] * (ONE - rw[1]),
695688
rw[0] * rw[1],
696689
]
697690
}
698691
8 => {
699692
vec![
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]),
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]),
707700
rw[0] * rw[1] * rw[2],
708701
]
709702
}

spartan_parallel/src/sparse_mlpoly.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,8 +451,7 @@ 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] =
455-
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] += rx[entry.row] * entry.val;
456455
}
457456
M_evals
458457
}

0 commit comments

Comments
 (0)