openvm_native_circuit/
utils.rs
1use openvm_circuit::arch::{Streams, SystemConfig, VmExecutor};
2use openvm_instructions::program::Program;
3use openvm_stark_sdk::p3_baby_bear::BabyBear;
4
5use crate::{Native, NativeConfig};
6
7pub fn execute_program(program: Program<BabyBear>, input_stream: impl Into<Streams<BabyBear>>) {
8 let system_config = SystemConfig::default()
9 .with_public_values(4)
10 .with_max_segment_len((1 << 25) - 100);
11 let config = NativeConfig::new(system_config, Native);
12 let executor = VmExecutor::<BabyBear, NativeConfig>::new(config);
13
14 executor.execute(program, input_stream).unwrap();
15}
16
17pub(crate) const fn const_max(a: usize, b: usize) -> usize {
18 [a, b][(a < b) as usize]
19}