Class 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)
    See Also:
    Wikipedia on IRR, Excel IRR
    • Constructor Summary

      Constructors 
      Constructor Description
      Irr()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete 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.
      • Methods inherited from class java.lang.Object

        equals, 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