Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

corelib: circuit related utils improvements #6482

Merged
merged 5 commits into from
Oct 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions corelib/src/circuit.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -267,15 +267,15 @@ pub impl AddInputResultImpl<C> of AddInputResultTrait<C> {
AddInputResult::More(accumulator) => add_circuit_input(
accumulator, value.into_circuit_input_value()
),
AddInputResult::Done(_) => panic!("All inputs have been filled"),
AddInputResult::Done(_) => core::panic_with_felt252('All inputs have been filled'),
}
}
// Inlining to make sure possibly huge `C` won't be in a user function name.
#[inline]
fn done(self: AddInputResult<C>) -> CircuitData<C> {
match self {
AddInputResult::Done(data) => data,
AddInputResult::More(_) => panic!("Not all inputs have been filled"),
AddInputResult::More(_) => core::panic_with_felt252('Not all inputs have been filled'),
}
}
}
Expand Down Expand Up @@ -585,3 +585,16 @@ impl U384Zero of crate::num::traits::Zero<u384> {
!self.is_zero()
}
}

impl U384One of crate::num::traits::One<u384> {
fn one() -> u384 {
u384 { limb0: 1, limb1: 0, limb2: 0, limb3: 0 }
}

fn is_one(self: @u384) -> bool {
*self == Self::one()
}
fn is_non_one(self: @u384) -> bool {
!self.is_one()
}
}
31 changes: 31 additions & 0 deletions corelib/src/metaprogramming.cairo
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ impl IsTupleTupleSize14<
impl IsTupleTupleSize15<
E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14
> of IsTuple<(E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14)>;
impl IsTupleTupleSize16<
E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15
> of IsTuple<(E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15)>;

/// A trait for splitting a tuple into head element and a tail tuple, as well as reconstructing from
/// them.
Expand Down Expand Up @@ -549,6 +552,18 @@ impl TupleExtendFrontTupleSize14<
(element, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13)
}
}

