Fleet  0.0.9 Inference in the LOT
LOTHypothesis.h File Reference

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"
Include dependency graph for LOTHypothesis.h:
This graph shows which files directly or indirectly include this file:

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 >

## Detailed Description

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.