Struct qmc::sse::qmc_traits::op_container::BasicOp [−][src]
pub struct BasicOp<Vars, SubState> where
Vars: FromIterator<usize> + AsRef<[usize]> + AsMut<[usize]> + Clone + Debug,
SubState: FromIterator<bool> + AsRef<[bool]> + AsMut<[bool]> + Clone + Debug, { /* fields omitted */ }
Expand description
An standard op which covers a number of variables and changes the state from input to output.
Trait Implementations
type Vars = Vars
type Vars = Vars
The list of op variables.
type SubState = SubState
type SubState = SubState
The list of op input and output states.
Make a diagonal op.
Make an offdiagonal op.
Check if the op is diagonal (makes no state changes).
Get the relative index of a variable.
Get the input state for the op.
Get the output state for the op.
Clone the op and edit inputs and outputs.
Clone the op and edit inputs and outputs. Must edit states symmetrically (diagonal stays diagonal, offdiagonal stays offdiagonal). Read more
Get the input state for the op.
Get the output state for the op.
If the op is always a constant under any bit flip in input or output, then it can be used to mark the edges of clusters. Read more
Edit inputs and outputs.
Edit inputs and outputs. Must edit states symmetrically (diagonal stays diagonal, offdiagonal stays offdiagonal). Read more
Make vars (this is here mostly due to rust bug 38078)
Make substate (this is here mostly due to rust bug 38078)
impl<Vars: Eq, SubState: Eq> Eq for BasicOp<Vars, SubState> where
Vars: FromIterator<usize> + AsRef<[usize]> + AsMut<[usize]> + Clone + Debug,
SubState: FromIterator<bool> + AsRef<[bool]> + AsMut<[bool]> + Clone + Debug,
Auto Trait Implementations
impl<Vars, SubState> RefUnwindSafe for BasicOp<Vars, SubState> where
SubState: RefUnwindSafe,
Vars: RefUnwindSafe,
impl<Vars, SubState> UnwindSafe for BasicOp<Vars, SubState> where
SubState: UnwindSafe,
Vars: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more