org.encog.ml.prg.extension

## Interface ProgramExtensionTemplate

- All Superinterfaces:
    Serializable
  All Known Implementing Classes:
    BasicTemplate

      public interface ProgramExtensionTemplate
      extends Serializable

  Defines an opcode. Opcodes are used to extend Encog programs.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `NO_PREC` Defines a very low precidence.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ExpressionValue` | `evaluate(ProgramNode actual)` Evaluate the specified actual program node, using this opcode template.
    `int` | `getChildNodeCount()`
    `int` | `getDataSize()`
    `String` | `getName()`
    `NodeType` | `getNodeType()`
    `List<ParamTemplate>` | `getParams()`
    `int` | `getPrecedence()`
    `ParamTemplate` | `getReturnValue()`
    `boolean` | `isPossibleReturnType(EncogProgramContext context, ValueType rtn)` Determines if the specified return type is a possible return type.
    `boolean` | `isVariable()`
    `void` | `randomize(Random rnd, List<ValueType> desiredType, ProgramNode actual, double minValue, double maxValue)` Randomize this actual tree node.

- - ### Field Detail

    - #### NO_PREC

          static final int NO_PREC

      Defines a very low precidence.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### evaluate

          ExpressionValue evaluate(ProgramNode actual)

      Evaluate the specified actual program node, using this opcode template.
      Parameters:
        `actual` - The tree node in the actual program.
      Returns:
        The result of the evaluation.

    - #### getChildNodeCount

          int getChildNodeCount()

      Returns:
        Get the number of child nodes that this opcode requires.

    - #### getDataSize

          int getDataSize()

      Returns:
        The size of extra data that is stored by this node.

    - #### getName

          String getName()

      Returns:
        Get the name of this opcode.

    - #### getNodeType

          NodeType getNodeType()

      Returns:
        The node type.

    - #### getParams

          List<ParamTemplate> getParams()

      Returns:
        The parameters (child nodes) required by this node.

    - #### getPrecedence

          int getPrecedence()

      Returns:
        The operator precedence.

    - #### getReturnValue

          ParamTemplate getReturnValue()

      Returns:
        The return value for this opcode.

    - #### isPossibleReturnType

          boolean isPossibleReturnType(EncogProgramContext context,
                                     ValueType rtn)

      Determines if the specified return type is a possible return type.
      Parameters:
        `context` - The program context.
        `rtn` - The potential return type to check.
      Returns:
        True, if the specified type is a possible return type.

    - #### isVariable

          boolean isVariable()

      Returns:
        Returns true if this node is variable.

    - #### randomize

          void randomize(Random rnd,
                       List<ValueType> desiredType,
                       ProgramNode actual,
                       double minValue,
                       double maxValue)

      Randomize this actual tree node.
      Parameters:
        `rnd` - Random number generator.
        `desiredType` - The desired type of the randomization, if allowed.
        `actual` - The actual program node to randomize.
        `minValue` - The minimum value to use for randomization.
        `maxValue` - The maximum value to use for randomization.

Copyright © 2014. All Rights Reserved.