swak 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/lib/swak.rb +52 -0
  2. metadata +2 -2
data/lib/swak.rb CHANGED
@@ -24,3 +24,55 @@ class String
24
24
  end
25
25
 
26
26
  end
27
+
28
+ class Array
29
+
30
+ def hist
31
+ h = {}
32
+ for item in self
33
+ h[item] ||= 0
34
+ h[item] += 1
35
+ end
36
+ return h
37
+ end
38
+
39
+ def shuffle!
40
+ sort_by {rand}
41
+ return self
42
+ end
43
+
44
+ def shuffle
45
+ return dup().sort_by {rand}
46
+ end
47
+
48
+ def sum
49
+ total = 0
50
+ for item in self
51
+ total += item
52
+ end
53
+ return total
54
+ end
55
+
56
+ def avg
57
+ return sum.to_f / self.length
58
+ end
59
+
60
+ # Sample variance
61
+ def variance
62
+ average = avg()
63
+ variance = 0
64
+ for item in self
65
+ diff = item - average
66
+ variance += diff * diff
67
+ end
68
+ return variance / (self.length - 1)
69
+ end
70
+
71
+ def stddev
72
+ return Math.sqrt(self.variance())
73
+ end
74
+
75
+ def mean
76
+ return self.avg
77
+ end
78
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: swak
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jesse Rodriguez
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-08-09 00:00:00 Z
13
+ date: 2011-08-15 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
16
  description: Random tools and mixins