public ValueEval evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0,ValueEval arg1) {double result;try {double d0 = NumericFunction.singleOperandEvaluate(arg0, srcRowIndex, srcColumnIndex);double d1 = NumericFunction.singleOperandEvaluate(arg1, srcRowIndex, srcColumnIndex);double logE = Math.log(d0);if (Double.compare(d1, Math.E) == 0) {result = logE;} else {result = logE / Math.log(d1);}NumericFunction.checkValue(result);} catch (EvaluationException e) {return e.getErrorEval();}return new NumberEval(result);}

public ValueEval evaluate ( int srcRowIndex , int srcColumnIndex , ValueEval arg0 , ValueEval arg1 ) { double result ; try { double d0 = NumericFunction . singleOperandEvaluate ( arg0 , srcRowIndex , srcColumnIndex ) ; double d1 = NumericFunction . singleOperandEvaluate ( arg1 , srcRowIndex , srcColumnIndex ) ; double logE = Math . log ( d0 ) ; if ( Double . compare ( d1 , Math . E ) == 0 ) { result = logE ; } else { result = logE / Math . log ( d1 ) ; } NumericFunction . checkValue ( result ) ; } catch ( EvaluationException e ) { return e . getErrorEval ( ) ; } return new NumberEval ( result ) ; }
public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0,ValueEval arg1) {double result;try {double d0 = NumericFunction.SingleOperandEvaluate(arg0, srcRowIndex, srcColumnIndex);double d1 = NumericFunction.SingleOperandEvaluate(arg1, srcRowIndex, srcColumnIndex);double logE = Math.Log(d0);double base1 = d1;if (base1 == Math.E) {result = logE;} else {result = logE / Math.Log(base1);}NumericFunction.CheckValue(result);} catch (EvaluationException e) {return e.GetErrorEval();}return new NumberEval(result);}
