[][src]Trait qmc::sse::qmc_traits::ClusterUpdater

pub trait ClusterUpdater: LoopUpdater {
    fn flip_each_cluster_rng<R: Rng>(
        &mut self,
        prob: f64,
        rng: &mut R,
        state: &mut [bool]
    ) { ... }
fn find_constant_op(&self) -> Option<usize> { ... }
fn get_frontier_alloc(&mut self) -> Vec<(usize, OpSide)> { ... }
fn get_interior_frontier_alloc(&mut self) -> Vec<(usize, (usize, OpSide))> { ... }
fn get_boundaries_alloc(
        &mut self,
        size: usize
    ) -> Vec<(Option<usize>, Option<usize>)> { ... }
fn get_flip_alloc(&mut self) -> Vec<bool> { ... }
fn return_frontier_alloc(&mut self, _frontier: Vec<(usize, OpSide)>) { ... }
fn return_interior_frontier_alloc(
        &mut self,
        _interior_frontier: Vec<(usize, (usize, OpSide))>
    ) { ... }
fn return_boundaries_alloc(
        &mut self,
        _boundaries: Vec<(Option<usize>, Option<usize>)>
    ) { ... }
fn return_flip_alloc(&mut self, _flips: Vec<bool>) { ... }
fn post_cluster_update_hook(&mut self) { ... } }

Add cluster updates to LoopUpdater.

Provided methods

fn flip_each_cluster_rng<R: Rng>(
    &mut self,
    prob: f64,
    rng: &mut R,
    state: &mut [bool]
)

Flip each cluster in the graph using an rng instance, add to state changes in acc.

fn find_constant_op(&self) -> Option<usize>

Find a site with a constant op.

fn get_frontier_alloc(&mut self) -> Vec<(usize, OpSide)>

Get an allocation for the frontier.

fn get_interior_frontier_alloc(&mut self) -> Vec<(usize, (usize, OpSide))>

Get an allocation for the interior frontier.

fn get_boundaries_alloc(
    &mut self,
    size: usize
) -> Vec<(Option<usize>, Option<usize>)>

Get an allocation for the bounaries.

fn get_flip_alloc(&mut self) -> Vec<bool>

Get an allocation for the spin flips.

fn return_frontier_alloc(&mut self, _frontier: Vec<(usize, OpSide)>)

Return an alloc.

fn return_interior_frontier_alloc(
    &mut self,
    _interior_frontier: Vec<(usize, (usize, OpSide))>
)

Return an alloc.

fn return_boundaries_alloc(
    &mut self,
    _boundaries: Vec<(Option<usize>, Option<usize>)>
)

Return an alloc.

fn return_flip_alloc(&mut self, _flips: Vec<bool>)

Return an alloc.

fn post_cluster_update_hook(&mut self)

Called after an update.

Loading content...

Implementors

impl ClusterUpdater for SimpleOpLooper[src]

impl<O: Op + Clone> ClusterUpdater for FastOpsTemplate<O>[src]

Loading content...