public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1,ValueEval arg2) {try {double d0 = NumericFunction.singleOperandEvaluate(arg0, srcRowIndex, srcColumnIndex);double d1 = NumericFunction.singleOperandEvaluate(arg1, srcRowIndex, srcColumnIndex);ValueEval ve = OperandResolver.getSingleValue(arg2, srcRowIndex, srcColumnIndex);Boolean method = OperandResolver.coerceValueToBoolean(ve, false);return new NumberEval(evaluate(d0, d1, method != null && method.booleanValue()));} catch (EvaluationException e) {return e.getErrorEval();}}
public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1, ValueEval arg2){double result;try{double d0 = NumericFunction.SingleOperandEvaluate(arg0, srcRowIndex, srcColumnIndex);double d1 = NumericFunction.SingleOperandEvaluate(arg1, srcRowIndex, srcColumnIndex);ValueEval ve = OperandResolver.GetSingleValue(arg2, srcRowIndex, srcColumnIndex);bool? method = OperandResolver.CoerceValueToBoolean(ve, false);result = Evaluate(d0, d1);}catch (EvaluationException e){return e.GetErrorEval();}return new NumberEval(result);}