Utilities
Parameters
Experiment ━━ Genus ━━ Species ━━ Organism ━━ Genotype ━━ Chromosome ━━ Node
┗━━━━ Phenotype
┗━━━━━ Link
A Node
is an individual processing unit which receives and broadcasts signals.
unsigned long int key
A unique number which specifies the Node
's position relative to its neighboring Node
s.
unsigned int tag
A unique number which specifies the Node
's identity within a Genus
.
element_state state
Specifies whether the Node
is ENABLED
or DISABLED
.
node_role role
Labels the Node
's role as INPUT
, HIDDEN
, BIAS
, or OUTPUT
.
std::vector<Link*> incoming
Stores pointers to the Node
's incoming Link
s.
std::vector<Link*> outgoing
Stores pointers to the Node
's outgoing Link
s.
std::vector<double> inputs
Stores the external weighted signals received by the Node
.
double output
The Node
's last generated output signal.
node_activation activation
Specifies whether the Node
's activation corresponds to the HEAVISIDE
, RELU
, LOGISTIC
, IDENTITY
, or UNITY
function.
double x
The Node
's horizontal coordinate.
double y
The Node
's vertical coordinate.
Node(unsigned long int key_, unsigned int tag_, element_state state_, node_role role_, node_activation activation_, double x_, double y_)
Constructs a Node
instance with properties given by the input arguments.
Node(unsigned long int key_, unsigned int tag_, element_state state_, node_role role_, Node* source_, Node* target_, node_activation activation_)
Constructs a Node
instance located half-way between two other Node
s.
Node(Node* node_)
Constructs a shallow copy of the Node
referenced by the input pointer.
double activate()
Produces the Node
's output signal.
void engage()
Prompts the Node
to produce and broadcast its output signal through its outgoing Link
s.
void disengage()
Primes the Node
for a subsequent engagement.
void clear()
Clears the Node
's output.
Vertex graph()
Generates a Vertex
encapsulating the Node
's properties.