| Class | Array |
| In: |
lib/charlie/etc/minireport.rb
lib/charlie/etc/monkey.rb |
| Parent: | Object |
This was handled by ruport earlier, but that turned out to be overkill and give a huge amount of dependencies.
# File lib/charlie/etc/monkey.rb, line 41
41: def dot_product(v)
42: r=0.0
43: each_with_index{|e,i| r+=e*v[i] }
44: r
45: end
# File lib/charlie/etc/monkey.rb, line 69
69: def map_with_index # TODO 1.9
70: r=[]
71: each_with_index{|e,i| r << yield(e,i) }
72: r
73: end
# File lib/charlie/etc/monkey.rb, line 55
55: def stats # TODO 1.9, use minmax
56: return transpose.map(&:stats).transpose if at(0).is_a?(Array) # return stats of each component if elements are arrays
57: [min,max,average,stddev]
58: end
# File lib/charlie/etc/monkey.rb, line 64
64: def stddev
65: mu = average
66: Math.sqrt( map{|x| (x-mu)*(x-mu) }.sum / size )
67: end
Finds value and swaps it with the element at index.
# File lib/charlie/etc/monkey.rb, line 76
76: def swap_element_at_index!(index, value)
77: old_element_index = self.index(value)
78: self[index], self[old_element_index] = value, self[index]
79: end