Exemplo n.º 1
0
  public ValueEval evaluate(
      final ValueEval[] args, final int srcRowIndex, final int srcColumnIndex) {
    if (args.length == 0 || args.length > 2) {
      // Wrong number of arguments
      return ErrorEval.VALUE_INVALID;
    }

    try {
      double[] values = AggregateFunction.ValueCollector.collectValues(args[0]);
      double guess;
      if (args.length == 2) {
        guess = NumericFunction.singleOperandEvaluate(args[1], srcRowIndex, srcColumnIndex);
      } else {
        guess = 0.1d;
      }
      double result = irr(values, guess);
      NumericFunction.checkValue(result);
      return new NumberEval(result);
    } catch (EvaluationException e) {
      return e.getErrorEval();
    }
  }