mod circuit;
mod dag;
mod encode;
mod factored;
mod factory;
mod layout;
mod masm;
mod quotient;
mod randomness;
mod registry;
mod pipeline;
#[cfg(test)]
mod tests;
#[cfg(test)]
mod unit_tests;
pub const EXT_DEGREE: usize = 2;
#[derive(Debug, thiserror::Error)]
pub enum AceError {
#[error("invalid input length: expected {expected}, got {got}")]
InvalidInputLength { expected: usize, got: usize },
#[error("invalid input layout: {message}")]
InvalidInputLayout { message: String },
}
#[cfg(any(test, feature = "testing"))]
pub mod testing;
#[cfg(any(test, feature = "testing"))]
pub use crate::dag::{PeriodicColumnData, build_verifier_dag, build_verifier_dag_from_ir};
pub use crate::{
circuit::{AceCircuit, emit_circuit},
dag::{AceDag, DagBuilder, DagSnapshot, NodeId, NodeKind},
encode::EncodedCircuit,
factored::ShuffleEncodeBuffer,
factory::{FactoredCircuitFactory, FactoredEncodedCircuit, PackedLeafScratch},
layout::{InputCounts, InputKey, InputLayout},
masm::{MasmConstraintsEvalConfig, render_masm_constraints_eval},
pipeline::{
AceArtifacts, AceConfig, FactoredMultiAirCircuit, LayoutKind, build_ace_circuit_for_air,
build_ace_dag_for_air, build_factored_multi_air_ace_circuit, build_multi_air_ace_circuit,
},
registry::{
MAX_REGISTRY_AIRS, RegistryLayout, ceil_log2, factorial, fold_row_to_root, order_from_tag,
order_tag, padding_leaf, path_in_verified_tree, subtree_leaves, verify_row,
},
};