public final class Irr extends java.lang.Object implements Function
| Constructor and Description |
|---|
Irr() |
| Modifier and Type | Method and 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.
|
public ValueEval evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex)
evaluate in interface Functionargs - the evaluated function arguments. Empty values are represented with
BlankEval or MissingArgEval, never null.srcRowIndex - row index of the cell containing the formula under evaluationsrcColumnIndex - column index of the cell containing the formula under evaluationErrorEval, 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.public static double irr(double[] income)
income - the income values.public static double irr(double[] values,
double guess)
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,
values - the income values.guess - the initial guess of irr.Double.NaN
if the maximum iteration count is exceededCopyright 2022 The Apache Software Foundation or its licensors, as applicable.