pub enum MclmcTrajectoryKind {
Microcanonical,
Euclidean,
EuclideanEarlyThenMicrocanonical,
}Expand description
Selects which leapfrog integrator and partial momentum refresh are used by
MclmcChain.
Variants§
Microcanonical
Microcanonical (ESH) trajectory with isokinetic Langevin momentum refresh — original MCLMC (default).
Momentum lives on the unit sphere; the partial refresh is the
isokinetic Ornstein–Uhlenbeck step that keeps ‖p‖ = 1.
Euclidean
Standard Euclidean HMC trajectory with Ornstein–Uhlenbeck partial momentum refresh.
Momentum is Gaussian N(0, I). The partial refresh is
p_new = α·p + sqrt(1−α²)·z, z ~ N(0, I),
α = exp(−ε/(2L)).
EuclideanEarlyThenMicrocanonical
Use the Euclidean trajectory during the early tuning window (the first
trajectory_switch_fraction · num_tune draws), then switch permanently
to the Microcanonical trajectory for the remainder of warmup and all
post-warmup draws.
This can ease mass-matrix estimation in the early phase while still benefiting from the efficiency of the microcanonical trajectory later.
Trait Implementations§
Source§impl Clone for MclmcTrajectoryKind
impl Clone for MclmcTrajectoryKind
Source§fn clone(&self) -> MclmcTrajectoryKind
fn clone(&self) -> MclmcTrajectoryKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MclmcTrajectoryKind
impl Debug for MclmcTrajectoryKind
Source§impl Default for MclmcTrajectoryKind
impl Default for MclmcTrajectoryKind
Source§fn default() -> MclmcTrajectoryKind
fn default() -> MclmcTrajectoryKind
Source§impl<'de> Deserialize<'de> for MclmcTrajectoryKind
impl<'de> Deserialize<'de> for MclmcTrajectoryKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MclmcTrajectoryKind
impl PartialEq for MclmcTrajectoryKind
Source§impl Serialize for MclmcTrajectoryKind
impl Serialize for MclmcTrajectoryKind
impl Copy for MclmcTrajectoryKind
impl Eq for MclmcTrajectoryKind
impl StructuralPartialEq for MclmcTrajectoryKind
Auto Trait Implementations§
impl Freeze for MclmcTrajectoryKind
impl RefUnwindSafe for MclmcTrajectoryKind
impl Send for MclmcTrajectoryKind
impl Sync for MclmcTrajectoryKind
impl Unpin for MclmcTrajectoryKind
impl UnsafeUnpin for MclmcTrajectoryKind
impl UnwindSafe for MclmcTrajectoryKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more