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

pub enum UnboundUnitaryGate<'matrix> {
    I,
    X,
    Y,
    Z,
    H,
    S,
    SDAG,
    T,
    TDAG,
    RX90,
    RXM90,
    RX180,
    RY90,
    RYM90,
    RY180,
    RZ90,
    RZM90,
    RZ180,
    RX(f64),
    RY(f64),
    RZ(f64),
    Phase(f64),
    PhaseK(u64),
    R(f64f64f64),
    SWAP,
    SQSWAP,
    U(&'matrix Matrix),
}

An unbound gate type.

The variants in this type specify all parameters to determine the behaviour of the gate. However, these variants carry no information about the target qubits.

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(f64)

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

RY(f64)

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

RZ(f64)

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

Phase(f64)

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

PhaseK(u64)

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

R(f64f64f64)

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

SWAP

Swap.

SQSWAP

Square root of Swap.

U(&'matrix Matrix)

Abstract unitary gate with a reference to specified unitary matrix.

Trait Implementations

impl<'matrix> Clone for UnboundUnitaryGate<'matrix>[src]

impl<'matrix> Copy for UnboundUnitaryGate<'matrix>[src]

impl<'matrix> Debug for UnboundUnitaryGate<'matrix>[src]

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

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

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

impl<'matrix> PartialEq<UnboundUnitaryGate<'matrix>> for UnboundUnitaryGate<'matrix>[src]

impl<'matrix> StructuralPartialEq for UnboundUnitaryGate<'matrix>[src]

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

type Error = &'static str

The type returned in the event of a conversion error.

Auto Trait Implementations

impl<'matrix> RefUnwindSafe for UnboundUnitaryGate<'matrix>

impl<'matrix> Send for UnboundUnitaryGate<'matrix>

impl<'matrix> Sync for UnboundUnitaryGate<'matrix>

impl<'matrix> Unpin for UnboundUnitaryGate<'matrix>

impl<'matrix> UnwindSafe for UnboundUnitaryGate<'matrix>

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