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.