Skip to content

Commit

Permalink
Merge branch 'main' into mpc-calldata-builder
Browse files Browse the repository at this point in the history
  • Loading branch information
raugfer committed Oct 1, 2024
2 parents 248c5d3 + d416591 commit 9ac0f5a
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 262 deletions.
3 changes: 1 addition & 2 deletions hydra/garaga/modulo_circuit.py
Original file line number Diff line number Diff line change
Expand Up @@ -1109,8 +1109,7 @@ def compile_circuit_cairo_1(

if curve_index is not None:
code += f"""
let modulus = TryInto::<_, CircuitModulus>::try_into([{','.join([hex(limb) for limb in bigint_split(self.field.p, N_LIMBS, BASE)])}])
.unwrap(); // {CurveID(self.curve_id).name} prime field modulus
let modulus = get_{CurveID(self.curve_id).name}_modulus(); // {CurveID(self.curve_id).name} prime field modulus
"""
else:
code += """
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ def compilation_mode_to_file_header(mode: int) -> str:
use garaga::core::circuit::AddInputResultTrait2;
use core::circuit::CircuitElement as CE;
use core::circuit::CircuitInput as CI;
use garaga::definitions::{get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line};
use garaga::definitions::{get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient, G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line, get_BLS12_381_modulus,get_BN254_modulus};
use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt};
use core::option::Option;\n
"""
Expand Down
19 changes: 3 additions & 16 deletions src/src/basic_field_ops.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use garaga::core::circuit::AddInputResultTrait2;
use garaga::utils::hashing::hades_permutation;
use core::circuit::CircuitElement as CE;
use core::circuit::CircuitInput as CI;
use garaga::definitions::E12D;
use garaga::definitions::{E12D, get_BLS12_381_modulus, get_BN254_modulus, get_SECP256K1_modulus};

const POW_2_32_252: felt252 = 0x100000000;
const POW_2_64_252: felt252 = 0x10000000000000000;
Expand Down Expand Up @@ -54,10 +54,7 @@ fn compute_yInvXnegOverY_BN254(x: u384, y: u384) -> (u384, u384) {
let xNeg = circuit_sub(in1, in2);
let xNegOverY = circuit_mul(xNeg, yInv);

let modulus = TryInto::<
_, CircuitModulus
>::try_into([0x6871ca8d3c208c16d87cfd47, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0])
.unwrap(); // BN254 prime field modulus
let modulus = get_BN254_modulus(); // BN254 prime field modulus

let outputs = (yInv, xNegOverY)
.new_inputs()
Expand All @@ -80,17 +77,7 @@ fn compute_yInvXnegOverY_BLS12_381(x: u384, y: u384) -> (u384, u384) {
let xNeg = circuit_sub(in1, in2);
let xNegOverY = circuit_mul(xNeg, yInv);

let modulus = TryInto::<
_, CircuitModulus
>::try_into(
[
0xb153ffffb9feffffffffaaab,
0x6730d2a0f6b0f6241eabfffe,
0x434bacd764774b84f38512bf,
0x1a0111ea397fe69a4b1ba7b6
]
)
.unwrap(); // BLS12_381 prime field modulus
let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus

let outputs = (yInv, xNegOverY)
.new_inputs()
Expand Down
37 changes: 6 additions & 31 deletions src/src/circuits/extf_mul.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ use core::circuit::CircuitElement as CE;
use core::circuit::CircuitInput as CI;
use garaga::definitions::{
get_a, get_b, get_p, get_g, get_min_one, G1Point, G2Point, E12D, u288, E12DMulQuotient,
G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line
G1G2Pair, BNProcessedPair, BLSProcessedPair, MillerLoopResultScalingFactor, G2Line,
get_BLS12_381_modulus, get_BN254_modulus
};
use garaga::ec_ops::{SlopeInterceptOutput, FunctionFeltEvaluations, FunctionFelt};
use core::option::Option;
Expand Down Expand Up @@ -45,17 +46,7 @@ fn run_BLS12_381_EVAL_E12D_circuit(f: E12D<u384>, z: u384) -> (u384,) {
let t20 = circuit_mul(t19, in12); // Eval X Horner step: multiply by z
let t21 = circuit_add(in0, t20); // Eval X Horner step: add coefficient_0

let modulus = TryInto::<
_, CircuitModulus
>::try_into(
[
0xb153ffffb9feffffffffaaab,
0x6730d2a0f6b0f6241eabfffe,
0x434bacd764774b84f38512bf,
0x1a0111ea397fe69a4b1ba7b6
]
)
.unwrap(); // BLS12_381 prime field modulus
let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus

let mut circuit_inputs = (t21,).new_inputs();
// Prefill constants:
Expand Down Expand Up @@ -184,17 +175,7 @@ fn run_BLS12_381_FP12_MUL_ASSERT_ONE_circuit(
let t80 = circuit_sub(t78, t79); // (X(z) * Y(z)) - (Q(z) * P(z))
let t81 = circuit_sub(t80, in2); // (X(z) * Y(z) - Q(z) * P(z)) - 1

let modulus = TryInto::<
_, CircuitModulus
>::try_into(
[
0xb153ffffb9feffffffffaaab,
0x6730d2a0f6b0f6241eabfffe,
0x434bacd764774b84f38512bf,
0x1a0111ea397fe69a4b1ba7b6
]
)
.unwrap(); // BLS12_381 prime field modulus
let modulus = get_BLS12_381_modulus(); // BLS12_381 prime field modulus

let mut circuit_inputs = (t81,).new_inputs();
// Prefill constants:
Expand Down Expand Up @@ -282,10 +263,7 @@ fn run_BN254_EVAL_E12D_circuit(f: E12D<u288>, z: u384) -> (u384,) {
let t20 = circuit_mul(t19, in12); // Eval X Horner step: multiply by z
let t21 = circuit_add(in0, t20); // Eval X Horner step: add coefficient_0

let modulus = TryInto::<
_, CircuitModulus
>::try_into([0x6871ca8d3c208c16d87cfd47, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0])
.unwrap(); // BN254 prime field modulus
let modulus = get_BN254_modulus(); // BN254 prime field modulus

let mut circuit_inputs = (t21,).new_inputs();
// Prefill constants:
Expand Down Expand Up @@ -414,10 +392,7 @@ fn run_BN254_FP12_MUL_ASSERT_ONE_circuit(
let t80 = circuit_sub(t78, t79); // (X(z) * Y(z)) - (Q(z) * P(z))
let t81 = circuit_sub(t80, in2); // (X(z) * Y(z) - Q(z) * P(z)) - 1

let modulus = TryInto::<
_, CircuitModulus
>::try_into([0x6871ca8d3c208c16d87cfd47, 0xb85045b68181585d97816a91, 0x30644e72e131a029, 0x0])
.unwrap(); // BN254 prime field modulus
let modulus = get_BN254_modulus(); // BN254 prime field modulus

let mut circuit_inputs = (t81,).new_inputs();
// Prefill constants:
Expand Down
Loading

0 comments on commit 9ac0f5a

Please sign in to comment.