public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1) {try {ValueEval ve = OperandResolver.getSingleValue(arg0, srcRowIndex, srcColumnIndex);double result = OperandResolver.coerceValueToDouble(ve);if (Double.isNaN(result) || Double.isInfinite(result)) {throw new EvaluationException(ErrorEval.NUM_ERROR);}if (arg1 instanceof RefListEval) {return eval(result, ((RefListEval)arg1), true);}final AreaEval aeRange = convertRangeArg(arg1);return eval(result, aeRange, true);} catch (EvaluationException e) {return e.getErrorEval();}}

public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1){AreaEval aeRange;double result;try{ValueEval ve = OperandResolver.GetSingleValue(arg0, srcRowIndex, srcColumnIndex);result = OperandResolver.CoerceValueToDouble(ve);if (Double.IsNaN(result) || Double.IsInfinity(result)){throw new EvaluationException(ErrorEval.NUM_ERROR);}aeRange = ConvertRangeArg(arg1);}catch (EvaluationException e){return e.GetErrorEval();}return eval(srcRowIndex, srcColumnIndex, result, aeRange, true);}
