Class Irr

    • 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
        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