## Class Irr

• ### Constructor Summary

Constructors
Constructor Description
Irr()
• ### Method Summary

All Methods
Modifier and Type Method Description
ValueEval evaluate​(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
static double irr​(double[] income)
Computes the internal rate of return using an estimated irr of 10 percent.
static double irr​(double[] values, double guess)
Calculates IRR using the Newton-Raphson Method.
• ### Constructor Detail

• #### Irr

public Irr()
• ### Method Detail

• #### evaluate

public ValueEval evaluate​(ValueEval[] args,
int srcRowIndex,
int srcColumnIndex)
Specified by:
evaluate in interface Function
Parameters:
args - the evaluated function arguments. Empty values are represented with BlankEval or MissingArgEval, never null.
srcRowIndex - row index of the cell containing the formula under evaluation
srcColumnIndex - column index of the cell containing the formula under evaluation
Returns:
The evaluated result, possibly an ErrorEval, never null. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate to Double.NaN be sure to translate the result to ErrorEval.NUM_ERROR.
• #### irr

public static double irr​(double[] income)
Computes the internal rate of return using an estimated irr of 10 percent.
Parameters:
income - the income values.
Returns:
the irr.
• #### irr

public static double irr​(double[] values,
double guess)
Calculates IRR using the Newton-Raphson Method.

Starting with the guess, the method cycles through the calculation until the result is accurate within 0.00001 percent. If IRR can't find a result that works after 1000 tries, the Double.NaN is returned.

The implementation is inspired by the NewtonSolver from the Apache Commons-Math library,

Parameters:
values - the income values.
guess - the initial guess of irr.
Returns:
the irr value. The method returns Double.NaN if the maximum iteration count is exceeded