Skip to content
Snippets Groups Projects

remove requirements on _pairing_ and `ark-poly-commit`

Merged STEVAN Antoine requested to merge remove-pairing-and-ark-poly-commit into main
13 files
+ 556
427
Compare changes
  • Side-by-side
  • Inline
Files
13
+ 15
15
use ark_bls12_381::Bls12_381;
use ark_ec::pairing::Pairing;
use ark_bls12_381::Fr;
use ark_ff::PrimeField;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use komodo::linalg::Matrix;
fn inverse_template<E: Pairing>(c: &mut Criterion, n: usize) {
let matrix = Matrix::<E::ScalarField>::random(n, n);
fn inverse_template<F: PrimeField>(c: &mut Criterion, n: usize) {
let matrix = Matrix::<F>::random(n, n);
c.bench_function(
&format!("inverse {}x{} on {}", n, n, std::any::type_name::<E>()),
&format!("inverse {}x{} on {}", n, n, std::any::type_name::<F>()),
|b| b.iter(|| matrix.invert().unwrap()),
);
}
fn inverse(c: &mut Criterion) {
for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] {
inverse_template::<Bls12_381>(c, black_box(n));
inverse_template::<Fr>(c, black_box(n));
}
}
fn transpose_template<E: Pairing>(c: &mut Criterion, n: usize) {
let matrix = Matrix::<E::ScalarField>::random(n, n);
fn transpose_template<F: PrimeField>(c: &mut Criterion, n: usize) {
let matrix = Matrix::<F>::random(n, n);
c.bench_function(
&format!("transpose {}x{} on {}", n, n, std::any::type_name::<E>()),
&format!("transpose {}x{} on {}", n, n, std::any::type_name::<F>()),
|b| b.iter(|| matrix.transpose()),
);
}
fn transpose(c: &mut Criterion) {
for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] {
transpose_template::<Bls12_381>(c, black_box(n));
transpose_template::<Fr>(c, black_box(n));
}
}
fn mul_template<E: Pairing>(c: &mut Criterion, n: usize) {
let mat_a = Matrix::<E::ScalarField>::random(n, n);
let mat_b = Matrix::<E::ScalarField>::random(n, n);
fn mul_template<F: PrimeField>(c: &mut Criterion, n: usize) {
let mat_a = Matrix::<F>::random(n, n);
let mat_b = Matrix::<F>::random(n, n);
c.bench_function(
&format!("mul {}x{} on {}", n, n, std::any::type_name::<E>()),
&format!("mul {}x{} on {}", n, n, std::any::type_name::<F>()),
|b| b.iter(|| mat_a.mul(&mat_b)),
);
}
fn mul(c: &mut Criterion) {
for n in [10, 15, 20, 30, 40, 60, 80, 120, 160, 240, 320] {
mul_template::<Bls12_381>(c, black_box(n));
mul_template::<Fr>(c, black_box(n));
}
}
Loading