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.

Methods

Public Instance methods

[Source]

    # File lib/charlie/etc/monkey.rb, line 51
51:   def at_rand
52:     self[Kernel.rand(size)]
53:   end

[Source]

    # File lib/charlie/etc/monkey.rb, line 60
60:   def average
61:     sum.to_f / size
62:   end

[Source]

    # 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

[Source]

    # File lib/charlie/etc/monkey.rb, line 38
38:   def find_index(&b); index find(&b); end

[Source]

    # 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

[Source]

    # File lib/charlie/etc/monkey.rb, line 47
47:   def rand_index
48:     Kernel.rand(size)
49:   end

[Source]

    # File lib/charlie/etc/monkey.rb, line 36
36:   def shuffle ; sort_by { rand }; end

[Source]

    # File lib/charlie/etc/monkey.rb, line 37
37:   def shuffle!; replace shuffle; end

[Source]

    # 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

[Source]

    # 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.

[Source]

    # 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

[Source]

   # File lib/charlie/etc/minireport.rb, line 5
5:   def to_table(colnames=nil)
6:     Table.new(self,colnames)
7:   end

[Validate]