Fleet  0.0.9
Inference in the LOT
Public Types | Public Member Functions | List of all members
DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t > Class Template Reference

#include <DeterministicLOTHypothesis.h>

Inheritance diagram for DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >:
Inheritance graph
[legend]
Collaboration diagram for DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >:
Collaboration graph
[legend]

Public Types

using Super = LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >
 
using input_t = Super::input_t
 
using output_t = Super::output_t
 
using call_output_t = output_t
 
using VirtualMachineState_t = Super::VirtualMachineState_t
 
- Public Types inherited from LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >
typedef Bayesable< _datum_t, _data_t >::datum_t datum_t
 
typedef Bayesable< _datum_t, _data_t >::data_t data_t
 
using Grammar_t = _Grammar_t
 
using input_t = _input_t
 
using output_t = _output_t
 
using VirtualMachineState_t = _VirtualMachineState_t
 
using ProposalType = std::optional< std::pair< this_t, double > >
 
- Public Types inherited from Bayesable< Args... >
typedef Args... datum_t
 
typedef std::vector< Args... > data_t
 

Public Member Functions

virtual output_t call (const input_t x, const output_t &err=output_t{})
 A variant of call that assumes no stochasticity and therefore outputs only a single value. (This uses a nullptr virtual machine pool, so will throw an error on flip) More...
 
- Public Member Functions inherited from LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >
 LOTHypothesis ()
 
 LOTHypothesis (Node &x)
 
 LOTHypothesis (Node &&x)
 
 LOTHypothesis (std::string s)
 
 LOTHypothesis (const LOTHypothesis &c)
 
 LOTHypothesis (const LOTHypothesis &&c)
 
LOTHypothesisoperator= (const LOTHypothesis &c)
 
LOTHypothesisoperator= (const LOTHypothesis &&c)
 
virtual ProposalType propose () const override
 Default proposal is rational-rules style regeneration. More...
 
virtual this_t restart () const override
 This is used to restart chains, sampling from prior but ONLY for nodes that are can_resample. More...
 
Nodeget_value ()
 
const Nodeget_value () const
 
void set_value (Node &v, bool should_compile=true)
 Set the value to v. (NOTE: This compiles into a program) More...
 
void set_value (Node &&v, bool should_compile=true)
 
Grammar_tget_grammar () const
 
virtual double compute_prior () override
 Compute the prior – defaultly just the PCFG (grammar) prior. More...
 
virtual double compute_single_likelihood (const datum_t &datum) override
 
void compile ()
 
virtual void push_program (Program< VirtualMachineState_t > &s) override
 This puts the code from my node onto s. Used internally in e.g. recursion. More...
 
virtual std::string string (std::string prefix="") const override
 
virtual std::string string (std::string prefix, bool usedot) const
 
virtual size_t hash () const override
 
virtual bool operator== (const this_t &h) const override
 Equality is checked on equality of values; note that greater-than is still on posteriors. More...
 
virtual void complete () override
 Modify this hypothesis's value by (randomly) filling in all the gaps. More...
 
virtual int neighbors () const override
 Count the number of neighbors that are possible. (This should be size_t but int is more convenient.) More...
 
virtual void expand_to_neighbor (int k) override
 Modify this hypothesis to become the k'th neighbor. NOTE This does not compile since it might not be complete. More...
 
virtual double neighbor_prior (int k) override
 What is the prior of the k'th neighbor? This does not need to return the full prior, only relative (among ks) More...
 
virtual bool is_evaluable () const override
 A node is "evaluable" if it is complete (meaning no null subnodes) More...
 
size_t recursion_count ()
 Count up how many times I use recursion – we keep a list of recursion here. More...
 
virtual std::string serialize () const override
 Convert this into a string which can be written to a file. More...
 
- Public Member Functions inherited from MCMCable< this_t, _datum_t, _data_t >
 MCMCable ()
 
virtual bool operator!= (const this_t &h) const
 
- Public Member Functions inherited from Bayesable< Args... >
 Bayesable ()
 
virtual double compute_single_likelihood (const datum_t &datum)
 Compute the likelihood of a single data point. More...
 
virtual void clear_bayes ()
 
virtual double compute_likelihood (const data_t &data, const double breakout=-infinity)
 Compute the likelihood of a collection of data, by calling compute_single_likelihood on each. This stops if our likelihood falls below breakout. More...
 
virtual double compute_tempered_likelihood (const data_t &data, int ladder_rank, const double breakout=-infinity)
 
virtual double compute_posterior (const data_t &data, const std::pair< double, double > breakoutpair=std::make_pair(-infinity, 1.0))
 Compute the posterior, by calling prior and likelihood. This includes only a little bit of fanciness, which is that if our prior is -inf, then we don't both computing the likelihood. More...
 
