Class: Array

Inherits:
Object show all
Defined in:
lib/kuku.rb

Instance Method Summary collapse

Instance Method Details

#as_chainObject



61
62
63
64
65
66
67
68
69
# File 'lib/kuku.rb', line 61

def as_chain
  self.size.times{|i| 
    a = self[i+1]
    b = self[i-1]
    (self[i].next = a) if a
    (self[i].previous = b) if (b && i > 0)
  }
  self[0]
end

#average_growthObject



102
103
104
# File 'lib/kuku.rb', line 102

def average_growth
  growth.mean
end

#geometric_meanObject



79
80
81
# File 'lib/kuku.rb', line 79

def geometric_mean
  product ** (1/size.to_f) 
end

#growthObject



97
98
99
100
101
# File 'lib/kuku.rb', line 97

def growth
  result = Array.new
  (size-1).times {|i| result << ((self[i].to_f - self[i+1].to_f)/self[i+1].to_f) * 100 }
  result
end

#meanObject



85
86
87
# File 'lib/kuku.rb', line 85

def mean
  sum / size 
end

#productObject



76
77
78
# File 'lib/kuku.rb', line 76

def product
  reduce{|k,v| k*v} 
end

#rankObject



70
71
72
# File 'lib/kuku.rb', line 70

def rank
  Rank.new self
end

#stabilityObject



94
95
96
# File 'lib/kuku.rb', line 94

def stability
  mean / (standard_deviation > 1.0 ? standard_deviation : 1)
end

#standard_deviationObject



88
89
90
# File 'lib/kuku.rb', line 88

def standard_deviation
  Math.sqrt variance
end

#sumObject



82
83
84
# File 'lib/kuku.rb', line 82

def sum
  reduce{|k,v| k+v} 
end

#totalObject



73
74
75
# File 'lib/kuku.rb', line 73

def total
  Totaler.new self
end

#varianceObject



91
92
93
# File 'lib/kuku.rb', line 91

def variance
  ((reduce(0){|k,v| k+(v-mean)**2})) / size.to_f
end