- Fallsback If Newton Methods returns NaN
- Better tests
- added period option to Xirr
- Changed negative limits to return nil
- Newton Method will return nil if result is less than 100%
- This update will break the old Cashflow initializer
- Adds named attributes to Cashflow Initializer
- Allows specific configuration to initializer such as: period, flow (array of transactions)
- Calling xirr with a guess now requires named attribute
- If a method is provided, it won't fall back to the secondary method
- Added verification to pass on ruby 2.0.0
- Xirr returns nil and there is now a default settings to replace nil rate.
- It will compact the flow automatically, unless specified in the defaults.
- Attention to the new way, the Cashflow is created. Cashflow.new requires a Compacted boolean before the array of flow.
- Added fallback to secondary calculation method.
- Moved XNPV function to C.
- Cashflow validation excludes zeros
- Added missing tests
- Fixed Fallback method
- Bisection will now retry XIRR in Newton Method if right limit is reached
- Options in config are now module constants
- New Bisection method to avoid not converging to negative IRRs if not enough precision
- Default XIRR does not raise an Exception if cashflow is invalid
- Cashflow Invalid Messages are now public.
- Cashflow Invalid? won't raise exception
- Running XIRR in an invalid cashflow will throw exception
- New Cashflow No Exception XIRR call.
- Major fix to Bisection Engine.
- Error if provided method is wrong.
- Bisection: Initial guess is compared to default limits
- Transaction converts Time to Date.
- Added Tests.
- Output is rounded to default precision.
- Added Newton Method, but Bisection is still the default.
- Added new configs: precision, iteration limit.
- Raises a simple error if iteration limit is reached.
- Output is now BigDecimal.
- Fixed calculation of Bisection#npv
- Amounts in Transactions are now converted to Float
- Transactions now take Date Argument as Date instead of Time.