Struct r_gen::trace::Trace [−][src]
Expand description
The trace struct. This holds information about the execution of a gnerative model.
Fields
log_score: f64
The log joint liklihood of all of the random decisions in the trace.
choices: Choicemap
The Choicemap that holds the list of the actual decisions that were made in the execution of the generative model.
Implementations
Create a new blank trace. It begins with an empty choice map and a log score of 0 (which corresponds to a probability of 1.0 when exponentiated.)
Return a string that discribes the random decisions made by the model in this trace.
Example
#[macro_use] use r_gen::{sample, r_gen}; use r_gen::{simulate, distributions::{Value, Distribution}, trace::{Choicemap, Trace}}; use std::rc::Rc; #[r_gen] fn my_biased_coin_model(():()){ let p = sample!(format!("p"), Distribution::Beta(1.0, 1.0)); //Sample p from a uniform. sample!(format!("num_heads"), Distribution::Binomial(100, p.into())); //Flip 100 coins where P(Heads)=p } let (trace, result) = simulate(&mut my_biased_coin_model, ()); println!("{}", trace.get_trace_string());
Sample a trace from a vector of traces according to a categorical distribution. The weights for the distribution are the scores of the traces rescaled by a normalizing constant. This function is intended to be used in an importance resampling algorithm.
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
impl RefUnwindSafe for Trace
impl UnwindSafe for Trace
Blanket Implementations
Mutably borrows from an owned value. Read more
type Output = T
type Output = T
Should always be Self
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub unsafe fn to_subset_unchecked(&self) -> SS
pub unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
pub fn vzip(self) -> V