5 template<
typename this_t,
11 typename _data_t=std::vector<_datum_t>,
12 typename _VirtualMachineState_t=
typename _Grammar_t::VirtualMachineState_t
33 if constexpr (std::is_same<typename VirtualMachineState_t::input_t, input_t>::value and
34 std::is_same<typename VirtualMachineState_t::output_t, output_t>::value) {
36 assert(not this->
program.empty());
47 const auto out = vms.run();
54 print(
typeid(
input_t).name(),
typeid(
output_t).name(),
typeid(
typename VirtualMachineState_t::input_t).name(),
typeid(
typename VirtualMachineState_t::output_t).name());
56 assert(
false &&
"*** Cannot use call when VirtualMachineState_t has different input_t or output_t.");
void UNUSED(const T &x)
Definition: Miscellaneous.h:38
Super::output_t output_t
Definition: DeterministicLOTHypothesis.h:21
_input_t input_t
Definition: LOTHypothesis.h:50
_VirtualMachineState_t VirtualMachineState_t
Definition: LOTHypothesis.h:52
Program< VirtualMachineState_t > program
Definition: LOTHypothesis.h:68
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...
Definition: DeterministicLOTHypothesis.h:32
void print(FIRST f, ARGS... args)
Lock output_lock and print to std:cout.
Definition: IO.h:53
unsigned long total_vms_steps
Definition: LOTHypothesis.h:65
Definition: DeterministicLOTHypothesis.h:14
_output_t output_t
Definition: LOTHypothesis.h:51
Super::VirtualMachineState_t VirtualMachineState_t
Definition: DeterministicLOTHypothesis.h:23
output_t call_output_t
Definition: DeterministicLOTHypothesis.h:22
Definition: LOTHypothesis.h:40
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.
unsigned long total_instruction_count_last_call
Definition: LOTHypothesis.h:64
bool was_called
Definition: Program.h:23
Super::input_t input_t
Definition: DeterministicLOTHypothesis.h:20