## org.apache.poi.ss.formula.functions
Class Irr

    java.lang.Object
      org.apache.poi.ss.formula.functions.Irr

All Implemented Interfaces:
  Function

    public final class Irr

extends java.lang.Object
implements Function

Calculates the internal rate of return. Syntax is IRR(values) or IRR(values,guess)

Author:
  Marcel May, Yegor Kozlov
See Also:
  Wikipedia on IRR, Excel IRR

Constructor Summary
`Irr()`

Method Summary
`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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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 20 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
  See Also:
    http://commons.apache.org , http://en.wikipedia.org/wiki/Internal_rate_of_return#Numerical_solution, http://en.wikipedia.org/wiki/Newton%27s_method

Copyright 2012 The Apache Software Foundation or its licensors, as applicable.