com.epochx.representation
Class FunctionNode<TYPE>

java.lang.Object
  extended by com.epochx.representation.Node<TYPE>
      extended by com.epochx.representation.FunctionNode<TYPE>
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
AddFunction, AndFunction, ArcCosineFunction, ArcSineFunction, ArcTangentFunction, CoefficientPowerFunction, CosecantFunction, CosineFunction, CotangentFunction, CubeFunction, CubeRootFunction, FactorialFunction, HyperbolicCosineFunction, HyperbolicSineFunction, HyperbolicTangentFunction, IfAndOnlyIfFunction, IfFoodAheadFunction, IfFunction, ImpliesFunction, InvertFunction, Log10Function, LogFunction, MaxFunction, MinFunction, ModuloFunction, MultiplyFunction, NandFunction, NorFunction, NotFunction, OrFunction, PowerFunction, ProtectedDivisionFunction, SecantFunction, Seq2Function, Seq3Function, SignumFunction, SineFunction, SquareFunction, SquareRootFunction, SubtractFunction, TangentFunction, XorFunction

public abstract class FunctionNode<TYPE>
extends Node<TYPE>

Represents a function node within a candidate program.

See Also:
Node, TerminalNode

Constructor Summary
FunctionNode(Node<TYPE>... children)
          Constructor for function node with dynamic number of children depending on arity of function.
 
Method Summary
 boolean equals(java.lang.Object obj)
          Compare an object for equality.
abstract  java.lang.String getFunctionName()
          The value returned from this function should be unique for a specific function type within a run.
 java.lang.String toString()
          Returns a string representation of the function node.
 
Methods inherited from class com.epochx.representation.Node
clone, evaluate, getArity, getChild, getChildren, getDepth, getFunctionNodes, getLength, getNodesAtDepth, getNoDistinctFunctions, getNoDistinctTerminals, getNoFunctions, getNoTerminals, getNthNode, getTerminalNodes, hashCode, setChild, setChildren, setNthNode
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FunctionNode

public FunctionNode(Node<TYPE>... children)
Constructor for function node with dynamic number of children depending on arity of function.

Parameters:
children - the child nodes.
Method Detail

getFunctionName

public abstract java.lang.String getFunctionName()
The value returned from this function should be unique for a specific function type within a run.

Returns:
a unique function name.

toString

public java.lang.String toString()
Returns a string representation of the function node. Since the function node is dependent upon its children, their string representations will form part of this.

Overrides:
toString in class java.lang.Object
Returns:
a string representation of this function node.

equals

public boolean equals(java.lang.Object obj)
Description copied from class: Node
Compare an object for equality. If the given object is a Node then it may be equal if each Node in the tree is equal. Equality of individual Nodes is dependant on the specific node type but typically will be whether they are the same type and have the same children for function nodes and whether they have the same value or are the same variable for terminal nodes.

Overrides:
equals in class Node<TYPE>
Parameters:
obj - an object to be compared for equivalence.
Returns:
true if this node tree is the same as the obj argument; false otherwise.