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

pub enum BoundUnitaryGate<'matrix, 'qref> {
    I(QubitRef),
    X(QubitRef),
    Y(QubitRef),
    Z(QubitRef),
    H(QubitRef),
    S(QubitRef),
    SDAG(QubitRef),
    T(QubitRef),
    TDAG(QubitRef),
    RX90(QubitRef),
    RXM90(QubitRef),
    RX180(QubitRef),
    RY90(QubitRef),
    RYM90(QubitRef),
    RY180(QubitRef),
    RZ90(QubitRef),
    RZM90(QubitRef),
    RZ180(QubitRef),
    RX(f64QubitRef),
    RY(f64QubitRef),
    RZ(f64QubitRef),
    Phase(f64QubitRef),
    PhaseK(u64QubitRef),
    R(f64f64f64QubitRef),
    SWAP(QubitRefQubitRef),
    SQSWAP(QubitRefQubitRef),
    U(&'matrix Matrix&'qref [QubitRef]),
}

A bound gate type.

The variants in this type specify all parameters and qubits targets to determine the behaviour of the gate.

Variants

I(QubitRef)

Identity with specified qubit target.

X(QubitRef)

Pauli-X with specified qubit target.

Y(QubitRef)

Pauli-Y with specified qubit target.

Z(QubitRef)

Pauli-Z with specified qubit target.

H(QubitRef)

Hadamard with specified qubit target.

S(QubitRef)

Phase with specified qubit target.

SDAG(QubitRef)

S† (conjugate transpose of S) with specified qubit target.

T(QubitRef)

T with specified qubit target.

TDAG(QubitRef)

T† (conjugate transpose of T) with specified qubit target.

RX90(QubitRef)

90 degree rotation around X-axis with specified qubit target.

RXM90(QubitRef)

minus 90 degree rotation around X-axi with specified qubit target.

RX180(QubitRef)

180 degree rotation around X-axis with specified qubit target.

RY90(QubitRef)

90 degree rotation around Y-axis with specified qubit target.

RYM90(QubitRef)

minus 90 degree rotation around Y-axis with specified qubit target.

RY180(QubitRef)

180 degree rotation around Y-axis with specified qubit target.

RZ90(QubitRef)

90 degree rotation around Y-axis with specified qubit target.

RZM90(QubitRef)

minus 90 degree rotation around Z-axis with specified qubit target.

RZ180(QubitRef)

180 degree rotation around Z-axis with specified qubit target.

RX(f64QubitRef)

Arbitrary rotation around X-axis with specified angle (θ) and qubit target.

RY(f64QubitRef)

Arbitrary rotation around Y-axis with specified angle (θ) and qubit target.

RZ(f64QubitRef)

Arbitrary rotation around Z-axis with specified angle (θ) and qubit target.

Phase(f64QubitRef)

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

PhaseK(u64QubitRef)

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

R(f64f64f64QubitRef)

Arbitrary rotation around X-, Y- and Z-axis with specified angles (θ, φ, λ) and qubit target.

SWAP(QubitRefQubitRef)

Swap with specified qubit targets.

SQSWAP(QubitRefQubitRef)

Square root of Swap with specified qubit targets.

U(&'matrix Matrix&'qref [QubitRef])

Abstract unitary gate with a reference to specified unitary matrix and qubit targets.

Trait Implementations

impl<'matrix, 'qref> Clone for BoundUnitaryGate<'matrix, 'qref>[src]

impl<'matrix, 'qref> Copy for BoundUnitaryGate<'matrix, 'qref>[src]

impl<'matrix, 'qref> Debug for BoundUnitaryGate<'matrix, 'qref>[src]

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

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

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

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

impl<'matrix, 'qref> PartialEq<BoundUnitaryGate<'matrix, 'qref>> for BoundUnitaryGate<'matrix, 'qref>[src]

impl<'matrix, 'qref> StructuralPartialEq for BoundUnitaryGate<'matrix, 'qref>[src]

Auto Trait Implementations

impl<'matrix, 'qref> RefUnwindSafe for BoundUnitaryGate<'matrix, 'qref>

impl<'matrix, 'qref> Send for BoundUnitaryGate<'matrix, 'qref>

impl<'matrix, 'qref> Sync for BoundUnitaryGate<'matrix, 'qref>

impl<'matrix, 'qref> Unpin for BoundUnitaryGate<'matrix, 'qref>

impl<'matrix, 'qref> UnwindSafe for BoundUnitaryGate<'matrix, 'qref>

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>,