Class: Chawk::Models::NodeAggregator
- Inherits:
-
Object
- Object
- Chawk::Models::NodeAggregator
- Defined in:
- lib/node.rb
Instance Attribute Summary collapse
-
#dataset ⇒ Object
readonly
Returns the value of attribute dataset.
Instance Method Summary collapse
- #count ⇒ Object
-
#initialize(node) ⇒ NodeAggregator
constructor
A new instance of NodeAggregator.
- #max ⇒ Object
- #mean ⇒ Object
- #min ⇒ Object
- #stdev ⇒ Object
- #sum ⇒ Object
- #sumsqr ⇒ Object
Constructor Details
#initialize(node) ⇒ NodeAggregator
Returns a new instance of NodeAggregator.
30 31 32 33 34 35 |
# File 'lib/node.rb', line 30 def initialize(node) node.check_read_access if node.points.length > 0 @dataset = node.points.to_a.reduce([]) {|ary,p| ary << p.value} end end |
Instance Attribute Details
#dataset ⇒ Object (readonly)
Returns the value of attribute dataset.
28 29 30 |
# File 'lib/node.rb', line 28 def dataset @dataset end |
Instance Method Details
#count ⇒ Object
53 54 55 |
# File 'lib/node.rb', line 53 def count @dataset.length end |
#max ⇒ Object
37 38 39 |
# File 'lib/node.rb', line 37 def max() @dataset.max end |
#mean ⇒ Object
45 46 47 |
# File 'lib/node.rb', line 45 def mean sum.to_f / @dataset.length end |
#min ⇒ Object
41 42 43 |
# File 'lib/node.rb', line 41 def min() @dataset.min end |
#stdev ⇒ Object
61 62 63 64 |
# File 'lib/node.rb', line 61 def stdev m = mean Math.sqrt((sumsqr - count * m * m)/(count-1)) end |
#sum ⇒ Object
49 50 51 |
# File 'lib/node.rb', line 49 def sum @dataset.reduce(0) {|sum,p| sum+=p} end |
#sumsqr ⇒ Object
57 58 59 |
# File 'lib/node.rb', line 57 def sumsqr @dataset.map {|x| x * x}.reduce(&:+) end |