Skip to content

Commit

Permalink
Bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
ArtiomTr committed Jun 7, 2024
1 parent 138718a commit 7adda07
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 13 deletions.
2 changes: 0 additions & 2 deletions arkworks3-sppark-wlc/cuda/pippenger_inf.cu
Original file line number Diff line number Diff line change
Expand Up @@ -426,8 +426,6 @@ RustError mult_pippenger_faster_inf(RustContext<bucket_t, affine_t, scalar_t> *c
const scalar_t scalars[],
size_t ffi_affine_sz)
{
(void)points; // Silence unused param warning

Context<bucket_t, affine_t, scalar_t> *ctx = context->context;
assert(ctx->config.npoints == npoints);
assert(ctx->ffi_affine_sz == ffi_affine_sz);
Expand Down
9 changes: 1 addition & 8 deletions arkworks3-sppark-wlc/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ extern "C" {
fn mult_pippenger_faster_inf(
context: *mut MultiScalarMultContext,
out: *mut u64,
points_with_infinity: *const G1Affine,
npoints: usize,
batch_size: usize,
scalars: *const Fr,
Expand Down Expand Up @@ -72,28 +71,22 @@ pub fn multi_scalar_mult_free(context: &mut MultiScalarMultContext) {

pub fn multi_scalar_mult<G: AffineCurve>(
context: &mut MultiScalarMultContext,
points: &[G],
npoints: usize,
scalars: &[<G::ScalarField as PrimeField>::BigInt],
) -> Vec<G::Projective> {
let npoints = points.len();
if scalars.len() % npoints != 0 {
panic!("length mismatch")
}

//let mut context = multi_scalar_mult_init(points);

let batch_size = scalars.len() / npoints;
let mut ret = vec![G::Projective::zero(); batch_size];
let err = unsafe {
let result_ptr = &mut *(&mut ret as *mut Vec<G::Projective> as *mut Vec<u64>);

// mult_pippenger_faster_inf2();

mult_pippenger_faster_inf(
context,
result_ptr.as_mut_ptr(),
points as *const _ as *const G1Affine,
npoints,
batch_size,
scalars as *const _ as *const Fr,
std::mem::size_of::<G1Affine>(),
Expand Down
2 changes: 1 addition & 1 deletion arkworks3/src/fft_g1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ pub fn g1_linear_combination(
};

let msm_results =
rust_kzg_arkworks3_sppark_wlc::multi_scalar_mult(&mut context, affines, unsafe {
rust_kzg_arkworks3_sppark_wlc::multi_scalar_mult(&mut context, len, unsafe {
std::mem::transmute::<&[_], &[BigInteger256]>(&ark_scalars)
});

Expand Down
7 changes: 5 additions & 2 deletions arkworks3/src/kzg_types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -877,9 +877,12 @@ impl KZGSettings<ArkFr, ArkG1, ArkG2, LFFTSettings, PolyData, ArkFp, ArkG1Affine
#[cfg(feature = "sppark_wlc")]
{
let affines =
kzg::msm::msm_impls::batch_convert::<ArkG1, ArkFp, ArkG1Affine>(&points);
kzg::msm::msm_impls::batch_convert::<ArkG1, ArkFp, ArkG1Affine>(&secret_g1);
let affines = unsafe {
alloc::slice::from_raw_parts(affines.as_ptr() as *const G1Affine, len)
alloc::slice::from_raw_parts(
affines.as_ptr() as *const G1Affine,
secret_g1.len(),
)
};

Some(Arc::new(PrecomputationTable::from_ptr(
Expand Down

0 comments on commit 7adda07

Please sign in to comment.