Skip to content

Commit

Permalink
fix NoStopPointer issue
Browse files Browse the repository at this point in the history
  • Loading branch information
FrancoGiachetta committed Sep 26, 2024
1 parent 5e2a723 commit 32b62ea
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 0 deletions.
3 changes: 3 additions & 0 deletions cairo1-run/src/cairo_run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1156,6 +1156,9 @@ fn finalize_builtins(
"Pedersen" => BuiltinName::pedersen,
"Output" => BuiltinName::output,
"Ecdsa" => BuiltinName::ecdsa,
"RangeCheck96" => BuiltinName::range_check96,
"AddMod" => BuiltinName::add_mod,
"MulMod" => BuiltinName::mul_mod,
_ => {
stack_pointer.offset += size as usize;
continue;
Expand Down
43 changes: 43 additions & 0 deletions cairo_programs/cairo-1-programs/serialized_output/circuit.cairo
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
use core::circuit::{
RangeCheck96, AddMod, MulMod, u96, CircuitElement, CircuitInput, circuit_add,
circuit_sub, circuit_mul, circuit_inverse, EvalCircuitTrait, u384,
CircuitOutputsTrait, CircuitModulus, AddInputResultTrait, CircuitInputs,
};
use array::ArrayTrait;

fn main() -> Array<felt252> {
let in1 = CircuitElement::<CircuitInput<0>> {};
let in2 = CircuitElement::<CircuitInput<1>> {};
let add1 = circuit_add(in1, in2);
let mul1 = circuit_mul(add1, in1);
let mul2 = circuit_mul(mul1, add1);
let inv1 = circuit_inverse(mul2);
let sub1 = circuit_sub(inv1, in2);
let sub2 = circuit_sub(sub1, mul2);
let inv2 = circuit_inverse(sub2);
let add2 = circuit_add(inv2, inv2);

let modulus = TryInto::<_, CircuitModulus>::try_into([17, 14, 14, 14]).unwrap();

let outputs = (add2,)
.new_inputs()
.next([9, 2, 9, 3])
.next([5, 7, 0, 8])
.done()
.eval(modulus)
.unwrap();

let circuit_output = outputs.get_output(add2);
let mut limbs_output = ArrayTrait::new();

limbs_output.append(circuit_output.limb0);
limbs_output.append(circuit_output.limb1);
limbs_output.append(circuit_output.limb2);
limbs_output.append(circuit_output.limb3);

let mut output: Array<felt252> = ArrayTrait::new();

limbs_output.serialize(ref output);

output
}

0 comments on commit 32b62ea

Please sign in to comment.