Class: XirrNewtonCalculator
- Inherits:
-
Object
- Object
- XirrNewtonCalculator
- Defined in:
- lib/xirr_newton_calculator.rb
Defined Under Namespace
Classes: FlowStruct
Constant Summary collapse
- EPS =
10 ** -7
Instance Method Summary collapse
- #calculate(eps = EPS) ⇒ Object
-
#initialize(flows, init_rate, max_iteration = 10_000) ⇒ XirrNewtonCalculator
constructor
A new instance of XirrNewtonCalculator.
Constructor Details
#initialize(flows, init_rate, max_iteration = 10_000) ⇒ XirrNewtonCalculator
Returns a new instance of XirrNewtonCalculator.
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/xirr_newton_calculator.rb', line 12 def initialize(flows, init_rate, max_iteration=10_000) initial_date = Date.parse flows[0].date.to_s @flows = flows.collect do |flow| FlowStruct.new( flow.amount, (Date.parse(flow.date.to_s) - initial_date) / 365.0 ) end @x_n = init_rate @max_iteration = max_iteration end |
Instance Method Details
#calculate(eps = EPS) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/xirr_newton_calculator.rb', line 24 def calculate(eps = EPS) @max_iteration.times do f(@x_n) break if @f_xn.abs < eps @x_n = next_value(@x_n) end @x_n end |