com.epochx.representation.dbl
Class FactorialFunction

java.lang.Object
  extended by com.epochx.representation.Node<TYPE>
      extended by com.epochx.representation.FunctionNode<java.lang.Double>
          extended by com.epochx.representation.dbl.FactorialFunction
All Implemented Interfaces:
java.lang.Cloneable

public class FactorialFunction
extends FunctionNode<java.lang.Double>

A FunctionNode which performs the mathematical function of factorial, which is normally expressed with an exclamation mark ! For example: 5! = 5 x 4 x 3 x 2 x 1 = FACTORIAL 5


Constructor Summary
FactorialFunction()
          Construct a FactorialFunction with no children.
FactorialFunction(Node<java.lang.Double> child)
          Construct a FactorialFunction with one child.
 
Method Summary
 java.lang.Double evaluate()
          Evaluating a FactorialFunction involves evaluating the child first then performing factorial on the result.
 java.lang.String getFunctionName()
          Get the unique name that identifies this function.
 
Methods inherited from class com.epochx.representation.FunctionNode
equals, toString
 
Methods inherited from class com.epochx.representation.Node
clone, 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

FactorialFunction

public FactorialFunction()
Construct a FactorialFunction with no children.


FactorialFunction

public FactorialFunction(Node<java.lang.Double> child)
Construct a FactorialFunction with one child. When evaluated, the child will be first evaluated, with the result undergoing the factorial function.

Parameters:
child - The child which factorial will be performed on.
Method Detail

evaluate

public java.lang.Double evaluate()
Evaluating a FactorialFunction involves evaluating the child first then performing factorial on the result. Factorial requires a natural number, in order to achieve this the evaluated child may undergo rounding.

Specified by:
evaluate in class Node<java.lang.Double>
Returns:
The result of evaluating the candidate program.

getFunctionName

public java.lang.String getFunctionName()
Get the unique name that identifies this function.

Specified by:
getFunctionName in class FunctionNode<java.lang.Double>
Returns:
the unique name for the FactorialFunction which is FACTORIAL.