[][src]Enum dqcsim::common::gates::UnitaryGateType

pub enum UnitaryGateType {
    I,
    X,
    Y,
    Z,
    H,
    S,
    SDAG,
    T,
    TDAG,
    RX90,
    RXM90,
    RX180,
    RY90,
    RYM90,
    RY180,
    RZ90,
    RZM90,
    RZ180,
    RX,
    RY,
    RZ,
    Phase,
    PhaseK,
    R,
    SWAP,
    SQSWAP,
    U(usize),
}

An abstract gate type.

The variants in this type carry no additional parameters or information about the target qubits, with the exception of the UnitaryGateType::U variant that encodes an abstract Unitary gate with the number of qubits involved specified.

Variants

I

Identity.

X

Pauli-X.

Y

Pauli-Y.

Z

Pauli-Z.

H

Hadamard.

S

Phase.

SDAG

S† (conjugate transpose of S).

T

T.

TDAG

T† (conjugate transpose of T).

RX90

90 degree rotation around X-axis.

RXM90

minus 90 degree rotation around X-axis.

RX180

180 degree rotation around X-axis.

RY90

90 degree rotation around Y-axis.

RYM90

minus 90 degree rotation around Y-axis.

RY180

180 degree rotation around Y-axis.

RZ90

90 degree rotation around Y-axis.

RZM90

minus 90 degree rotation around Z-axis.

RZ180

180 degree rotation around Z-axis.

RX

Arbitrary rotation around X-axis.

RY

Arbitrary rotation around Y-axis.

RZ

Arbitrary rotation around Z-axis.

Phase

Arbitrary rotation around Z-axis, global phase chosen such that it works as a submatrix for controlled phase operations.

PhaseK

Same as Phase, but with θ = π/2^k​.

R

Arbitrary rotation around X-, Y- and Z-axis.

SWAP

Swap.

SQSWAP

Square root of Swap.

U(usize)

Abstract unitary gate with number of target qubits specified.

Implementations

impl UnitaryGateType[src]

pub fn into_gate_converter(
    self,
    num_controls: Option<usize>,
    epsilon: f64,
    ignore_global_phase: bool
) -> Box<dyn Converter<Input = Gate, Output = (Vec<QubitRef>, ArbData)>>
[src]

Trait Implementations

impl Clone for UnitaryGateType[src]

impl Copy for UnitaryGateType[src]

impl Debug for UnitaryGateType[src]

impl Eq for UnitaryGateType[src]

impl<'_, '_> From<BoundUnitaryGate<'_, '_>> for UnitaryGateType[src]

impl<'_> From<UnboundUnitaryGate<'_>> for UnitaryGateType[src]

impl From<UnitaryGateType> for Box<dyn MatrixConverterArb>[src]

impl Hash for UnitaryGateType[src]

impl PartialEq<UnitaryGateType> for UnitaryGateType[src]

impl StructuralEq for UnitaryGateType[src]

impl StructuralPartialEq for UnitaryGateType[src]

impl<'_> TryFrom<UnitaryGateType> for UnboundUnitaryGate<'_>[src]

type Error = &'static str

The type returned in the event of a conversion error.

impl TryFrom<UnitaryGateType> for Matrix[src]

type Error = &'static str

The type returned in the event of a conversion error.

impl TryFrom<dqcs_predefined_gate_t> for UnitaryGateType[src]

type Error = Error

The type returned in the event of a conversion error.

Auto Trait Implementations

impl RefUnwindSafe for UnitaryGateType

impl Send for UnitaryGateType

impl Sync for UnitaryGateType

impl Unpin for UnitaryGateType

impl UnwindSafe for UnitaryGateType

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,