Class: Chawk::Models::NodeAggregator

Inherits:
Object
  • Object
show all
Defined in:
lib/node.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#datasetObject (readonly)

Returns the value of attribute dataset.



28
29
30
# File 'lib/node.rb', line 28

def dataset
  @dataset
end

Instance Method Details

#countObject



53
54
55
# File 'lib/node.rb', line 53

def count
  @dataset.length
end

#maxObject



37
38
39
# File 'lib/node.rb', line 37

def max()
  @dataset.max
end

#meanObject



45
46
47
# File 'lib/node.rb', line 45

def mean
  sum.to_f / @dataset.length
end

#minObject



41
42
43
# File 'lib/node.rb', line 41

def min()
  @dataset.min
end

#stdevObject



61
62
63
64
# File 'lib/node.rb', line 61

def stdev
  m = mean
  Math.sqrt((sumsqr - count * m * m)/(count-1))
end

#sumObject



49
50
51
# File 'lib/node.rb', line 49

def sum
  @dataset.reduce(0) {|sum,p| sum+=p}
end

#sumsqrObject



57
58
59
# File 'lib/node.rb', line 57

def sumsqr
  @dataset.map {|x| x * x}.reduce(&:+)
end