ErrorCorrection

Trait ErrorCorrection 

Source
pub trait ErrorCorrection {
    // Required methods
    fn physical_qubits(&self) -> usize;
    fn logical_qubits(&self) -> usize;
    fn distance(&self) -> usize;
    fn encode_circuit(
        &self,
        logical_qubits: &[QubitId],
        ancilla_qubits: &[QubitId],
    ) -> Result<Circuit<16>>;
    fn decode_circuit(
        &self,
        encoded_qubits: &[QubitId],
        syndrome_qubits: &[QubitId],
    ) -> Result<Circuit<16>>;
}
Expand description

Trait for quantum error correction codes

Required Methods§

Source

fn physical_qubits(&self) -> usize

Get the number of physical qubits required

Source

fn logical_qubits(&self) -> usize

Get the number of logical qubits encoded

Source

fn distance(&self) -> usize

Get the distance of the code (minimum number of errors it can detect)

Source

fn encode_circuit( &self, logical_qubits: &[QubitId], ancilla_qubits: &[QubitId], ) -> Result<Circuit<16>>

Create a circuit to encode logical qubits into the error correction code

§Arguments
  • logical_qubits - The qubits containing the logical information to encode
  • ancilla_qubits - Additional qubits used for the encoding
§Returns

A Result containing the circuit with encoding operations, or an error if insufficient qubits

Source

fn decode_circuit( &self, encoded_qubits: &[QubitId], syndrome_qubits: &[QubitId], ) -> Result<Circuit<16>>

Create a circuit to decode and correct errors

§Arguments
  • encoded_qubits - The qubits that contain the encoded information
  • syndrome_qubits - Additional qubits used for syndrome extraction and error correction
§Returns

A Result containing the circuit with error detection and correction operations, or an error if insufficient qubits

Implementors§