![]() |
Fleet
0.0.9
Inference in the LOT
|
A LOTHypothesis is the basic unit for doing LOT models. It store a Node as its value, and handles all of the proposing and computing priors, likelihoods, etc. It compiles this Node into a "program" which is used to make function calls, which means that the value should only be changed via LOTHypothesis::set_value. More...
#include <string.h>
#include "Proposers.h"
#include "Program.h"
#include "Node.h"
#include "DiscreteDistribution.h"
#include "Errors.h"
#include "Hypotheses/Interfaces/Bayesable.h"
#include "Hypotheses/Interfaces/MCMCable.h"
#include "Hypotheses/Interfaces/Searchable.h"
#include "Hypotheses/Interfaces/Serializable.h"
Go to the source code of this file.
Classes | |
class | LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t > |
A LOTHypothesis is the basic unit for doing LOT models. It store a Node as its value, and handles all of the proposing and computing priors, likelihoods, etc. It compiles this Node into a "program" which is used to make function calls, which means that the value should only be changed via LOTHypothesis::set_value.
LOTHypothsis is templated with itself (the curiously recurring tempalte pattern), an input type, and output type, a grammar type, and types for the individual data elements and vector of data. Usually you will subclass this (or a Lexicon) as this_totheses in a LOT model.
The kind of virtual machinse that are called here are defined inside Grammar (even though LOTHypothesis would be a more natural palce) because we need access to the Grammar's parameter pack over types.