pub mod backend;
pub mod circuit;
pub mod circuits;
#[cfg(feature = "distributed")]
pub mod distributed;
pub mod error;
pub mod gates;
#[cfg(feature = "gpu")]
pub mod gpu;
pub mod qec;
pub mod sim;
#[cfg(feature = "distributed")]
pub use backend::distributed_statevector::DistributedStatevectorBackend;
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};
#[cfg(feature = "distributed-mpi")]
pub use distributed::MpiComm;
#[cfg(feature = "distributed")]
pub use distributed::{DistributedContext, RankComm, SerialComm};
pub use error::{PrismError, Result};
pub use gates::{BatchPhaseData, Gate, McuData, Multi2qData, MultiFusedData};
pub use qec::{
QecBasis, QecCompiledRows, QecMeasurementRow, QecNoise, QecObservableEstimate,
QecObservableReroute, QecOp, QecOptions, QecPauli, QecProgram, QecRecordRef, QecSampleResult,
QecTStrategy, compile_qec_program_rows, parse_qec_program, run_qec_program,
run_qec_program_reference, run_qec_program_spd_rerouted, run_qec_program_with_strategy,
};
#[cfg(feature = "bench-internal")]
pub use qec::{QecProfiledCounts, QecProfiledSampler, compile_qec_profiled_sampler};
pub use sim::compiled::{
CompiledDetectorSampler, CompiledSampler, CorrelatorAccumulator, DetectorSampleBatch,
HistogramAccumulator, MarginalsAccumulator, NullAccumulator, PackedShots, ParityStats,
PauliExpectationAccumulator, ShotAccumulator, ShotLayout, compile_detector_sampler,
compile_forward, compile_measurements, run_shots_compiled,
};
pub use sim::homological::{
ErrorChainComplex, HomologicalSampler, noisy_marginals_analytical, run_shots_homological,
};
pub use sim::noise::{
NoiseChannel, NoiseEvent, NoiseModel, NoisyCompiledSampler, ReadoutError, compile_noisy,
run_shots_noisy,
};
pub use sim::stabilizer_rank::{
StabRankResult, run_stabilizer_rank, run_stabilizer_rank_approx, stabilizer_inner_product,
stabilizer_overlap_sq,
};
pub use sim::unified_pauli::{
PauliAxis, PauliTerm, SpdObservableResult, SpdResult, SppObservableResult, SppResult,
inverse_light_cone, run_spd, run_spd_observable, run_spd_observable_light_cone, run_spp,
run_spp_observable,
};
pub use sim::{
BackendKind, CountsResult, FactoredBlock, MarginalsResult, Probabilities, RunOutcome, Seeded,
ShotsResult, Simulate, Unseeded, bitstring, run_on, run_qasm, simulate,
};
#[cfg(feature = "gpu")]
pub use sim::compiled::{DevicePackedShots, run_shots_compiled_with_gpu};