53 virtual size_t count_constants()
const = 0;
54 virtual std::pair<double,double> constant_proposal(
Constant)
const = 0;
55 virtual void randomize_constants() = 0;
69 if(constant_idx >= constants.size()) {
73 return constants.at(constant_idx++);
78 auto C = count_constants();
83 for(
size_t i=0;i<C;i++) {
84 if(constants.at(i).get_value() != h.
constants.at(i).get_value()) {
91 virtual size_t hash()
const {
93 auto C = count_constants();
95 for(
size_t i=0;i<C;i++) {
96 hash_combine(hsh, i, constants.at(i).get_value());
Constant(constant_t v)
Definition: ConstantContainer.h:28
Definition: VMSRuntimeError.h:13
virtual bool operator==(const ConstantContainer &h) const
Definition: ConstantContainer.h:77
virtual size_t hash() const
Definition: ConstantContainer.h:91
virtual size_t count_constants() const =0
Definition: ConstantContainer.h:48
virtual void reset_constant_index()
Definition: ConstantContainer.h:62
virtual Constant next_constant()
Definition: ConstantContainer.h:66
Definition: ConstantContainer.h:12
size_t constant_idx
Definition: ConstantContainer.h:51
Constant()
Definition: ConstantContainer.h:27
std::vector< Constant > constants
Definition: ConstantContainer.h:50
A Rule stores one possible expansion in the grammar, specifying a nonterminal type, an instruction that gets executed, a forma string, a number of children, and an array of types of each child. Here we "emulate" a type system using t_nonterminal to store an integer for the types. *.
constant_t get_value() const
Definition: ConstantContainer.h:33
float constant_t
Definition: ConstantContainer.h:9
Definition: ConstantContainer.h:24
void operator=(const constant_t v)
Definition: ConstantContainer.h:30
float value
Definition: ConstantContainer.h:26