pub struct QecProgram { /* private fields */ }Expand description
Native QEC program expressed as measurement-record operations.
Implementations§
Source§impl QecProgram
impl QecProgram
Sourcepub fn with_options(num_qubits: usize, options: QecOptions) -> Self
pub fn with_options(num_qubits: usize, options: QecOptions) -> Self
Create an empty program with explicit options.
Sourcepub fn from_ops(
num_qubits: usize,
options: QecOptions,
ops: Vec<QecOp>,
) -> Result<Self>
pub fn from_ops( num_qubits: usize, options: QecOptions, ops: Vec<QecOp>, ) -> Result<Self>
Create a program from operations, validating record references as operations are appended.
Sourcepub fn num_qubits(&self) -> usize
pub fn num_qubits(&self) -> usize
Number of qubits in the program.
Sourcepub fn options(&self) -> QecOptions
pub fn options(&self) -> QecOptions
Runner options.
Sourcepub fn set_options(&mut self, options: QecOptions)
pub fn set_options(&mut self, options: QecOptions)
Set runner options.
Sourcepub fn num_measurements(&self) -> usize
pub fn num_measurements(&self) -> usize
Number of measurement records produced by the operation stream.
Sourcepub fn num_detectors(&self) -> usize
pub fn num_detectors(&self) -> usize
Number of detector rows.
Sourcepub fn num_observables(&self) -> usize
pub fn num_observables(&self) -> usize
Number of logical observable slots.
Sourcepub fn push_gate(&mut self, gate: Gate, targets: &[usize]) -> Result<()>
pub fn push_gate(&mut self, gate: Gate, targets: &[usize]) -> Result<()>
Append a gate operation.
Sourcepub fn measure(&mut self, basis: QecBasis, qubit: usize) -> Result<usize>
pub fn measure(&mut self, basis: QecBasis, qubit: usize) -> Result<usize>
Append a single-qubit measurement and return its record index.
Sourcepub fn measure_z(&mut self, qubit: usize) -> Result<usize>
pub fn measure_z(&mut self, qubit: usize) -> Result<usize>
Append a Z-basis measurement and return its record index.
Sourcepub fn measure_x(&mut self, qubit: usize) -> Result<usize>
pub fn measure_x(&mut self, qubit: usize) -> Result<usize>
Append an X-basis measurement and return its record index.
Sourcepub fn measure_pauli_product(&mut self, terms: &[QecPauli]) -> Result<usize>
pub fn measure_pauli_product(&mut self, terms: &[QecPauli]) -> Result<usize>
Append a Pauli-product measurement and return its record index.
Sourcepub fn detector(&mut self, records: &[QecRecordRef]) -> Result<usize>
pub fn detector(&mut self, records: &[QecRecordRef]) -> Result<usize>
Append a detector and return its detector index.
Sourcepub fn detector_with_coords(
&mut self,
records: &[QecRecordRef],
coords: &[f64],
) -> Result<usize>
pub fn detector_with_coords( &mut self, records: &[QecRecordRef], coords: &[f64], ) -> Result<usize>
Append a detector with coordinates and return its detector index.
Sourcepub fn observable_include(
&mut self,
observable: usize,
records: &[QecRecordRef],
) -> Result<()>
pub fn observable_include( &mut self, observable: usize, records: &[QecRecordRef], ) -> Result<()>
Append a logical observable parity contribution.
Sourcepub fn expectation_value(
&mut self,
terms: &[QecPauli],
coefficient: f64,
) -> Result<()>
pub fn expectation_value( &mut self, terms: &[QecPauli], coefficient: f64, ) -> Result<()>
Append expectation-value metadata.
Sourcepub fn postselect(
&mut self,
records: &[QecRecordRef],
expected: bool,
) -> Result<()>
pub fn postselect( &mut self, records: &[QecRecordRef], expected: bool, ) -> Result<()>
Append a postselection predicate.
Sourcepub fn noise(&mut self, channel: QecNoise, targets: &[usize]) -> Result<()>
pub fn noise(&mut self, channel: QecNoise, targets: &[usize]) -> Result<()>
Append a Pauli-noise annotation.
Sourcepub fn detector_rows(&self) -> Result<Vec<Vec<usize>>>
pub fn detector_rows(&self) -> Result<Vec<Vec<usize>>>
Resolve detector rows to absolute measurement record indices.
Sourcepub fn observable_rows(&self) -> Result<Vec<Vec<usize>>>
pub fn observable_rows(&self) -> Result<Vec<Vec<usize>>>
Resolve observable rows to absolute measurement record indices.
Sourcepub fn postselection_rows(&self) -> Result<Vec<(Vec<usize>, bool)>>
pub fn postselection_rows(&self) -> Result<Vec<(Vec<usize>, bool)>>
Resolve postselection rows to absolute measurement record indices.
Sourcepub fn empty_result(&self) -> QecSampleResult
pub fn empty_result(&self) -> QecSampleResult
Create an empty result with the program’s current record shape.
Trait Implementations§
Source§impl Clone for QecProgram
impl Clone for QecProgram
Source§fn clone(&self) -> QecProgram
fn clone(&self) -> QecProgram
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for QecProgram
impl Debug for QecProgram
Source§impl PartialEq for QecProgram
impl PartialEq for QecProgram
Source§fn eq(&self, other: &QecProgram) -> bool
fn eq(&self, other: &QecProgram) -> bool
self and other values to be equal, and is used by ==.