Interface | Description |
---|---|
Op<T> |
Operation interface.
|
Class | Description |
---|---|
Const<T> |
Represents an operation which always returns the same, constant, value.
|
EphemeralConst<T> |
Implementation of an ephemeral constant.
|
Program<T> |
This class composes a given operation tree to a new operation.
|
Var<T> |
Represents the program variables.
|
Enum | Description |
---|---|
MathOp |
This class contains operations for performing basic numeric operations.
|
ProgramGene
or ProgramChromosome
class. The
extension point for own programs is the Op
interface.
public interface Op<T> {
public String name();
public int arity();
public T apply(T[] args);
}
final Op<Double> myop = Op.of("myop", 3, v -> v[0]*v[1] + v[2]);
NOTE: The class MathOp
in the
defines a set of mathematical standard operations/functions.
ProgramChromosome
we must
distinguish two different kind of operations:
Var
,
Const
and
EphemeralConst
.
Var
operation defines a variable of a program, which are set
from the program arguments.
final ISeq<Op<Double>> terminals = ISeq.of(
Var.of("x", 0), Var.of("y", 1), Var.of("z", 2)
);
Const
operation will always return the same, constant, value
when evaluated.
final Op<Double> one = Const.of(1.0);
final Op<Double> pi = Const.of("π", Math.PI);
Supplier
function the ephemeral constant is created
with.
final Op<Double> rand1 = EphemeralConst.of(Math::random);
final Op<Double> rand2 = EphemeralConst.of("R", Math::random);
© 2007-2017 Franz Wilhelmstötter (2017-08-22 19:30)