43inline auto Isnt(
DataType dt) -> 
bool { 
return !((dt == T) || ...); }
 
   64    std::size_t 
operator()(std::vector<uint32_t> 
const& vec)
 const {
 
   65      std::size_t seed = vec.size();
 
   67        seed ^= i + 0x9e3779b9 + (seed << 6) + (seed >> 2);
 
 
   71    std::size_t 
operator()(std::vector<Brush::DataType> 
const& vec)
 const {
 
   72      std::size_t seed = vec.size();
 
   74        seed ^= uint32_t(i) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
 
 
 
  134    explicit Node(
NodeType type, S signature, 
bool weighted=
false, 
string feature_name=
"") noexcept
 
 
  175    string get_name(
bool include_weight=
true) const noexcept; 
 
  176    string get_model(const vector<
string>&) const noexcept; 
 
  226        return !((*this) == rhs);
 
 
  233        return (*
this) < rhs;
 
 
  238        return ((*
this) == rhs || (*
this) < rhs);
 
 
  243        return !((*this) <= rhs);
 
 
  248        return !((*this) < rhs);
 
 
  271            return this->is_weighted;
 
 
 
  291inline auto Is(
NodeType nt) -> 
bool { 
return ((nt == T) || ...); }
 
  367template <> 
struct fmt::formatter<
Brush::
Node>: formatter<string_view> {
 
  369  template <
typename FormatContext>
 
  371    return formatter<string_view>::format(x.
get_name(), ctx);
 
 
 
holds variable type data.
 
< nsga2 selection operator for getting the front
 
ostream & operator<<(ostream &os, DataType n)
 
std::underlying_type_t< NodeType > UnderlyingNodeType
 
auto Isnt(DataType dt) -> bool
 
auto IsWeighable() noexcept -> bool
 
void from_json(const json &j, Fitness &f)
 
auto IsLeaf(NodeType nt) noexcept -> bool
 
auto IsCommutative(NodeType nt) noexcept -> bool
 
auto Is(NodeType nt) -> bool
 
void to_json(json &j, const Fitness &f)
 
std::map< NodeType, std::string > NodeTypeName
 
auto IsDifferentiable(NodeType nt) noexcept -> bool
 
static auto GetIndex(NodeType type) -> size_t
 
class holding the data for a node in a tree.
 
float get_prob_keep() const
 
bool center_op
whether to center the operator in pretty printing
 
std::vector< DataType > arg_types
argument data types
 
bool get_keep_split_feature() const
 
DataType feature_type
feature type for terminals or splitting nodes
 
DataType get_ret_type() const
 
void set_keep_split_feature(bool keep)
 
bool fixed
whether the node is replaceable. Weights are still optimized.
 
size_t get_node_hash(bool include_const=true) const
 
float get_prob_change() const
 
NodeType node_type
the node type
 
DataType get_feature_type() const
 
auto operator<=(const Node &rhs) const noexcept -> bool
 
Node(NodeType type, S signature, bool weighted=false, string feature_name="") noexcept
Constructor used by search space.
 
DataType ret_type
return data type
 
auto operator>(const Node &rhs) const noexcept -> bool
 
void set_is_weighted(bool is_weighted)
 
auto get_arg_types() const
 
auto operator==(const Node &rhs) const noexcept -> bool
 
void set_feature(string f)
 
string get_feature() const
 
std::size_t sig_hash
a hash of the signature
 
bool get_is_weighted() const
 
void set_feature_type(DataType ft)
 
std::size_t args_type() const
 
float prob_change
chance of node being selected for variation
 
auto operator>=(const Node &rhs) const noexcept -> bool
 
string get_name(bool include_weight=true) const noexcept
gets a string version of the node for printing.
 
float W
the weights of the node. also used for splitting thresholds.
 
bool is_weighted
whether this node is weighted (ignored in nodes that must have weights, such as meanLabel,...
 
std::tuple< UnderlyingNodeType, size_t, bool, string, bool, int > HashTuple
tuple type for hashing
 
bool keep_split_feature
fix the SplitBest feature when the node is fixed
 
size_t get_arg_count() const
 
string feature
feature name for terminals or splitting nodes
 
auto operator!=(const Node &rhs) const noexcept -> bool
 
string name
full name of the node, with types
 
void set_prob_change(float w)
 
auto operator<(const Node &rhs) const noexcept -> bool
 
std::size_t sig_dual_hash
a hash of the dual of the signature (for NLS)
 
string get_model(const vector< string > &) const noexcept
 
std::size_t operator()(std::vector< Brush::DataType > const &vec) const
 
std::size_t operator()(std::vector< uint32_t > const &vec) const