pub mod backend;
pub mod circuit;
pub mod circuits;
pub mod error;
pub mod gates;
#[cfg(feature = "gpu")]
pub mod gpu;
pub mod sim;
pub use backend::factored::FactoredBackend;
pub use backend::factored_stabilizer::FactoredStabilizerBackend;
pub use backend::mps::MpsBackend;
pub use backend::product::ProductStateBackend;
pub use backend::sparse::SparseBackend;
pub use backend::stabilizer::StabilizerBackend;
pub use backend::statevector::StatevectorBackend;
pub use backend::tensornetwork::TensorNetworkBackend;
pub use circuit::builder::CircuitBuilder;
pub use circuit::{Circuit, ClassicalCondition, Instruction, SvgOptions, TextOptions};
pub use error::{PrismError, Result};
pub use gates::{BatchPhaseData, Gate, McuData, Multi2qData, MultiFusedData};
pub use sim::compiled::{
compile_forward, compile_measurements, run_shots_compiled, CompiledSampler,
CorrelatorAccumulator, HistogramAccumulator, MarginalsAccumulator, NullAccumulator,
PackedShots, ParityStats, PauliExpectationAccumulator, ShotAccumulator, ShotLayout,
};
pub use sim::homological::{
noisy_marginals_analytical, run_shots_homological, ErrorChainComplex, HomologicalSampler,
};
pub use sim::noise::{
compile_noisy, run_shots_noisy, NoiseChannel, NoiseEvent, NoiseModel, NoisyCompiledSampler,
ReadoutError,
};
pub use sim::stabilizer_rank::{
run_stabilizer_rank, run_stabilizer_rank_approx, stabilizer_overlap_sq, StabRankResult,
};
pub use sim::unified_pauli::{
run_spd, run_spp, spd_to_probabilities, spp_to_probabilities, SpdResult, SppResult,
};
pub use sim::{
bitstring, run, run_counts, run_marginals, run_on, run_qasm, run_shots, run_shots_with,
run_shots_with_noise, run_with, BackendKind, FactoredBlock, Probabilities, ShotsResult,
SimulationResult,
};
#[cfg(feature = "gpu")]
pub use sim::compiled::{run_shots_compiled_with_gpu, DevicePackedShots};
#[cfg(feature = "gpu")]
pub use sim::{run_with_gpu, run_with_stabilizer_gpu};