[][src]Enum qip::iterators::PrecisionUnitaryOp

pub enum PrecisionUnitaryOp<'a, P: Precision> {
    Matrix(Vec<u64>, Vec<Complex<P>>),
    SparseMatrix(Vec<u64>, Vec<Vec<(u64, Complex<P>)>>),
    Swap(Vec<u64>, Vec<u64>),
    Control(Vec<u64>, Vec<u64>, Box<PrecisionUnitaryOp<'a, P>>),
    Function(Vec<u64>, Vec<u64>, &'a (dyn Fn(u64) -> (u64, f64) + Send + Sync)),
}

A private version of UnitaryOp with variable precision, this is used so we can change the f64 default UnitaryOp to a variable one at the beginning of execution and not at each operation.

Variants

Matrix(Vec<u64>, Vec<Complex<P>>)

Indices, Matrix data

SparseMatrix(Vec<u64>, Vec<Vec<(u64, Complex<P>)>>)

Indices, per row [(col, value)]

Swap(Vec<u64>, Vec<u64>)

A indices, B indices

Control(Vec<u64>, Vec<u64>, Box<PrecisionUnitaryOp<'a, P>>)

Control indices, Op indices, Op

Function(Vec<u64>, Vec<u64>, &'a (dyn Fn(u64) -> (u64, f64) + Send + Sync))

Function which maps |x,y> to |x,f(x) xor y> where x,y are both m bits.

Trait Implementations

impl<'a, P: Precision> Debug for PrecisionUnitaryOp<'a, P>[src]

Auto Trait Implementations

impl<'a, P> Sync for PrecisionUnitaryOp<'a, P>

impl<'a, P> Send for PrecisionUnitaryOp<'a, P>

impl<'a, P> Unpin for PrecisionUnitaryOp<'a, P> where
    P: Unpin

impl<'a, P> !UnwindSafe for PrecisionUnitaryOp<'a, P>

impl<'a, P> !RefUnwindSafe for PrecisionUnitaryOp<'a, P>

Blanket Implementations

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

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

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<T> Borrow<T> for T where
    T: ?Sized
[src]

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

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