Class: LSH::MathUtil

Inherits:
Object
  • Object
show all
Defined in:
lib/lsh/math_util_gsl.rb,
lib/lsh/math_util_jblas.rb

Constant Summary collapse

@@gsl_random =
GSL::Rng.alloc

Class Method Summary collapse

Class Method Details

.dot(v1, v2) ⇒ Object



46
47
48
# File 'lib/lsh/math_util_gsl.rb', line 46

def self.dot(v1, v2)
  (v1 * v2)[0,0]
end

.norm(v) ⇒ Object



50
51
52
# File 'lib/lsh/math_util_gsl.rb', line 50

def self.norm(v)
  v.norm
end

.random_gaussian_matrix(k, l) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/lsh/math_util_gsl.rb', line 38

def self.random_gaussian_matrix(k, l)
  matrix = zeros(k, l)
  (0..(k - 1)).each do |i|
    matrix.set_row(i, random_gaussian_vector(l))
  end
  matrix
end

.random_gaussian_vector(l) ⇒ Object



34
35
36
# File 'lib/lsh/math_util_gsl.rb', line 34

def self.random_gaussian_vector(dim)
  @@gsl_random.gaussian(1, dim)
end

.random_uniformObject



26
27
28
# File 'lib/lsh/math_util_gsl.rb', line 26

def self.random_uniform
  @@gsl_random.uniform
end

.zeros(k, l) ⇒ Object



30
31
32
# File 'lib/lsh/math_util_gsl.rb', line 30

def self.zeros(k, l)
  GSL::Matrix.alloc(k, l)
end