Skip to main content

bloq_circuit/
lib.rs

1//! Coordinate-based quantum circuit representation and manipulation.
2//!
3//! Provides coordinate-based circuits ([`CoordCircuit`]), stabilizer flow
4//! verification ([`FlowEngine`]), chunk-level circuit composition ([`Chunk`]),
5//! and Pauli map / detector parity types used throughout the bloq
6//! compilation pipeline.
7
8mod chunk;
9mod circuit;
10mod detslice;
11mod error;
12mod flow_engine;
13mod gate;
14mod noise;
15mod pauli_map;
16mod semantic;
17
18#[doc(no_inline)]
19pub use bloq_utils::{Basis, Pauli, PauliBasis};
20pub use chunk::{Chunk, ChunkOrLoop, Flow, FlowMarker, FlowMeasurements};
21pub use circuit::{
22    CoordCircuit, ExpandedMeasurementColumns, FlattenEvent, FlattenLimits, measurement_gate_name,
23};
24pub use detslice::{
25    DetectorRegion, DetectorSlices, DetsliceError, RegionBreak, RegionBreakKind, RegionTerm,
26    SliceDetector, SliceRegionSeed, detector_slices_with_seeds,
27};
28pub use error::{CircuitError, CoordinateOverflowError, FlowError, MeasurementFrameError};
29pub use flow_engine::{
30    CompletedFlow, ComposedChain, FlowEngine, FlowEngineMeasurements, FlowKey, OffsetFlows,
31    PendingLoopDetectorStates, ResidualFlow,
32};
33pub use gate::GateType;
34pub use noise::NoiseModel;
35pub use pauli_map::{PauliMap, PauliMapIter};
36pub use semantic::{
37    BodyId, CircuitBody, ConditionalCorrection, DetectorCoords, DetectorParity, DetectorTerm,
38    LoopCarriedDetectorState, LoopStateId, MeasRecord, MeasRegistry, Op,
39    checked_translate_coordinate, translate_detector_coords,
40};
41
42/// The most commonly used items, for `use bloq_circuit::prelude::*`.
43///
44/// Also available as `bloq::circuit::prelude` through the facade crate.
45pub mod prelude {
46    #[doc(no_inline)]
47    pub use crate::{Chunk, CoordCircuit, FlowEngine, GateType, NoiseModel, PauliMap};
48}