com.epochx.representation.bool
Class IfAndOnlyIfFunction

java.lang.Object
  extended by com.epochx.representation.Node<TYPE>
      extended by com.epochx.representation.FunctionNode<java.lang.Boolean>
          extended by com.epochx.representation.bool.IfAndOnlyIfFunction
All Implemented Interfaces:
java.lang.Cloneable

public class IfAndOnlyIfFunction
extends FunctionNode<java.lang.Boolean>

A FunctionNode which performs the biconditional logical connective of IFF (if and only if).


Constructor Summary
IfAndOnlyIfFunction()
          Construct an IfAndOnlyIfFunction with no children.
IfAndOnlyIfFunction(Node<java.lang.Boolean> child1, Node<java.lang.Boolean> child2)
          Construct an IfAndOnlyIfFunction with two children.
 
Method Summary
 java.lang.Boolean evaluate()
          Evaluating an IfAndOnlyIfFunction involves combining the evaluation of the children according to the rules of IFF where if both children evaluate to true or both evaluate to false, then the result will be true.
 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

IfAndOnlyIfFunction

public IfAndOnlyIfFunction()
Construct an IfAndOnlyIfFunction with no children.


IfAndOnlyIfFunction

public IfAndOnlyIfFunction(Node<java.lang.Boolean> child1,
                           Node<java.lang.Boolean> child2)
Construct an IfAndOnlyIfFunction with two children. When evaluated, if both children evaluate to true, or both evaluate to false then the result will be true. All other combinations will return a result of false.

Parameters:
child1 - The first child node.
child2 - The second child node.
Method Detail

evaluate

public java.lang.Boolean evaluate()
Evaluating an IfAndOnlyIfFunction involves combining the evaluation of the children according to the rules of IFF where if both children evaluate to true or both evaluate to false, then the result will be true. All other combinations will return a result of false.

Specified by:
evaluate in class Node<java.lang.Boolean>
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.Boolean>
Returns:
the unique name for the IfAndOnlyIfFunction which is IFF.