impl TupleExtendFrontTupleSize15<
E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E
> of TupleExtendFront<(E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14), E> {
type Result = (E, E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14);
fn extend_front(
value: (E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14), element: E
) -> (E, E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14) nopanic {
let (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14) = value;
(element, e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
}
}
impl TupleExtendFrontFixedSizedArraySize0<T> of TupleExtendFront<[T; 0], T> {
type Result = [T; 1];
fn extend_front(value: [T; 0], element: T) -> [T; 1] nopanic {
Expand Down Expand Up @@ -777,6 +792,22 @@ impl TupleSnapForwardTupleSize15<
(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14)
}
}
impl TupleSnapForwardTupleSize16<
E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15
> of TupleSnapForward<(E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15)> {
type SnapForward = (
@E0, @E1, @E2, @E3, @E4, @E5, @E6, @E7, @E8, @E9, @E10, @E11, @E12, @E13, @E14, @E15
);
fn snap_forward(
self: @(E0, E1, E2, E3, E4, E5, E6, E7, E8, E9, E10, E11, E12, E13, E14, E15)
) -> (
@E0, @E1, @E2, @E3, @E4, @E5, @E6, @E7, @E8, @E9, @E10, @E11, @E12, @E13, @E14, @E15
) nopanic {
let (e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15) = self;
(e0, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10, e11, e12, e13, e14, e15)
}
}

impl TupleSnapForwardFixedSizedArraySized0<T> of TupleSnapForward<[T; 0]> {
type SnapForward = [@T; 0];
fn snap_forward(self: @[T; 0]) -> [@T; 0] nopanic {
Expand Down
46 changes: 23 additions & 23 deletions crates/cairo-lang-runner/src/profiling_test_data/circuit
Original file line number Diff line number Diff line change
Expand Up @@ -35,33 +35,33 @@ eval_circuit

//! > expected_profiling_info
Weight by sierra statement:
statement 64: 22 (eval_circuit<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>([0], [1], [45], [43], [8], [46], [47]) { fallthrough([48], [49], [50]) 94([51], [52], [53], [54]) })
statement 21: 7 (add_circuit_input<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>([10], [19]) { fallthrough([20]) 46([21]) })
statement 57: 7 (add_circuit_input<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>([21], [42]) { fallthrough([43]) 136([44]) })
statement 6: 6 (try_into_circuit_modulus([7]) { fallthrough([8]) 163() })
statement 59: 5 (get_circuit_descriptor<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>() -> ([45]))
statement 66: 5 (get_circuit_output<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>, core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>>([50]) -> ([55], [56]))
statement 92: 5 (store_temp<core::panics::PanicResult::<(core::circuit::u384,)>>([67]) -> ([67]))
statement 55: 22 (eval_circuit<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>([0], [1], [39], [37], [8], [40], [41]) { fallthrough([42], [43], [44]) 85([45], [46], [47], [48]) })
statement 21: 7 (add_circuit_input<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>([10], [19]) { fallthrough([20]) 37([21]) })
statement 48: 7 (add_circuit_input<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>([21], [36]) { fallthrough([37]) 127([38]) })
statement 6: 6 (try_into_circuit_modulus([7]) { fallthrough([8]) 142() })
statement 50: 5 (get_circuit_descriptor<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>() -> ([39]))
statement 57: 5 (get_circuit_output<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>, core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>>([44]) -> ([49], [50]))
statement 83: 5 (store_temp<core::panics::PanicResult::<(core::circuit::u384,)>>([61]) -> ([61]))
statement 5: 4 (store_temp<Tuple<BoundedInt<0, 79228162514264337593543950335>, BoundedInt<0, 79228162514264337593543950335>, BoundedInt<0, 79228162514264337593543950335>, BoundedInt<0, 79228162514264337593543950335>>>([7]) -> ([7]))
statement 19: 4 (store_temp<Tuple<U96Guarantee, U96Guarantee, U96Guarantee, U96Guarantee>>([19]) -> ([19]))
statement 56: 4 (store_temp<Tuple<U96Guarantee, U96Guarantee, U96Guarantee, U96Guarantee>>([42]) -> ([42]))
statement 47: 4 (store_temp<Tuple<U96Guarantee, U96Guarantee, U96Guarantee, U96Guarantee>>([36]) -> ([36]))
statement 18: 2 (store_temp<CircuitInputAccumulator<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>>([10]) -> ([10]))
statement 69: 2 (u96_limbs_less_than_guarantee_verify<4>([56]) { fallthrough([57]) 84([58]) })
statement 71: 2 (u96_limbs_less_than_guarantee_verify<3>([57]) { fallthrough([59]) 81([60]) })
statement 73: 2 (u96_limbs_less_than_guarantee_verify<2>([59]) { fallthrough([61]) 78([62]) })
statement 60: 2 (u96_limbs_less_than_guarantee_verify<4>([50]) { fallthrough([51]) 75([52]) })
statement 62: 2 (u96_limbs_less_than_guarantee_verify<3>([51]) { fallthrough([53]) 72([54]) })
statement 64: 2 (u96_limbs_less_than_guarantee_verify<2>([53]) { fallthrough([55]) 69([56]) })
statement 20: 1 (store_temp<RangeCheck96>([9]) -> ([9]))
statement 62: 1 (store_temp<BoundedInt<0, 0>>([46]) -> ([46]))
statement 63: 1 (store_temp<BoundedInt<1, 1>>([47]) -> ([47]))
statement 65: 1 (branch_align() -> ())
statement 67: 1 (store_temp<AddMod>([48]) -> ([48]))
statement 68: 1 (store_temp<MulMod>([49]) -> ([49]))
statement 76: 1 (store_temp<U96Guarantee>([63]) -> ([64]))
statement 77: 1 (jump() { 86() })
statement 86: 1 (u96_guarantee_verify([9], [64]) -> ([65]))
statement 89: 1 (store_temp<AddMod>([48]) -> ([48]))
statement 90: 1 (store_temp<MulMod>([49]) -> ([49]))
statement 91: 1 (store_temp<RangeCheck96>([65]) -> ([65]))
statement 93: 1 (return([48], [49], [65], [67]))
statement 53: 1 (store_temp<BoundedInt<0, 0>>([40]) -> ([40]))
statement 54: 1 (store_temp<BoundedInt<1, 1>>([41]) -> ([41]))
statement 56: 1 (branch_align() -> ())
statement 58: 1 (store_temp<AddMod>([42]) -> ([42]))
statement 59: 1 (store_temp<MulMod>([43]) -> ([43]))
statement 67: 1 (store_temp<U96Guarantee>([57]) -> ([58]))
statement 68: 1 (jump() { 77() })
statement 77: 1 (u96_guarantee_verify([9], [58]) -> ([59]))
statement 80: 1 (store_temp<AddMod>([42]) -> ([42]))
statement 81: 1 (store_temp<MulMod>([43]) -> ([43]))
statement 82: 1 (store_temp<RangeCheck96>([59]) -> ([59]))
statement 84: 1 (return([42], [43], [59], [61]))
Weight by concrete libfunc:
libfunc eval_circuit<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>: 22
libfunc add_circuit_input<Circuit<(core::circuit::MulModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::SubModGate::<core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>, core::circuit::CircuitInput::<1>>>, core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>, core::circuit::InverseGate::<core::circuit::AddModGate::<core::circuit::CircuitInput::<0>, core::circuit::CircuitInput::<1>>>)>>: 14
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@
"0x1",
"0x208b7fff7fff7ffe",
"0x1104800180018000",
"0x1ab",
"0x196",
"0x482480017fff8000",
"0x1aa",
"0x195",
"0x480080007fff8000",
"0x480080047fff8000",
"0x484480017fff8000",
Expand Down Expand Up @@ -146,13 +146,13 @@
"0x20680017fff7ffb",
"0x4",
"0x10780017fff7fff",
"0xfa",
"0xe5",
"0x402480017fff7ffb",
"0x1",
"0x20680017fff7fff",
"0x4",
"0x10780017fff7fff",
"0xf4",
"0xdf",
"0x482680017ffd8000",
"0x4",
"0x482680017ffd8000",
Expand All @@ -175,31 +175,22 @@
"0x4",
"0x48307fff80007ff9",
"0x20680017fff7fff",
"0x1b",
"0x12",
"0x40780017fff7fff",
"0x28",
"0x2b",
"0x40780017fff7fff",
"0x1",
"0x480680017fff8000",
"0x46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3",
"0x400080007ffe7fff",
"0x480680017fff8000",
"0x0",
"0x400080017ffd7fff",
"0x480680017fff8000",
"0x416c6c20696e707574732068617665206265656e2066696c6c6564",
"0x400080027ffc7fff",
"0x480680017fff8000",
"0x1b",
"0x400080037ffb7fff",
"0x400080007ffe7fff",
"0x480a7ffb7fff8000",
"0x480a7ffc7fff8000",
"0x48127fce7fff8000",
"0x480680017fff8000",
"0x1",
"0x48127ff77fff8000",
"0x482480017ff68000",
"0x4",
"0x48127ffa7fff8000",
"0x482480017ff98000",
"0x1",
"0x208b7fff7fff7ffe",
"0x480680017fff8000",
"0x6",
Expand All @@ -219,9 +210,9 @@
"0x20680017fff7fff",
"0x97",
"0x1104800180018000",
"0xc1",
"0xb5",
"0x482480017fff8000",
"0xc0",
"0xb4",
"0x480680017fff8000",
"0xe",
"0x482480017ffe8000",
Expand Down Expand Up @@ -368,32 +359,20 @@
"0x4",
"0x208b7fff7fff7ffe",
"0x40780017fff7fff",
"0x21",
"0x25",
"0x40780017fff7fff",
"0x1",
"0x480680017fff8000",
"0x46a6158a16a947e5916b2a2ca68501a45e93d7110e81aa2d6438b1c57c879a3",
"0x400080007ffe7fff",
"0x480680017fff8000",
"0x1",
"0x400080017ffd7fff",
"0x480680017fff8000",
"0x4e6f7420616c6c20696e707574732068617665206265656e2066696c6c6564",
"0x400080027ffc7fff",
"0x480680017fff8000",
"0x0",
"0x400080037ffb7fff",
"0x480680017fff8000",
"0x0",
"0x400080047ffa7fff",
"0x400080007ffe7fff",
"0x480a7ffb7fff8000",
"0x480a7ffc7fff8000",
"0x48127fce7fff8000",
"0x480680017fff8000",
"0x1",
"0x48127ff67fff8000",
"0x482480017ff58000",
"0x5",
"0x48127ffa7fff8000",
"0x482480017ff98000",
"0x1",
"0x208b7fff7fff7ffe",
"0x40780017fff7fff",
"0x34",
Expand Down Expand Up @@ -466,7 +445,7 @@
],
"bytecode_segment_lengths": [
127,
282,
261,
52
],
"hints": [
Expand Down Expand Up @@ -583,7 +562,7 @@
]
],
[
249,
240,
[
{
"EvalCircuit": {
Expand Down Expand Up @@ -616,7 +595,7 @@
]
],
[
284,
275,
[
{
"AllocSegment": {
Expand All @@ -629,7 +608,7 @@
]
],
[
341,
332,
[
{
"AllocSegment": {
Expand All @@ -642,7 +621,7 @@
]
],
[
367,
358,
[
{
"AllocSegment": {
Expand All @@ -655,7 +634,7 @@
]
],
[
395,
374,
[
{
"AllocSegment": {
Expand Down Expand Up @@ -712,31 +691,31 @@
]
],
[
249,
240,
[
"\nfrom starkware.cairo.lang.builtins.modulo.mod_builtin_runner import ModBuiltinRunner\n\nModBuiltinRunner.fill_memory(\n memory=memory,\n add_mod=(memory[fp + -5], builtin_runners[\"add_mod_builtin\"], memory[ap + -6]),\n mul_mod=(memory[fp + -4], builtin_runners[\"mul_mod_builtin\"], memory[ap + -4]),\n)\n"
]
],
[
284,
275,
[
"memory[ap + 0] = segments.add()"
]
],
[
341,
332,
[
"memory[ap + 0] = segments.add()"
]
],
[
367,
358,
[
"memory[ap + 0] = segments.add()"
]
],
[
395,
374,
[
"memory[ap + 0] = segments.add()"
]
Expand Down
Loading