openvm_circuit_primitives/lib.rs
1//! This crate contains a collection of primitives for use when building circuits.
2//! The primitives are separated into two types: standalone
3//! [Air](openvm_stark_backend::p3_air::Air)s and [SubAir]s.
4//!
5//! The following modules contain standalone [Air](openvm_stark_backend::p3_air::Air)s:
6//! - [range]
7//! - [range_gate]
8//! - [range_tuple]
9//! - [var_range]
10//! - [xor]
11//!
12//! The following modules contain [SubAir]s:
13//! - [assert_less_than]
14//! - [bigint]
15//! - [bitwise_op_lookup]
16//! - [encoder]
17//! - [is_equal]
18//! - [is_equal_array]
19//! - [is_less_than]
20//! - [is_less_than_array]
21//! - [is_zero]
22
23/// Derive macros
24pub use openvm_circuit_primitives_derive::*;
25
26pub mod assert_less_than;
27pub mod bigint;
28pub mod bitwise_op_lookup;
29pub mod encoder;
30pub mod is_equal;
31pub mod is_equal_array;
32pub mod is_less_than;
33pub mod is_less_than_array;
34pub mod is_zero;
35pub mod range;
36pub mod range_gate;
37pub mod range_tuple;
38pub mod utils;
39pub mod var_range;
40pub mod xor;
41
42mod sub_air;
43pub use sub_air::*;
44
45#[cfg(feature = "cuda")]
46pub(crate) mod cuda_abi;