@@ -384,7 +384,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
384
384
}
385
385
let mut ry_factors = vec ! [ ONE ; num_rounds_y + 1 ] ;
386
386
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] ) ;
388
388
}
389
389
390
390
let mut poly_list = Vec :: new ( ) ;
@@ -438,6 +438,13 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
438
438
// So we need to multiply each entry by (1 - rq0)(1 - rq1)
439
439
let mut eval_vars_comb_list = Vec :: new ( ) ;
440
440
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
+ } ;
441
448
let wit_sec_p = |i : usize | {
442
449
if witness_secs[ i] . w_mat . len ( ) == 1 {
443
450
0
@@ -448,28 +455,28 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
448
455
let e = |i : usize | eval_vars_at_ry_list[ i] [ wit_sec_p ( i) ] ;
449
456
let prefix_list = match num_witness_secs. next_power_of_two ( ) {
450
457
1 => {
451
- vec ! [ ONE ]
458
+ vec ! [ S :: field_one ( ) ]
452
459
}
453
460
2 => {
454
- vec ! [ ( ONE - rw[ 0 ] ) , rw[ 0 ] ]
461
+ vec ! [ ( S :: field_one ( ) - rw[ 0 ] ) , rw[ 0 ] ]
455
462
}
456
463
4 => {
457
464
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 ] ) ,
461
468
rw[ 0 ] * rw[ 1 ] ,
462
469
]
463
470
}
464
471
8 => {
465
472
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 ] ) ,
473
480
rw[ 0 ] * rw[ 1 ] * rw[ 2 ] ,
474
481
]
475
482
}
@@ -507,7 +514,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
507
514
& self ,
508
515
num_instances : usize ,
509
516
max_num_proofs : usize ,
510
- num_proofs : & Vec < usize > ,
517
+ _num_proofs : & Vec < usize > ,
511
518
max_num_inputs : usize ,
512
519
513
520
// NUM_WITNESS_SECS
@@ -619,9 +626,9 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
619
626
// First by witness & by instance on ry
620
627
// For every possible wit_sec.num_inputs, compute ry_factor = prodX(1 - ryX)...
621
628
// 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 ] ;
623
630
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] ) ;
625
632
}
626
633
627
634
// POLY COMMIT
@@ -658,7 +665,7 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
658
665
// Then on rp
659
666
let mut expected_eval_vars_list = Vec :: new ( ) ;
660
667
for p in 0 ..num_instances {
661
- let wit_sec_p = |i : usize | {
668
+ let _wit_sec_p = |i : usize | {
662
669
if witness_secs[ i] . num_proofs . len ( ) == 1 {
663
670
0
664
671
} else {
@@ -675,28 +682,28 @@ impl<S: SpartanExtensionField + Send + Sync> R1CSProof<S> {
675
682
} ;
676
683
let prefix_list = match num_witness_secs. next_power_of_two ( ) {
677
684
1 => {
678
- vec ! [ ONE ]
685
+ vec ! [ S :: field_one ( ) ]
679
686
}
680
687
2 => {
681
- vec ! [ ( ONE - rw[ 0 ] ) , rw[ 0 ] ]
688
+ vec ! [ ( S :: field_one ( ) - rw[ 0 ] ) , rw[ 0 ] ]
682
689
}
683
690
4 => {
684
691
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 ] ) ,
688
695
rw[ 0 ] * rw[ 1 ] ,
689
696
]
690
697
}
691
698
8 => {
692
699
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 ] ) ,
700
707
rw[ 0 ] * rw[ 1 ] * rw[ 2 ] ,
701
708
]
702
709
}
0 commit comments