code: public double evaluate(double[] programParameters)
      {
          return condition.evaluate(programParameters) > 0 // If...
                 ? then.evaluate(programParameters)   // Then...
                 : otherwise.evaluate(programParameters);  // Else...
      }
docs: {@inheritDoc}
  Operates on three other nodes.  The first is an expression to evaluate.
  Which of the other two nodes is evaluated and returned depends on whether
  this node evaluates to greater than zero or not.
  @param programParameters Program parameters (ignored by the conditional operator
  but may be used in evaluating child nodes).