mod circuits;
mod compare;
#[cfg(feature = "cuda")]
mod gpu;
mod oracle;
mod random;
mod rows;
mod transport;
pub use circuits::*;
pub use compare::*;
#[cfg(feature = "cuda")]
pub use gpu::{
assert_invariants_device, from_host_with_nvrtc_options, refine_to, set_fault_plan, DeviceSplit,
FaultPlan, WireFault,
};
pub use oracle::*;
pub use random::*;
pub use rows::{circuit_generators, count_remote_deltas, GeneratorWeight};
pub use transport::*;
pub use crate::engine::bucketed::apply_layer_bucketed;
pub use crate::engine::partitioned::in_process::InProcessTransport;
pub const BITS_AGREE_EVERY: usize = crate::engine::driver::BITS_AGREE_EVERY;
pub use crate::pauli_sum::hash::B_MAX_BITS;
pub use crate::pauli_sum::storage::{
desired_bits, DEFAULT_HASH_SEED, DEFAULT_MIN_BUCKETS, DEFAULT_TARGET_BUCKET_LEN,
};
#[cfg(feature = "phase-timing")]
pub const TIMER_READ_OVERHEAD_NS: u64 = 25;
const ZERO: num_complex::Complex64 = num_complex::Complex64::new(0.0, 0.0);
#[cfg(feature = "cuda")]
#[macro_export]
macro_rules! require_cuda {
() => {
if !$crate::gpu::cuda_available() {
return;
}
};
}
#[cfg(feature = "mpi")]
pub fn mpi_with_chunk_bytes(
transport: crate::mpi::MpiTransport,
bytes: usize,
) -> crate::mpi::MpiTransport {
transport.with_chunk_bytes(bytes)
}
#[cfg(feature = "mpi")]
pub fn mpi_build_library_version() -> &'static str {
crate::mpi::MpiTransport::build_library_version()
}
#[cfg(test)]
mod tests;