Skip to content

Commit

Permalink
chore: misc refactorings (#38)
Browse files Browse the repository at this point in the history
  • Loading branch information
TomAFrench authored Feb 25, 2025
1 parent c36268d commit 98080a9
Show file tree
Hide file tree
Showing 18 changed files with 2,527 additions and 2,697 deletions.
1 change: 0 additions & 1 deletion Nargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,3 @@ compiler_version = ">=1.0.0"

[dependencies]
bignum = {tag = "v0.5.4", git = "https://github.com/noir-lang/noir-bignum"}
sort = {tag = "v0.2.2", git = "https://github.com/noir-lang/noir_sort"}
50 changes: 25 additions & 25 deletions src/bigcurve_test.nr
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use std::ops::{Add, Neg, Sub};

use dep::bignum::{BigNum, BigNumTrait};
use dep::bignum::fields::bn254Fq::BN254_Fq_Params;
use bignum::{BigNum, BigNumTrait};
use bignum::fields::bn254Fq::BN254_Fq_Params;

use crate::{BigCurve, BigCurveTrait};
use crate::curve_jac;
Expand All @@ -10,7 +10,7 @@ use crate::curve_jac::CurveJ;
use crate::curve_jac::JTranscript;
use crate::curves::bls12_377::{BLS12_377, BLS12_377Fr, BLS12_377Scalar};
use crate::curves::bls12_381::{BLS12_381, BLS12_381Fr, BLS12_381Scalar};
use crate::curves::bn254::{BN254, BN254Params, BN254Scalar};
use crate::curves::bn254::{BN254, BN254Fq, BN254Params, BN254Scalar};
use crate::curves::mnt4_753::{MNT4_753, MNT4_753Fr, MNT4_753Scalar};
use crate::curves::mnt6_753::{MNT6_753, MNT6_753Fr, MNT6_753Scalar};
use crate::curves::pallas::{Pallas, PallasFr, PallasScalar};
Expand Down Expand Up @@ -86,7 +86,7 @@ fn test_mul() {
},
is_infinity: false,
};
expected.y = BigNum::new() - expected.y;
expected.y = BigNum::zero() - expected.y;
assert(result.x == expected.x);
assert(result.y == expected.y);
}
Expand Down Expand Up @@ -427,7 +427,7 @@ fn test_make_table() {
transcript = transcript.push_back(T.transcript[i]);
}

let mut inverses: [Fq; 8] = [BigNum::new(); 8];
let mut inverses: [Fq; 8] = [BigNum::zero(); 8];

for i in 0..8 {
inverses[i] = transcript[i].z3;
Expand Down Expand Up @@ -560,7 +560,7 @@ fn test_vesta_offset_generators() {

#[test]
fn test_bls12_377_num_scalar_slices_in_scalar_field() {
let x = BLS12_377Fr::new();
let x = BLS12_377Fr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = BLS12_377Scalar::zero();
Expand All @@ -570,7 +570,7 @@ fn test_bls12_377_num_scalar_slices_in_scalar_field() {

#[test]
fn test_bls12_381_num_scalar_slices_in_scalar_field() {
let x = BLS12_381Fr::new();
let x = BLS12_381Fr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = BLS12_381Scalar::zero();
Expand All @@ -580,7 +580,7 @@ fn test_bls12_381_num_scalar_slices_in_scalar_field() {

#[test]
fn test_bn254_num_scalar_slices_in_scalar_field() {
let x = BigNum::<3, 254, BN254_Fq_Params>::new();
let x = BN254Fq::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = BN254Scalar::zero();
Expand All @@ -590,7 +590,7 @@ fn test_bn254_num_scalar_slices_in_scalar_field() {

#[test]
fn test_mnt4_753_num_scalar_slices_in_scalar_field() {
let x = MNT4_753Fr::new();
let x = MNT4_753Fr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = MNT4_753Scalar::zero();
Expand All @@ -600,7 +600,7 @@ fn test_mnt4_753_num_scalar_slices_in_scalar_field() {

#[test]
fn test_mnt6_753_num_scalar_slices_in_scalar_field() {
let x = MNT6_753Fr::new();
let x = MNT6_753Fr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = MNT6_753Scalar::zero();
Expand All @@ -610,7 +610,7 @@ fn test_mnt6_753_num_scalar_slices_in_scalar_field() {

#[test]
fn test_pallas_num_scalar_slices_in_scalar_field() {
let x = PallasFr::new();
let x = PallasFr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = PallasScalar::zero();
Expand All @@ -620,7 +620,7 @@ fn test_pallas_num_scalar_slices_in_scalar_field() {

#[test]
fn test_secp256k1_num_scalar_slices_in_scalar_field() {
let x = Secp256k1Fr::new();
let x = Secp256k1Fr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = Secp256k1Scalar::zero();
Expand All @@ -630,7 +630,7 @@ fn test_secp256k1_num_scalar_slices_in_scalar_field() {

#[test]
fn test_secp256r1_num_scalar_slices_in_scalar_field() {
let x = Secp256r1Fr::new();
let x = Secp256r1Fr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = Secp256r1Scalar::zero();
Expand All @@ -640,7 +640,7 @@ fn test_secp256r1_num_scalar_slices_in_scalar_field() {

#[test]
fn test_secp384r1_num_scalar_slices_in_scalar_field() {
let x = Secp384r1Fr::new();
let x = Secp384r1Fr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = Secp384r1Scalar::zero();
Expand All @@ -650,7 +650,7 @@ fn test_secp384r1_num_scalar_slices_in_scalar_field() {

#[test]
fn test_vesta_num_scalar_slices_in_scalar_field() {
let x = VestaFr::new();
let x = VestaFr::zero();
let max_wnaf_bits = x.modulus_bits() + 1;
let scalar_slices = (max_wnaf_bits / 4) + (max_wnaf_bits % 4 != 0) as u32;
let scalar = VestaScalar::zero();
Expand Down Expand Up @@ -730,7 +730,7 @@ fn test_vesta_hash_to_curve() {

#[test]
fn test_bls12_377_msm() {
let mut four = BLS12_377Fr::new();
let mut four = BLS12_377Fr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = BLS12_377Fr::modulus() - four;
let p_minus_4 = BLS12_377Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -748,7 +748,7 @@ fn test_bls12_377_msm() {

#[test]
fn test_bls12_381_msm() {
let mut four = BLS12_381Fr::new();
let mut four = BLS12_381Fr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = BLS12_381Fr::modulus() - four;
let p_minus_4 = BLS12_381Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -766,7 +766,7 @@ fn test_bls12_381_msm() {

#[test]
fn test_bn254_msm() {
let mut four = BigNum::<3, 254, BN254_Fq_Params>::new();
let mut four = BN254Fq::zero();
four.limbs[0] = 4;
let p_minus_4_fr = BigNum::modulus() - four;
let p_minus_4 = BN254Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -784,7 +784,7 @@ fn test_bn254_msm() {

#[test]
fn test_mnt4_753_msm() {
let mut four = MNT4_753Fr::new();
let mut four = MNT4_753Fr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = MNT4_753Fr::modulus() - four;
let p_minus_4 = MNT4_753Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -802,7 +802,7 @@ fn test_mnt4_753_msm() {

#[test]
fn test_mnt6_753_msm() {
let mut four = MNT6_753Fr::new();
let mut four = MNT6_753Fr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = MNT6_753Fr::modulus() - four;
let p_minus_4 = MNT6_753Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -820,7 +820,7 @@ fn test_mnt6_753_msm() {

#[test]
fn test_pallas_msm() {
let mut four = PallasFr::new();
let mut four = PallasFr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = PallasFr::modulus() - four;
let p_minus_4 = PallasScalar::from_bignum(p_minus_4_fr);
Expand All @@ -838,7 +838,7 @@ fn test_pallas_msm() {

#[test]
fn test_secp256k1_msm() {
let mut four = Secp256k1Fr::new();
let mut four = Secp256k1Fr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = Secp256k1Fr::modulus() - four;
let p_minus_4 = Secp256k1Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -856,7 +856,7 @@ fn test_secp256k1_msm() {

#[test]
fn test_secp256r1_msm() {
let mut four = Secp256r1Fr::new();
let mut four = Secp256r1Fr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = Secp256r1Fr::modulus() - four;
let p_minus_4 = Secp256r1Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -874,7 +874,7 @@ fn test_secp256r1_msm() {

#[test]
fn test_secp384r1_msm() {
let mut four = Secp384r1Fr::new();
let mut four = Secp384r1Fr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = Secp384r1Fr::modulus() - four;
let p_minus_4 = Secp384r1Scalar::from_bignum(p_minus_4_fr);
Expand All @@ -892,7 +892,7 @@ fn test_secp384r1_msm() {

#[test]
fn test_vesta_msm() {
let mut four = VestaFr::new();
let mut four = VestaFr::zero();
four.limbs[0] = 4;
let p_minus_4_fr = VestaFr::modulus() - four;
let p_minus_4 = VestaScalar::from_bignum(p_minus_4_fr);
Expand Down
46 changes: 23 additions & 23 deletions src/curve_jac.nr
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use dep::bignum::BigNum;
use dep::bignum::BigNumTrait;
use bignum::BigNum;
use bignum::BigNumTrait;

use crate::BigCurve;
use crate::CurveParamsTrait;
Expand Down Expand Up @@ -48,10 +48,10 @@ where
{
unconstrained fn new() -> Self {
JTranscript {
lambda_numerator: BigNum::new(),
x3: BigNum::new(),
y3: BigNum::new(),
z3: BigNum::new(),
lambda_numerator: BigNum::zero(),
x3: BigNum::zero(),
y3: BigNum::zero(),
z3: BigNum::zero(),
}
}
}
Expand All @@ -78,7 +78,7 @@ where
BigNum: BigNumTrait,
{
pub(crate) fn new() -> Self {
AffineTranscript { lambda: BigNum::new(), x3: BigNum::new(), y3: BigNum::new() }
AffineTranscript { lambda: BigNum::zero(), x3: BigNum::zero(), y3: BigNum::zero() }
}

pub(crate) unconstrained fn from_j(j_tx: JTranscript<BigNum>) -> Self {
Expand All @@ -104,7 +104,7 @@ where
let mut result: [AffineTranscript<BigNum>; NumEntries] =
[AffineTranscript::new(); NumEntries];

let mut inverses: [BigNum; NumEntries] = [BigNum::new(); NumEntries];
let mut inverses: [BigNum; NumEntries] = [BigNum::zero(); NumEntries];
for i in 0..j_tx.len() {
inverses[i] = j_tx[i].z3;
}
Expand Down Expand Up @@ -148,9 +148,9 @@ where
{
pub(crate) fn empty() -> Self {
PointTable {
x: [BigNum::new(); 16],
y: [BigNum::new(); 16],
z: [BigNum::new(); 16],
x: [BigNum::zero(); 16],
y: [BigNum::zero(); 16],
z: [BigNum::zero(); 16],
transcript: [unsafe { JTranscript::new() }; 8],
}
}
Expand All @@ -167,9 +167,9 @@ where
CurveParams: CurveParamsTrait<BigNum>,
{
let mut result = PointTable {
x: [BigNum::new(); 16],
y: [BigNum::new(); 16],
z: [BigNum::new(); 16],
x: [BigNum::zero(); 16],
y: [BigNum::zero(); 16],
z: [BigNum::zero(); 16],
transcript: [JTranscript::new(); 8],
};
let op = P.dbl();
Expand Down Expand Up @@ -280,11 +280,11 @@ where
}

pub(crate) unconstrained fn new() -> Self {
CurveJ { x: BigNum::new(), y: BigNum::new(), z: BigNum::new(), is_infinity: false }
CurveJ { x: BigNum::zero(), y: BigNum::zero(), z: BigNum::zero(), is_infinity: false }
}

pub(crate) unconstrained fn point_at_infinity() -> Self {
CurveJ { x: BigNum::new(), y: BigNum::new(), z: BigNum::new(), is_infinity: true }
CurveJ { x: BigNum::zero(), y: BigNum::zero(), z: BigNum::zero(), is_infinity: true }
}

pub(crate) unconstrained fn sub(self, p2: Self) -> (Self, JTranscript<BigNum>) {
Expand Down Expand Up @@ -332,9 +332,9 @@ where
result
// let (_, PP): (BigNum, BigNum ) = BigNum::__compute_quadratic_expression([[U2, U1]], [[false, true]], [[U2, U1]], [[false, true]], [], []);
// let (_, X3): (BigNum, BigNum ) = BigNum::__compute_quadratic_expression(
// [[BigNum::new(), PP], [R, BigNum::new()]],
// [[BigNum::zero(), PP], [R, BigNum::zero()]],
// [[false, true], [false, false]],
// [[U1, U2], [R, BigNum::new()]],
// [[U1, U2], [R, BigNum::zero()]],
// [[false, false], [false, false]],
// [],
// []
Expand All @@ -357,7 +357,7 @@ where
// );
// let Z1Z2 = Z1.__mulmod(Z2);
// let (_, Z3): (BigNum, BigNum ) = BigNum::__compute_quadratic_expression(
// [[Z1Z2, BigNum::new()]],
// [[Z1Z2, BigNum::zero()]],
// [[false, false]],
// [[U2, U1]],
// [[false, true]],
Expand Down Expand Up @@ -403,9 +403,9 @@ where
[],
);
let (_, X3): (BigNum, BigNum) = BigNum::__compute_quadratic_expression(
[[BigNum::new(), PP], [R, BigNum::new()]],
[[BigNum::zero(), PP], [R, BigNum::zero()]],
[[false, true], [false, false]],
[[U1, U2], [R, BigNum::new()]],
[[U1, U2], [R, BigNum::zero()]],
[[false, false], [false, false]],
[],
[],
Expand All @@ -429,7 +429,7 @@ where
);
let Z1Z2 = Z1.__mul(Z2);
let (_, Z3): (BigNum, BigNum) = BigNum::__compute_quadratic_expression(
[[Z1Z2, BigNum::new()]],
[[Z1Z2, BigNum::zero()]],
[[false, false]],
[[U2, U1]],
[[false, true]],
Expand Down Expand Up @@ -609,7 +609,7 @@ where
let mut tables: [PointTable<BigNum>; Size] = [PointTable::empty(); Size];

let mut _inputs: [Self; Size] = [CurveJ::new(); Size];
let mut _scalars: [ScalarField<NScalarSlices>; Size] = [ScalarField::new(); Size];
let mut _scalars: [ScalarField<NScalarSlices>; Size] = [ScalarField::zero(); Size];
for i in 0..Size {
_inputs[i] =
CurveJ::conditional_select(CurveJ::one(), points[i], points[i].is_infinity);
Expand Down
Loading

0 comments on commit 98080a9

Please sign in to comment.