swak 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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