diff options
| author | Patrick Simianer <p@simianer.de> | 2015-07-16 15:51:20 +0200 | 
|---|---|---|
| committer | Patrick Simianer <p@simianer.de> | 2015-07-16 15:51:20 +0200 | 
| commit | b6820b015c1a2767916e3d894cd9cd76d67b94b9 (patch) | |
| tree | 0f1485df4a2cbfa6d6e6add9ae483ce9320fc776 /lib | |
| parent | 537183518280e379236711dc18fac1fa58c8c054 (diff) | |
SparseVector: norm, unit
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  | 
