public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1) {TwoDEval reference = convertFirstArg(arg0);int columnIx = 0;try {int rowIx = resolveIndexArg(arg1, srcRowIndex, srcColumnIndex);if (!reference.isColumn()) {if (!reference.isRow()) {return ErrorEval.REF_INVALID;}columnIx = rowIx;rowIx = 0;}return getValueFromArea(reference, rowIx, columnIx);} catch (EvaluationException e) {return e.getErrorEval();}}

public ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1){TwoDEval reference = ConvertFirstArg(arg0);int columnIx = 0;try{int rowIx = ResolveIndexArg(arg1, srcRowIndex, srcColumnIndex);if (!reference.IsColumn){if (!reference.IsRow){return ErrorEval.REF_INVALID;}columnIx = rowIx;rowIx = 0;}return GetValueFromArea(reference, rowIx, columnIx);}catch (EvaluationException e){return e.GetErrorEval();}}
