![]() |
Ultra 0.9.4
|
#include <terminal.h>
Public Member Functions | |
| virtual value_t | instance () const =0 |
| std::string | to_string (format=c_format) const override |
| symbol (const std::string &, category_t=default_category) | |
| Public Member Functions inherited from ultra::symbol | |
| symbol (const std::string &, category_t=default_category) | |
| virtual | ~symbol ()=default |
| Virtual destructor to allow safe polymorphic deletion. | |
| category_t | category () const noexcept |
| opcode_t | opcode () const noexcept |
| const std::string & | name () const noexcept |
| void | category (category_t) noexcept |
| virtual bool | is_valid () const |
Additional Inherited Members | |
| Public Types inherited from ultra::symbol | |
| enum | format { c_format , cpp_format , python_format , sup_format } |
| Supported rendering formats for symbol stringification. | |
| using | category_t = unsigned |
| using | opcode_t = unsigned |
| Static Public Attributes inherited from ultra::symbol | |
| static constexpr category_t | default_category = 0 |
| Default category assigned when typing is not used. | |
| static constexpr category_t | undefined_category |
| Sentinel value indicating that the category has not yet been assigned. | |
Leaf symbol in a genetic programming expression.
A terminal represents an atomic value in a GP expression tree or linear program. Unlike functions, terminals do not take arguments and therefore have arity zero.
Typical examples of terminals include:
Terminals are evaluated by directly producing a value, rather than combining the results of sub-expressions. As such, they always appear as leaves in the program structure.
|
nodiscardpure virtual |
Produce the runtime value of the terminal.
This function returns the value represented by the terminal when the program is evaluated. The returned value may depend on the evaluation context (e.g. the current input vector), but does not depend on any child expressions.
Implemented in ultra::de::real, ultra::ga::integer, ultra::hga::integer, ultra::hga::permutation, ultra::integer::literal, ultra::integer::number, ultra::nullary, ultra::real::integer, ultra::real::literal, ultra::real::number, ultra::src::variable, and ultra::str::literal.
|
explicit |
Constructs a symbol with the given name and category.
| [in] | name | name of the symbol (unique textual identifier) |
| [in] | c | category of the symbol |
|
inlinenodiscardoverridevirtual |
Implements ultra::symbol.