Skip to content

Commit

Permalink
Tiny cleanups
Browse files Browse the repository at this point in the history
  • Loading branch information
nazar-pc committed Feb 9, 2024
1 parent 20eb420 commit ff43d3a
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 21 deletions.
22 changes: 16 additions & 6 deletions bindings/rust/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,16 @@ impl blst_fp12 {
if n_elems != p.len() || n_elems == 0 {
panic!("inputs' lengths mismatch");
}
let qs: [*const _; 2] = [&q[0], ptr::null()];
let ps: [*const _; 2] = [&p[0], ptr::null()];
let qs = [q.as_ptr(), ptr::null()];
let ps = [p.as_ptr(), ptr::null()];
let mut out = MaybeUninit::<blst_fp12>::uninit();
unsafe {
blst_miller_loop_n(out.as_mut_ptr(), &qs[0], &ps[0], n_elems);
blst_miller_loop_n(
out.as_mut_ptr(),
qs.as_ptr(),
ps.as_ptr(),
n_elems,
);
out.assume_init()
}
}
Expand All @@ -121,12 +126,17 @@ impl blst_fp12 {
.zip(q.par_chunks(stride).zip(p.par_chunks(stride)))
.map(|(start_offset, (q, p))| {
let mut tmp = MaybeUninit::<blst_fp12>::uninit();
let qs: [*const _; 2] = [q.as_ptr(), ptr::null()];
let ps: [*const _; 2] = [p.as_ptr(), ptr::null()];
let qs = [q.as_ptr(), ptr::null()];
let ps = [p.as_ptr(), ptr::null()];

let n = core::cmp::min(n_elems - start_offset, stride);
unsafe {
blst_miller_loop_n(tmp.as_mut_ptr(), &qs[0], &ps[0], n);
blst_miller_loop_n(
tmp.as_mut_ptr(),
qs.as_ptr(),
ps.as_ptr(),
n,
);
tmp.assume_init()
}
})
Expand Down
21 changes: 11 additions & 10 deletions bindings/rust/src/pippenger-no_std.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,10 @@ macro_rules! pippenger_mult_impl {
points: vec![Default::default(); npoints],
};

let p: [*const $point; 2] = [&points[0], ptr::null()];
unsafe { $to_affines(&mut ret.points[0], &p[0], npoints) };
let p = [points.as_ptr(), ptr::null()];
unsafe {
$to_affines(ret.points.as_mut_ptr(), p.as_ptr(), npoints)
};
ret
}

Expand All @@ -65,21 +67,20 @@ macro_rules! pippenger_mult_impl {
panic!("scalars length mismatch");
}

let p: [*const $point_affine; 2] =
[&self.points[0], ptr::null()];
let s: [*const u8; 2] = [&scalars[0], ptr::null()];
let p = [self.points.as_ptr(), ptr::null()];
let s = [scalars.as_ptr(), ptr::null()];

let mut scratch =
vec![0u64; unsafe { $scratch_sizeof(npoints) } / 8];
let mut ret = <$point>::default();
unsafe {
$multi_scalar_mult(
&mut ret,
&p[0],
p.as_ptr(),
npoints,
&s[0],
s.as_ptr(),
nbits,
&mut scratch[0],
scratch.as_mut_ptr(),
);
}
ret
Expand All @@ -88,9 +89,9 @@ macro_rules! pippenger_mult_impl {
pub fn add(&self) -> $point {
let npoints = self.points.len();

let p: [*const _; 2] = [&self.points[0], ptr::null()];
let p = [self.points.as_ptr(), ptr::null()];
let mut ret = <$point>::default();
unsafe { $add(&mut ret, &p[0], npoints) };
unsafe { $add(&mut ret, p.as_ptr(), npoints) };

ret
}
Expand Down
10 changes: 5 additions & 5 deletions bindings/rust/src/pippenger.rs
Original file line number Diff line number Diff line change
Expand Up @@ -205,11 +205,11 @@ macro_rules! pippenger_mult_impl {
unsafe {
$tile_mult(
grid[work].1.as_ptr(),
&p[0],
p.as_ptr(),
grid[work].0.dx,
&s[0],
s.as_ptr(),
nbits,
&mut scratch[0],
scratch.as_mut_ptr(),
y,
window,
);
Expand Down Expand Up @@ -263,7 +263,7 @@ macro_rules! pippenger_mult_impl {
if ncpus < 2 || npoints < 384 {
let p = [self.points.as_ptr(), ptr::null()];
let mut ret = <$point>::default();
unsafe { $add(&mut ret, &p[0], npoints) };
unsafe { $add(&mut ret, p.as_ptr(), npoints) };
return ret;
}

Expand Down Expand Up @@ -292,7 +292,7 @@ macro_rules! pippenger_mult_impl {
}
unsafe {
let mut t = MaybeUninit::<$point>::uninit();
$add(t.as_mut_ptr(), &p[0], chunk);
$add(t.as_mut_ptr(), p.as_ptr(), chunk);
$add_or_double(&mut acc, &acc, t.as_ptr());
};
processed += 1;
Expand Down

0 comments on commit ff43d3a

Please sign in to comment.