Class: SweetPi::PI
- Inherits:
-
Object
- Object
- SweetPi::PI
- Defined in:
- lib/sweet_pi/pi.rb
Instance Method Summary collapse
- #calc(digit) ⇒ Object
- #calc_next(digit) ⇒ Object
-
#initialize ⇒ PI
constructor
A new instance of PI.
- #process_count=(count) ⇒ Object
Constructor Details
#initialize ⇒ PI
Returns a new instance of PI.
19 20 21 |
# File 'lib/sweet_pi/pi.rb', line 19 def initialize() @process_count = 1 end |
Instance Method Details
#calc(digit) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/sweet_pi/pi.rb', line 28 def calc(digit) raise ArgumentError unless digit.is_a?(Integer) and 1 <= digit accuracy = calc_accuracy(digit) result = if @process_count == 1 single_process(accuracy) else multi_process(accuracy, @process_count) end @prev_acc = accuracy @prev_result = result fix(digit, result) end |
#calc_next(digit) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/sweet_pi/pi.rb', line 44 def calc_next(digit) raise ArgumentError unless digit.is_a?(Integer) and 1 <= digit accuracy = calc_accuracy(digit) if @prev_result == nil calc(digit) elsif @prev_acc&.< accuracy result = @prev_result + single_process(@prev_acc + 1, accuracy) @prev_acc = accuracy @prev_result = result fix(digit, result) else fix(digit, @prev_result) end end |
#process_count=(count) ⇒ Object
23 24 25 26 |
# File 'lib/sweet_pi/pi.rb', line 23 def process_count=(count) raise ArgumentError unless count.is_a?(Integer) and 1 <= count @process_count = count end |