[−][src]Struct qmc::sse::fast_ops::FastOpsTemplate
A fast op container.
Implementations
impl<O: Op + Clone> FastOpsTemplate<O>
[src]
pub fn new_from_ops<I: Iterator<Item = (usize, O)>>(
nvars: usize,
ps_and_ops: I
) -> Self
[src]
nvars: usize,
ps_and_ops: I
) -> Self
Make a new Manager from an interator of ops, and number of variables.
Trait Implementations
impl<O: Op + Clone> ClassicalLoopUpdater for FastOpsTemplate<O>
[src]
fn var_ever_flips(&self, var: usize) -> bool
[src]
fn get_var_alloc(&mut self, nvars: usize) -> Vec<bool>
[src]
fn return_var_alloc(&mut self, alloc: Vec<bool>)
[src]
fn get_boundary_alloc(&mut self) -> Vec<(usize, bool)>
[src]
fn return_boundary_alloc(&mut self, alloc: Vec<(usize, bool)>)
[src]
fn get_sat_alloc(&mut self) -> HashSampler<usize>
[src]
fn get_broken_alloc(&mut self) -> HashSampler<usize>
[src]
fn return_sat_alloc(&mut self, alloc: HashSampler<usize>)
[src]
fn return_broken_alloc(&mut self, alloc: HashSampler<usize>)
[src]
fn run_classical_loop_update<R: Rng, EN: EdgeNavigator>(
&mut self,
edges: &EN,
state: &mut [bool],
rng: R
) -> usize
[src]
&mut self,
edges: &EN,
state: &mut [bool],
rng: R
) -> usize
fn post_semiclassical_update_hook(&mut self)
[src]
impl<O: Clone + Op> Clone for FastOpsTemplate<O>
[src]
fn clone(&self) -> FastOpsTemplate<O>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<O: Op + Clone> ClusterUpdater for FastOpsTemplate<O>
[src]
fn get_frontier_alloc(&mut self) -> Vec<(usize, OpSide)>
[src]
fn get_interior_frontier_alloc(&mut self) -> Vec<(usize, (usize, OpSide))>
[src]
fn get_boundaries_alloc(
&mut self,
size: usize
) -> Vec<(Option<usize>, Option<usize>)>
[src]
&mut self,
size: usize
) -> Vec<(Option<usize>, Option<usize>)>
fn get_flip_alloc(&mut self) -> Vec<bool>
[src]
fn return_frontier_alloc(&mut self, frontier: Vec<(usize, OpSide)>)
[src]
fn return_interior_frontier_alloc(
&mut self,
interior_frontier: Vec<(usize, (usize, OpSide))>
)
[src]
&mut self,
interior_frontier: Vec<(usize, (usize, OpSide))>
)
fn return_boundaries_alloc(
&mut self,
boundaries: Vec<(Option<usize>, Option<usize>)>
)
[src]
&mut self,
boundaries: Vec<(Option<usize>, Option<usize>)>
)
fn return_flip_alloc(&mut self, flips: Vec<bool>)
[src]
fn post_cluster_update_hook(&mut self)
[src]
fn flip_each_cluster_rng<R: Rng>(
&mut self,
prob: f64,
rng: &mut R,
state: &mut [bool]
)
[src]
&mut self,
prob: f64,
rng: &mut R,
state: &mut [bool]
)
fn find_constant_op(&self) -> Option<usize>
[src]
impl<O: Debug + Op> Debug for FastOpsTemplate<O>
[src]
impl<O: Op + Clone> DiagonalUpdater for FastOpsTemplate<O>
[src]
fn mutate_ps<F, T>(&mut self, cutoff: usize, t: T, f: F) -> T where
F: Fn(&Self, Option<&Self::Op>, T) -> (Option<Option<Self::Op>>, T),
[src]
F: Fn(&Self, Option<&Self::Op>, T) -> (Option<Option<Self::Op>>, T),
fn iterate_ps<F, T>(&self, t: T, f: F) -> T where
F: Fn(&Self, Option<&Self::Op>, T) -> T,
[src]
F: Fn(&Self, Option<&Self::Op>, T) -> T,
fn make_diagonal_update<'b, H, E>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &Hamiltonian<'b, H, E>
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
E: Fn(usize) -> (&'b [usize], bool),
[src]
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &Hamiltonian<'b, H, E>
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
E: Fn(usize) -> (&'b [usize], bool),
fn make_diagonal_update_with_rng<'b, H, E, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &Hamiltonian<'b, H, E>,
rng: &mut R
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
E: Fn(usize) -> (&'b [usize], bool),
[src]
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &Hamiltonian<'b, H, E>,
rng: &mut R
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
E: Fn(usize) -> (&'b [usize], bool),
fn make_diagonal_update_with_rng_and_state_ref<'b, H, E, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &mut [bool],
hamiltonian: &Hamiltonian<'b, H, E>,
rng: &mut R
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
E: Fn(usize) -> (&'b [usize], bool),
[src]
&mut self,
cutoff: usize,
beta: f64,
state: &mut [bool],
hamiltonian: &Hamiltonian<'b, H, E>,
rng: &mut R
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
E: Fn(usize) -> (&'b [usize], bool),
fn post_diagonal_update_hook(&mut self)
[src]
impl<O: Op + Clone> LoopUpdater for FastOpsTemplate<O>
[src]
type Node = FastOpNodeTemplate<O>
The type used to contain the Op and handle movement around the worldlines.
fn get_node_ref(&self, p: usize) -> Option<&Self::Node>
[src]
fn get_node_mut(&mut self, p: usize) -> Option<&mut Self::Node>
[src]
fn get_first_p(&self) -> Option<usize>
[src]
fn get_last_p(&self) -> Option<usize>
[src]
fn get_first_p_for_var(&self, var: usize) -> Option<usize>
[src]
fn get_last_p_for_var(&self, var: usize) -> Option<usize>
[src]
fn get_previous_p(&self, node: &Self::Node) -> Option<usize>
[src]
fn get_next_p(&self, node: &Self::Node) -> Option<usize>
[src]
fn get_previous_p_for_rel_var(
&self,
revar: usize,
node: &Self::Node
) -> Option<usize>
[src]
&self,
revar: usize,
node: &Self::Node
) -> Option<usize>
fn get_next_p_for_rel_var(
&self,
revar: usize,
node: &Self::Node
) -> Option<usize>
[src]
&self,
revar: usize,
node: &Self::Node
) -> Option<usize>
fn get_nth_p(&self, n: usize) -> usize
[src]
fn get_leg_weight_alloc(&mut self) -> Vec<((usize, OpSide), f64)>
[src]
fn return_leg_weight_alloc(&mut self, alloc: Vec<((usize, OpSide), f64)>)
[src]
fn post_loop_update_hook(&mut self)
[src]
fn get_previous_p_for_var(
&self,
var: usize,
node: &Self::Node
) -> Result<Option<usize>, ()>
[src]
&self,
var: usize,
node: &Self::Node
) -> Result<Option<usize>, ()>
fn get_next_p_for_var(
&self,
var: usize,
node: &Self::Node
) -> Result<Option<usize>, ()>
[src]
&self,
var: usize,
node: &Self::Node
) -> Result<Option<usize>, ()>
fn does_var_have_ops(&self, var: usize) -> bool
[src]
fn make_loop_update<H>(
&mut self,
initial_n: Option<usize>,
hamiltonian: H,
state: &mut [bool]
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
[src]
&mut self,
initial_n: Option<usize>,
hamiltonian: H,
state: &mut [bool]
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
fn make_loop_update_with_rng<H, R: Rng>(
&mut self,
initial_n: Option<usize>,
hamiltonian: H,
state: &mut [bool],
rng: &mut R
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
[src]
&mut self,
initial_n: Option<usize>,
hamiltonian: H,
state: &mut [bool],
rng: &mut R
) where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
impl<O: Op + Clone> OpContainer for FastOpsTemplate<O>
[src]
type Op = O
The op object to manage.
fn get_cutoff(&self) -> usize
[src]
fn set_cutoff(&mut self, cutoff: usize)
[src]
fn get_n(&self) -> usize
[src]
fn get_nvars(&self) -> usize
[src]
fn get_pth(&self, p: usize) -> Option<&Self::Op>
[src]
fn verify(&self, state: &[bool]) -> bool
[src]
impl<O: Op + Clone> OpContainerConstructor for FastOpsTemplate<O>
[src]
Auto Trait Implementations
impl<O> RefUnwindSafe for FastOpsTemplate<O> where
O: RefUnwindSafe,
O: RefUnwindSafe,
impl<O> Send for FastOpsTemplate<O> where
O: Send,
O: Send,
impl<O> Sync for FastOpsTemplate<O> where
O: Sync,
O: Sync,
impl<O> Unpin for FastOpsTemplate<O> where
O: Unpin,
O: Unpin,
impl<O> UnwindSafe for FastOpsTemplate<O> where
O: UnwindSafe,
O: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,