Sha256: ffa201d63a6fe767971bcdc15efcf719fd2bda29eb0c04dee1803a3d926c1313

Contents?: true

Size: 561 Bytes

Versions: 16

Compression:

Stored size: 561 Bytes

Contents

#!/usr/bin/env ruby
require("gsl")
include GSL
include Linalg

m = Matrix.alloc([4, 2], [2, 3])
c = Cholesky.decomp(m)
p c.class
p c

b = Vector[1, 2]
p Cholesky.solve(c, b)    # Expected [-0.125, 0.75]

begin
  m = Matrix::alloc([0.18, 0.60, 0.57, 0.96], [0.41, 0.24, 0.99, 0.58],
                  [0.14, 0.30, 0.97, 0.66], [0.51, 0.13, 0.19, 0.85])
  
  c = Cholesky.decomp(m)
  b = [1, 2, 3, 4].to_gv
  p Cholesky.solve(c, b)
rescue
  puts("Matrix must be positive definite.")
end

m = Matrix.pascal(6)
c = m.cholesky_decomp
a = c.lower
p (a*a.trans) == m

Version data entries

16 entries across 16 versions & 4 rubygems

Version Path
rb-gsl-1.16.0.4 examples/linalg/chol.rb
rb-gsl-1.16.0.3 examples/linalg/chol.rb
rb-gsl-1.16.0.3.rc1 examples/linalg/chol.rb
gsl-nmatrix-1.15.3.2 examples/linalg/chol.rb
gsl-nmatrix-1.15.3.1 examples/linalg/chol.rb
rb-gsl-1.16.0.2 examples/linalg/chol.rb
rb-gsl-1.16.0.1 examples/linalg/chol.rb
rb-gsl-1.16.0 examples/linalg/chol.rb
rb-gsl-1.15.3.2 examples/linalg/chol.rb
rb-gsl-1.15.3.1 examples/linalg/chol.rb
blackwinter-gsl-1.15.3.2 examples/linalg/chol.rb
gsl-nmatrix-1.15.3.0 examples/linalg/chol.rb
gsl-1.15.3 examples/linalg/chol.rb
gsl-1.14.7 examples/linalg/chol.rb
gsl-1.14.6 examples/linalg/chol.rb
gsl-1.14.5 examples/linalg/chol.rb