diff options
Diffstat (limited to 'numpy/lib/financial.py')
-rw-r--r-- | numpy/lib/financial.py | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/numpy/lib/financial.py b/numpy/lib/financial.py index 5d1e65f5c..503d43647 100644 --- a/numpy/lib/financial.py +++ b/numpy/lib/financial.py @@ -626,16 +626,12 @@ def mirr(values, finance_rate, reinvest_rate): """ values = np.asarray(values, dtype=np.double) - initial = values[0] - values = values[1:] n = values.size pos = values > 0 neg = values < 0 if not (pos.any() and neg.any()): return np.nan - numer = np.abs(npv(reinvest_rate, values*pos)) - denom = np.abs(npv(finance_rate, values*neg)) - if initial > 0: - return ((initial + numer) / denom)**(1.0/n)*(1 + reinvest_rate) - 1 - else: - return ((numer / (-initial + denom)))**(1.0/n)*(1 + reinvest_rate) - 1 + numer = np.abs(npv(reinvest_rate, values*pos))*(1 + reinvest_rate) + denom = np.abs(npv(finance_rate, values*neg))*(1 + finance_rate) + return (numer/denom)**(1.0/(n - 1))*(1 + reinvest_rate) - 1 + |