virtual double at_temperature (double t) const
 
auto operator (const Bayesable< datum_t, data_t > &other) const
 
virtual void show (std::string prefix="")
 
- Public Member Functions inherited from Searchable< this_t, _input_t, _output_t >
virtual this_t make_neighbor (int k) const
 Return a new hypothesis which is the k'th neighbor (just calls expand_to_neighbor) NOTE This does not compile since it might not be complete. More...
 
- Public Member Functions inherited from ProgramLoader< _VirtualMachineState_t >
virtual void push_program (Program< _VirtualMachineState_t > &s, const short a)
 
virtual void push_program (Program< _VirtualMachineState_t > &s, const int a)
 
virtual void push_program (Program< _VirtualMachineState_t > &s, const std::string k)
 

Additional Inherited Members

- Static Public Member Functions inherited from LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >
static this_t sample ()
 
static this_t from_string (Grammar_t *g, std::string s)
 
static this_t deserialize (const std::string &s)
 Convert this from a string which was in a file. More...
 
- Static Public Member Functions inherited from MCMCable< this_t, _datum_t, _data_t >
static this_t sample ()
 Static function for making a hypothesis. Be careful using this with references because they may not foward right (for reasons that are unclear to me) More...
 
- Static Public Member Functions inherited from Serializable< this_t >
static this_t deserialize (const std::string &)
 
- Public Attributes inherited from LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >
unsigned long total_instruction_count_last_call
 
unsigned long total_vms_steps
 
Program< VirtualMachineState_tprogram
 
- Public Attributes inherited from Bayesable< Args... >
double prior
 
double likelihood
 
double posterior
 
uintmax_t born
 
size_t born_chain_idx
 
- Public Attributes inherited from ProgramLoader< _VirtualMachineState_t >
bool was_called
 
- Static Public Attributes inherited from LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >
static const char SerializationDelimiter = '\t'
 
static const size_t MAX_NODES = 64
 
- Protected Attributes inherited from LOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >
Node value
 

Member Typedef Documentation

◆ call_output_t

template<typename this_t, typename _input_t, typename _output_t, typename _Grammar_t, _Grammar_t * grammar, typename _datum_t = defaultdatum_t<_input_t, _output_t>, typename _data_t = std::vector<_datum_t>, typename _VirtualMachineState_t = typename _Grammar_t::VirtualMachineState_t>
using DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >::call_output_t = output_t

◆ input_t

template<typename this_t, typename _input_t, typename _output_t, typename _Grammar_t, _Grammar_t * grammar, typename _datum_t = defaultdatum_t<_input_t, _output_t>, typename _data_t = std::vector<_datum_t>, typename _VirtualMachineState_t = typename _Grammar_t::VirtualMachineState_t>
using DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >::input_t = Super::input_t

◆ output_t

template<typename this_t, typename _input_t, typename _output_t, typename _Grammar_t, _Grammar_t * grammar, typename _datum_t = defaultdatum_t<_input_t, _output_t>, typename _data_t = std::vector<_datum_t>, typename _VirtualMachineState_t = typename _Grammar_t::VirtualMachineState_t>
using DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >::output_t = Super::output_t

◆ Super

template<typename this_t, typename _input_t, typename _output_t, typename _Grammar_t, _Grammar_t * grammar, typename _datum_t = defaultdatum_t<_input_t, _output_t>, typename _data_t = std::vector<_datum_t>, typename _VirtualMachineState_t = typename _Grammar_t::VirtualMachineState_t>
using DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >::Super = LOTHypothesis<this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t>

◆ VirtualMachineState_t

template<typename this_t, typename _input_t, typename _output_t, typename _Grammar_t, _Grammar_t * grammar, typename _datum_t = defaultdatum_t<_input_t, _output_t>, typename _data_t = std::vector<_datum_t>, typename _VirtualMachineState_t = typename _Grammar_t::VirtualMachineState_t>
using DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >::VirtualMachineState_t = Super::VirtualMachineState_t

Member Function Documentation

◆ call()

template<typename this_t, typename _input_t, typename _output_t, typename _Grammar_t, _Grammar_t * grammar, typename _datum_t = defaultdatum_t<_input_t, _output_t>, typename _data_t = std::vector<_datum_t>, typename _VirtualMachineState_t = typename _Grammar_t::VirtualMachineState_t>
virtual output_t DeterministicLOTHypothesis< this_t, _input_t, _output_t, _Grammar_t, grammar, _datum_t, _data_t, _VirtualMachineState_t >::call ( const input_t  x,
const output_t err = output_t{} 
)
inlinevirtual

A variant of call that assumes no stochasticity and therefore outputs only a single value. (This uses a nullptr virtual machine pool, so will throw an error on flip)

Parameters
x
err
Returns

The documentation for this class was generated from the following file: