Skip to content

Commit

Permalink
rewrite fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
feltroidprime committed Dec 6, 2024
1 parent 52e85ed commit a205af7
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 63 deletions.
11 changes: 6 additions & 5 deletions src/src/circuits/tower_circuits.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -1635,7 +1635,7 @@ pub fn run_BLS12_381_E12T_MUL_circuit(X: E12T, Y: E12T) -> (E12T,) {
return (res,);
}
#[inline(always)]
fn run_BLS12_381_FP2_MUL_circuit(a0: u384, a1: u384, b0: u384, b1: u384) -> (u384, u384) {
pub fn run_BLS12_381_FP2_MUL_circuit(a0: u384, a1: u384, b0: u384, b1: u384) -> (u384, u384) {
// INPUT stack
let (in0, in1, in2) = (CE::<CI<0>> {}, CE::<CI<1>> {}, CE::<CI<2>> {});
let in3 = CE::<CI<3>> {};
Expand All @@ -1648,7 +1648,7 @@ fn run_BLS12_381_FP2_MUL_circuit(a0: u384, a1: u384, b0: u384, b1: u384) -> (u38

let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus

let mut circuit_inputs = (t2, t5,).new_inputs();
let mut circuit_inputs = (t2, t5).new_inputs();
// Prefill constants:

// Fill inputs:
Expand All @@ -1662,6 +1662,7 @@ fn run_BLS12_381_FP2_MUL_circuit(a0: u384, a1: u384, b0: u384, b1: u384) -> (u38
let res1: u384 = outputs.get_output(t5);
return (res0, res1);
}
#[inline(always)]
pub fn run_BLS12_381_TOWER_MILLER_BIT0_1P_circuit(
yInv_0: u384, xNegOverY_0: u384, Q_0: G2Point, M_i: E12T,
) -> (G2Point, E12T) {
Expand Down Expand Up @@ -4362,7 +4363,7 @@ pub fn run_BN254_E12T_MUL_circuit(X: E12T, Y: E12T) -> (E12T,) {
return (res,);
}
#[inline(always)]
fn run_BN254_FP2_MUL_circuit(a0: u384, a1: u384, b0: u384, b1: u384) -> (u384, u384) {
pub fn run_BN254_FP2_MUL_circuit(a0: u384, a1: u384, b0: u384, b1: u384) -> (u384, u384) {
// INPUT stack
let (in0, in1, in2) = (CE::<CI<0>> {}, CE::<CI<1>> {}, CE::<CI<2>> {});
let in3 = CE::<CI<3>> {};
Expand All @@ -4375,7 +4376,7 @@ fn run_BN254_FP2_MUL_circuit(a0: u384, a1: u384, b0: u384, b1: u384) -> (u384, u

let modulus = get_BN254_modulus(); // BN254 prime field modulus

let mut circuit_inputs = (t2, t5,).new_inputs();
let mut circuit_inputs = (t2, t5).new_inputs();
// Prefill constants:

// Fill inputs:
Expand Down Expand Up @@ -6161,6 +6162,6 @@ mod tests {
run_BN254_E12T_FROBENIUS_SQUARE_circuit, run_BN254_E12T_FROBENIUS_circuit,
run_BN254_E12T_INVERSE_circuit, run_BN254_E12T_MUL_circuit, run_BN254_FP2_MUL_circuit,
run_BN254_TOWER_MILLER_BIT0_1P_circuit, run_BN254_TOWER_MILLER_BIT1_1P_circuit,
run_BN254_TOWER_MILLER_FINALIZE_BN_1P_circuit, run_FP6_NEG_circuit
run_BN254_TOWER_MILLER_FINALIZE_BN_1P_circuit, run_FP6_NEG_circuit,
};
}
109 changes: 51 additions & 58 deletions src/src/ec_ops_g2.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use garaga::circuits::tower_circuits::{run_BLS12_381_FP2_MUL_circuit, run_BN254_
use core::option::Option;
use garaga::core::circuit::AddInputResultTrait2;
use garaga::definitions::{
G2Point, G2PointZero, get_BLS12_381_modulus, get_b2, get_a, get_p, get_modulus
G2Point, G2PointZero, get_BLS12_381_modulus, get_b2, get_a, get_p, get_modulus,
};
use garaga::circuits::ec;
use garaga::utils::u384_assert_zero;
Expand All @@ -21,57 +21,50 @@ const X_SEED_BN254: u256 = 0x44E992B44A6909F1;
const X_SEED_BLS12_381: u256 = 0xD201000000010000; // negated .


const ENDO_U_A0_BN254: u384 =
u384 {
limb0: 0xc2c3330c99e39557176f553d,
limb1: 0x4c0bec3cf559b143b78cc310,
limb2: 0x2fb347984f7911f7,
limb3: 0x0
};
const ENDO_U_A1_BN254: u384 =
u384 {
limb0: 0xb7c9dce1665d51c640fcba2,
limb1: 0x4ba4cc8bd75a079432ae2a1d,
limb2: 0x16c9e55061ebae20,
limb3: 0x0
};
const ENDO_V_A0_BN254: u384 =
u384 {
limb0: 0xa9c95998dc54014671a0135a,
limb1: 0xdc5ec698b6e2f9b9dbaae0ed,
limb2: 0x63cf305489af5dc,
limb3: 0x0
};
const ENDO_V_A1_BN254: u384 =
u384 {
limb0: 0x8fa25bd282d37f632623b0e3,
limb1: 0x704b5a7ec796f2b21807dc9,
limb2: 0x7c03cbcac41049a,
limb3: 0x0
};
const ENDO_U_A0_BN254: u384 = u384 {
limb0: 0xc2c3330c99e39557176f553d,
limb1: 0x4c0bec3cf559b143b78cc310,
limb2: 0x2fb347984f7911f7,
limb3: 0x0,
};
const ENDO_U_A1_BN254: u384 = u384 {
limb0: 0xb7c9dce1665d51c640fcba2,
limb1: 0x4ba4cc8bd75a079432ae2a1d,
limb2: 0x16c9e55061ebae20,
limb3: 0x0,
};
const ENDO_V_A0_BN254: u384 = u384 {
limb0: 0xa9c95998dc54014671a0135a,
limb1: 0xdc5ec698b6e2f9b9dbaae0ed,
limb2: 0x63cf305489af5dc,
limb3: 0x0,
};
const ENDO_V_A1_BN254: u384 = u384 {
limb0: 0x8fa25bd282d37f632623b0e3,
limb1: 0x704b5a7ec796f2b21807dc9,
limb2: 0x7c03cbcac41049a,
limb3: 0x0,
};

const ENDO_U_A0_BLS12_381: u384 = u384 { limb0: 0x0, limb1: 0x0, limb2: 0x0, limb3: 0x0 };
const ENDO_U_A1_BLS12_381: u384 =
u384 {
limb0: 0x4f49fffd8bfd00000000aaad,
limb1: 0x897d29650fb85f9b409427eb,
limb2: 0x63d4de85aa0d857d89759ad4,
limb3: 0x1a0111ea397fe699ec024086
};
const ENDO_V_A0_BLS12_381: u384 =
u384 {
limb0: 0x3e67fa0af1ee7b04121bdea2,
limb1: 0xef396489f61eb45e304466cf,
limb2: 0xd77a2cd91c3dedd930b1cf60,
limb3: 0x135203e60180a68ee2e9c448
};
const ENDO_V_A1_BLS12_381: u384 =
u384 {
limb0: 0x72ec05f4c81084fbede3cc09,
limb1: 0x77f76e17009241c5ee67992f,
limb2: 0x6bd17ffe48395dabc2d3435e,
limb3: 0x6af0e0437ff400b6831e36d
};
const ENDO_U_A1_BLS12_381: u384 = u384 {
limb0: 0x4f49fffd8bfd00000000aaad,
limb1: 0x897d29650fb85f9b409427eb,
limb2: 0x63d4de85aa0d857d89759ad4,
limb3: 0x1a0111ea397fe699ec024086,
};
const ENDO_V_A0_BLS12_381: u384 = u384 {
limb0: 0x3e67fa0af1ee7b04121bdea2,
limb1: 0xef396489f61eb45e304466cf,
limb2: 0xd77a2cd91c3dedd930b1cf60,
limb3: 0x135203e60180a68ee2e9c448,
};
const ENDO_V_A1_BLS12_381: u384 = u384 {
limb0: 0x72ec05f4c81084fbede3cc09,
limb1: 0x77f76e17009241c5ee67992f,
limb2: 0x6bd17ffe48395dabc2d3435e,
limb3: 0x6af0e0437ff400b6831e36d,
};


#[generate_trait]
Expand Down Expand Up @@ -132,7 +125,7 @@ impl G2PointImpl of G2PointTrait {
Option::None => false,
}
},
_ => { false }
_ => { false },
}
}
fn negate(self: @G2Point, curve_index: usize) -> G2Point {
Expand All @@ -141,7 +134,7 @@ impl G2PointImpl of G2PointTrait {
x0: self.x0,
x1: self.x1,
y0: neg_mod_p(self.y0, get_p(curve_index)),
y1: neg_mod_p(self.y1, get_p(curve_index))
y1: neg_mod_p(self.y1, get_p(curve_index)),
};
}
}
Expand Down Expand Up @@ -185,10 +178,10 @@ fn psi(pt: G2Point, curve_index: usize) -> G2Point {
match curve_index {
0 => {
let (px0, px1) = run_BN254_FP2_MUL_circuit(
pt.x0, neg_mod_p(pt.x1, get_p(curve_index)), ENDO_U_A0_BN254, ENDO_U_A1_BN254
pt.x0, neg_mod_p(pt.x1, get_p(curve_index)), ENDO_U_A0_BN254, ENDO_U_A1_BN254,
);
let (py0, py1) = run_BN254_FP2_MUL_circuit(
pt.y0, neg_mod_p(pt.y1, get_p(curve_index)), ENDO_V_A0_BN254, ENDO_V_A1_BN254
pt.y0, neg_mod_p(pt.y1, get_p(curve_index)), ENDO_V_A0_BN254, ENDO_V_A1_BN254,
);
return G2Point { x0: px0, x1: px1, y0: py0, y1: py1 };
},
Expand All @@ -197,17 +190,17 @@ fn psi(pt: G2Point, curve_index: usize) -> G2Point {
pt.x0,
neg_mod_p(pt.x1, get_p(curve_index)),
ENDO_U_A0_BLS12_381,
ENDO_U_A1_BLS12_381
ENDO_U_A1_BLS12_381,
);
let (py0, py1) = run_BLS12_381_FP2_MUL_circuit(
pt.y0,
neg_mod_p(pt.y1, get_p(curve_index)),
ENDO_V_A0_BLS12_381,
ENDO_V_A1_BLS12_381
ENDO_V_A1_BLS12_381,
);
return G2Point { x0: px0, x1: px1, y0: py0, y1: py1 };
},
_ => { panic_with_felt252('invalid curve id fp2mul') }
_ => { panic_with_felt252('invalid curve id fp2mul') },
}
}

Expand Down Expand Up @@ -238,7 +231,7 @@ fn get_bits_little(s: u256) -> Array<felt252> {

#[inline]
fn ec_safe_add_with_options(
P: Option<G2Point>, Q: Option<G2Point>, curve_index: usize
P: Option<G2Point>, Q: Option<G2Point>, curve_index: usize,
) -> Option<G2Point> {
// assumes that the points are on the curve and not the point at infinity.
// Returns None if the points are the same and opposite y coordinates (Point at infinity)
Expand Down

0 comments on commit a205af7

Please sign in to comment.