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§
Sourcefn physical_qubits(&self) -> usize
fn physical_qubits(&self) -> usize
Get the number of physical qubits required
Sourcefn logical_qubits(&self) -> usize
fn logical_qubits(&self) -> usize
Get the number of logical qubits encoded
Sourcefn distance(&self) -> usize
fn distance(&self) -> usize
Get the distance of the code (minimum number of errors it can detect)
Sourcefn encode_circuit(
&self,
logical_qubits: &[QubitId],
ancilla_qubits: &[QubitId],
) -> Result<Circuit<16>>
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 encodeancilla_qubits- Additional qubits used for the encoding
§Returns
A Result containing the circuit with encoding operations, or an error if insufficient qubits
Sourcefn decode_circuit(
&self,
encoded_qubits: &[QubitId],
syndrome_qubits: &[QubitId],
) -> Result<Circuit<16>>
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 informationsyndrome_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
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".