mod eq_iszero; mod not; use plonky2::field::extension::Extendable; use plonky2::field::packed::PackedField; use plonky2::hash::hash_types::RichField; use plonky2::iop::ext_target::ExtensionTarget; use crate::constraint_consumer::{ConstraintConsumer, RecursiveConstraintConsumer}; use crate::cpu::registers; pub fn generate(lv: &mut [F; registers::NUM_CPU_COLUMNS]) { let cycle_filter = lv[registers::IS_CPU_CYCLE].to_canonical_u64(); if cycle_filter == 0 { return; } assert_eq!(cycle_filter, 1); not::generate(lv); eq_iszero::generate(lv); } pub fn eval_packed( lv: &[P; registers::NUM_CPU_COLUMNS], yield_constr: &mut ConstraintConsumer

, ) { not::eval_packed(lv, yield_constr); eq_iszero::eval_packed(lv, yield_constr); } pub fn eval_ext_circuit, const D: usize>( builder: &mut plonky2::plonk::circuit_builder::CircuitBuilder, lv: &[ExtensionTarget; registers::NUM_CPU_COLUMNS], yield_constr: &mut RecursiveConstraintConsumer, ) { not::eval_ext_circuit(builder, lv, yield_constr); eq_iszero::eval_ext_circuit(builder, lv, yield_constr); }