pub struct BetheFreeEnergy {
pub factor_energy: f64,
pub variable_entropy: f64,
pub total: f64,
pub log_z: f64,
}Expand description
Bethe free energy components.
The Bethe approximation decomposes the global free energy into single-variable and factor contributions. At the fixed point of LBP, the Bethe free energy equals the variational free energy under the Bethe approximation to the belief propagation.
Fields§
§factor_energy: f64Factor-node energy term: ∑a ∑{x_a} b_a(x_a) ln[φ_a(x_a) / b_a(x_a)]
variable_entropy: f64Variable-node entropy term: (1 - d_i) ∑i ∑{x_i} b_i(x_i) ln b_i(x_i)
total: f64Total Bethe free energy = factor_energy + variable_entropy.
log_z: f64Approximate log-partition function: -F_Bethe.
Trait Implementations§
Source§impl Clone for BetheFreeEnergy
impl Clone for BetheFreeEnergy
Source§fn clone(&self) -> BetheFreeEnergy
fn clone(&self) -> BetheFreeEnergy
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for BetheFreeEnergy
impl Debug for BetheFreeEnergy
Source§impl<'de> Deserialize<'de> for BetheFreeEnergy
impl<'de> Deserialize<'de> for BetheFreeEnergy
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for BetheFreeEnergy
impl RefUnwindSafe for BetheFreeEnergy
impl Send for BetheFreeEnergy
impl Sync for BetheFreeEnergy
impl Unpin for BetheFreeEnergy
impl UnsafeUnpin for BetheFreeEnergy
impl UnwindSafe for BetheFreeEnergy
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.