Trait qmc::sse::qmc_traits::HeatBathDiagonalUpdater [−][src]
pub trait HeatBathDiagonalUpdater: DiagonalUpdater { fn make_heatbath_diagonal_update<'b, H: Hamiltonian<'b>>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &H,
bond_weights: &BondWeights
) { ... } fn make_heatbath_diagonal_update_with_rng<'b, H: Hamiltonian<'b>, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &H,
bond_weights: &BondWeights,
rng: &mut R
) { ... } fn make_heatbath_diagonal_update_with_rng_and_state_ref<'b, H: Hamiltonian<'b>, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &mut [bool],
hamiltonian: &H,
bond_weights: &BondWeights,
rng: &mut R
) { ... } fn make_bond_weights<'b, H, E>(
hamiltonian: H,
num_bonds: usize,
bonds_fn: E
) -> BondWeights
where
H: Fn(&[usize], usize, &[bool], &[bool]) -> f64,
E: Fn(usize) -> &'b [usize], { ... } fn heat_bath_single_diagonal_update<'b, H: Hamiltonian<'b>, R: Rng>(
op: Option<&Self::Op>,
cutoff: usize,
n: usize,
beta: f64,
state: &mut [bool],
hamiltonian_and_weights: (&H, &BondWeights),
rng: &mut R
) -> Option<Option<Self::Op>> { ... } }
Expand description
Heatbath updates for a diagonal updater.
Provided methods
fn make_heatbath_diagonal_update<'b, H: Hamiltonian<'b>>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &H,
bond_weights: &BondWeights
)
fn make_heatbath_diagonal_update<'b, H: Hamiltonian<'b>>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &H,
bond_weights: &BondWeights
)
Perform a single heatbath update.
fn make_heatbath_diagonal_update_with_rng<'b, H: Hamiltonian<'b>, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &H,
bond_weights: &BondWeights,
rng: &mut R
)
fn make_heatbath_diagonal_update_with_rng<'b, H: Hamiltonian<'b>, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &[bool],
hamiltonian: &H,
bond_weights: &BondWeights,
rng: &mut R
)
Perform a single heatbath update.
fn make_heatbath_diagonal_update_with_rng_and_state_ref<'b, H: Hamiltonian<'b>, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &mut [bool],
hamiltonian: &H,
bond_weights: &BondWeights,
rng: &mut R
)
fn make_heatbath_diagonal_update_with_rng_and_state_ref<'b, H: Hamiltonian<'b>, R: Rng>(
&mut self,
cutoff: usize,
beta: f64,
state: &mut [bool],
hamiltonian: &H,
bond_weights: &BondWeights,
rng: &mut R
)
Perform a single heatbath update.
Make the bond weights struct for this container.
Implementors
impl<O: Op + Clone, ALLOC: FastOpAllocator> HeatBathDiagonalUpdater for FastOpsTemplate<O, ALLOC>