Trait qip::builder_traits::UnitaryBuilder
source · pub trait UnitaryBuilder<P: Precision>: CircuitBuilder {
// Required method
fn vec_matrix_to_circuitobject(
n: usize,
data: Vec<Complex<P>>
) -> Self::CircuitObject;
// Provided methods
fn apply_vec_matrix(
&mut self,
r: Self::Register,
data: Vec<Complex<P>>
) -> CircuitResult<Self::Register> { ... }
fn apply_matrix<const N: usize>(
&mut self,
r: Self::Register,
data: [Complex<P>; N]
) -> CircuitResult<Self::Register> { ... }
fn broadcast_single_qubit_matrix(
&mut self,
r: Self::Register,
data: [Complex<P>; 4]
) -> Self::Register { ... }
fn matrix_to_circuitobject<const N: usize>(
n: usize,
data: [Complex<P>; N]
) -> Self::CircuitObject { ... }
}
Expand description
Standard functions for building unitary circuits.
Required Methods§
sourcefn vec_matrix_to_circuitobject(
n: usize,
data: Vec<Complex<P>>
) -> Self::CircuitObject
fn vec_matrix_to_circuitobject( n: usize, data: Vec<Complex<P>> ) -> Self::CircuitObject
Make a circuit object out of an arbitrary matrix Single Qubit matrix is organized as |0><0|, |0><1|, |1><0|, |1><1|
Provided Methods§
sourcefn apply_vec_matrix(
&mut self,
r: Self::Register,
data: Vec<Complex<P>>
) -> CircuitResult<Self::Register>
fn apply_vec_matrix( &mut self, r: Self::Register, data: Vec<Complex<P>> ) -> CircuitResult<Self::Register>
Apply an arbitrary matrix to the circuit given by a vector.
sourcefn apply_matrix<const N: usize>(
&mut self,
r: Self::Register,
data: [Complex<P>; N]
) -> CircuitResult<Self::Register>
fn apply_matrix<const N: usize>( &mut self, r: Self::Register, data: [Complex<P>; N] ) -> CircuitResult<Self::Register>
Apply an arbitrary matrix to the circuit given by an array.
sourcefn broadcast_single_qubit_matrix(
&mut self,
r: Self::Register,
data: [Complex<P>; 4]
) -> Self::Register
fn broadcast_single_qubit_matrix( &mut self, r: Self::Register, data: [Complex<P>; 4] ) -> Self::Register
Single qubit matrices can be applied to each qubit in a register unambiguously. Matrix is organized as |0><0|, |0><1|, |1><0|, |1><1|
sourcefn matrix_to_circuitobject<const N: usize>(
n: usize,
data: [Complex<P>; N]
) -> Self::CircuitObject
fn matrix_to_circuitobject<const N: usize>( n: usize, data: [Complex<P>; N] ) -> Self::CircuitObject
Make a circuit object out of an arbitrary matrix Single Qubit matrix is organized as |0><0|, |0><1|, |1><0|, |1><1|