Skip to main content

Support

Enum Support 

Source
pub enum Support {
    Real,
    Positive,
    Bounded {
        lower: f64,
        upper: f64,
    },
}
Expand description

The support of a continuous (f64-valued) distribution, as far as an inference kernel needs to know it (FG-N1).

Metropolis-Hastings proposal selection must be a function of the site, not of the value currently at the site: a kernel whose shape depends on the current state is not, in general, invariant for the target. Support is the static description each distribution advertises for that purpose via Distribution::support:

  • Support::Real - the whole real line (the default). Proposals are a symmetric Gaussian walk; anything the density rejects scores -inf and is simply rejected, so this is always correct, merely less efficient for a distribution that is really constrained.
  • Support::Positive - (0, +inf). Proposals walk in log space with the exact Jacobian correction (FG-02).
  • Support::Bounded - a finite interval [lower, upper]. Proposals are a Gaussian walk reflected at both bounds (symmetric, so no Hastings term), which can reach every point of the interval from every other one.

Discrete distributions never consult this and leave the default.

Variants§

§

Real

Unconstrained: (-inf, +inf). Also the conservative default for a distribution that does not describe its support.

§

Positive

Strictly positive: (0, +inf).

§

Bounded

A finite interval.

Fields

§lower: f64

Lower bound of the interval.

§upper: f64

Upper bound of the interval.

Trait Implementations§

Source§

impl Clone for Support

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Support

Source§

impl Debug for Support

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for Support

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Support

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V