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 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);}
