diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/zipf/SparseVector.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/zipf/SparseVector.rb b/lib/zipf/SparseVector.rb index 5d219b8..976ecaf 100644 --- a/lib/zipf/SparseVector.rb +++ b/lib/zipf/SparseVector.rb @@ -199,5 +199,20 @@ class SparseVector < Hash mean.each_pair { |k,v| mean[k] = v/n } return mean end + + def norm + return Math.sqrt(self.dot(self)) + end + + def unit! + n = self.norm + self.each_pair { |k,v| + self[k] /= n + } + end + + def unit + return SparseVector.new(self).unit! + end end |