Epox Function Listing

This is a (mostly) comprehensive listing of the built-in functions and literals in Epox, the Lisp-like language used in the SFGP representation of EpochX. However, custom functions, literals and variables can be declared to expand this language.

Language Functions

The built-in language functions are all found in the org.epochx.epox.lang package.

Identifier Node Class Description
IF IfFunction Conditional if-else statement
SEQ2 Seq2Function Chains two nodes together in sequence
SEQ3 Seq3Function Chains three nodes together in sequence
SEQN SeqNFunction Chains N nodes together in sequence. N is supplied as an argument to the constructor.

Boolean Functions

The built-in boolean functions are all found in the org.epochx.epox.bool package.

Identifier Node Class Description
AND AndFunction Performs logical conjunction
IFF IfAndOnlyIfFunction Performs logical if-and-only-if
IMPLIES ImpliesFunction Performs logical implication
NAND NandFunction Performs NAND, negation of logical conjunction
NOR NorFunction Performs NOR, negation of logical OR
NOT NotFunction Performs logical negation
OR OrFunction Performs logical disjunction
XOR XorFunction Performs exclusive disjunction

Mathematical Functions

The built-in math functions are all found in the org.epochx.epox.math package.

Identifier Node Class Description
ABS AbsoluteFunction Returns the positive version of a numerical value
ADD AddFunction Sums two numerical values
CVP CoefficientPowerFunction Represents a variable with exponent and coefficient. Equivalent to a PowerFunction combined with a MultiplyFunction.
CUBE CubeFunction Raises its input to the third power. Equivalent to the PowerFunction with an input of 3.0.
CBRT CubeRootFunction Returns cube root of the input
PDIV DivisionProtectedFunction Performs division, where division by zero is protected (using a value specified at construction).
EXP ExponentialFunction Performs exponential function, e^x where e is Euler's constant
FACTORIAL FactorialFunction Performs factorial, FACTORIAL(3) == 3 * 2 * 1
GT GreaterThanFunction Performs greater-than comparison, returns boolean
INV InvertProtectedFunction Performs reciprocal, where reciprical of zero is protected (using a value specified at construction).
LT LessThanFunction Performs less-than comparison, returns boolean
LOG-10 Log10Function Performs the common (base 10) logarithm
LN LogFunction Performs the natural (base e) logarithm
MAX Max2Function Compares two numeric inputs and returns the largest
MAX3 Max3Function Compares three numeric inputs and returns the largest
MIN Min2Function Compares two numeric inputs and returns the largest
MIN3 Min3Function Compares three numeric inputs and returns the largest
MOD ModuloProtectedFunction Performs modulo, where modulo of zero is protected (returns the dividend).
MUL MultiplyFunction Performs multiplication
POW PowerFunction Performs exponentiation
SGN SignumFunction Performs the sign function that extracts the sign of a number
SQUARE SquareFunction Raises its input to the second power. Equivalent to the PowerFunction with an input of 2.0.
SQRT SquareRootFunction Returns the square root of the input
SUB SubtractFunction Performs numeric subtraction

Trigonometric Functions

The built-in trigonometric functions are all found in the org.epochx.epox.trig package.

Identifier Node Class Description
ARCCSC ArcCosecantFunction Performs arc-cosecant
ARCCOS ArcCosineFunction Performs arc-cosine
ARCCOT ArcCotangentFunction Performs arc-cotangent
ARCSEC ArcSecantFunction Performs arc-secant
ARCSIN ArcSineFunction Performs arc-sine
ARCTAN ArcTangentFunction Performs arc-tangent
ARCOSH AreaHyperbolicCosineFunction Performs area hyperbolic cosine
ARSINH AreaHyperbolicSineFunction Performs area hyperbolic sine
ARTANH AreaHyperbolicTangentFunction Performs area hyperbolic tangent
CSC CosecantFunction Performs cosecant
COS CosineFunction Performs cosine
COT CotangentFunction Performs cotangent
COSH HyperbolicCosineFunction Performs hyperbolic cosine
SINH HyperbolicSineFunction Performs hyperbolic sine
TANH HyperbolicTangentFunction Performs hyperbolic tangent
SEC SecantFunction Performs secant
SIN SineFunction Performs sine
TAN TangentFunction Performs tangent

Ant Functions

The built-in ant functions are all found in the org.epochx.epox.ant package.

Identifier Node Class Description
MOVE AntMoveFunction Moves an ant instance forward one space in its landscape
SKIP AntSkipFunction Causes an ant instance to move on one time-step with changing position in its landscape
TURN-LEFT AntTurnLeftFunction Causes an ant instance to turn left from its current orientation in its landscape
TURN-RIGHT AntTurnRightFunction Causes an ant instance to turn right from its current orientation in its landscape
IF-FOOD-AHEAD IfFoodAheadFunction Conditionally evaluates a statement depending on the presence of food in the position in front of an ant

Literals

Literal values are taken from Java's primitive and object data-types:

Data-type Details
Boolean true/false
Integer
Double
Character
String