Skip to content

Commit

Permalink
Make multiexp generic on the size of the Scalar
Browse files Browse the repository at this point in the history
  • Loading branch information
iquerejeta committed Oct 30, 2023
1 parent 0c3e3b5 commit f834f30
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions halo2_proofs/src/arithmetic.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ fn multiexp_serial<C: CurveAffine>(coeffs: &[C::Scalar], bases: &[C], acc: &mut
let skip_bits = segment * c;
let skip_bytes = skip_bits / 8;

if skip_bytes >= 32 {
if skip_bytes >= (F::NUM_BITS as usize + 7) / 8 {
return 0;
}

Expand All @@ -56,7 +56,7 @@ fn multiexp_serial<C: CurveAffine>(coeffs: &[C::Scalar], bases: &[C], acc: &mut
tmp as usize
}

let segments = (256 / c) + 1;
let segments = (C::Scalar::NUM_BITS as usize / c) + 1;

for current_segment in (0..segments).rev() {
for _ in 0..c {
Expand Down Expand Up @@ -122,7 +122,7 @@ pub fn small_multiexp<C: CurveAffine>(coeffs: &[C::Scalar], bases: &[C]) -> C::C
let mut acc = C::Curve::identity();

// for byte idx
for byte_idx in (0..32).rev() {
for byte_idx in (0..((C::Scalar::NUM_BITS as usize + 7) / 8)).rev() {
// for bit idx
for bit_idx in (0..8).rev() {
acc = acc.double();
Expand Down

0 comments on commit f834f30

Please sign in to comment.