Sha256: b355f0d749155fb06989b745f8a53fa8cfac7db1510da68052a365d3da55ac49

Contents?: true

Size: 584 Bytes

Versions: 9

Compression:

Stored size: 584 Bytes

Contents

#!/usr/bin/env ruby
require("gsl")
require("../gsl_test2.rb")
include GSL::Test
include Linalg

A = GSL::Matrix.alloc([1, 2, 3, 4], 2, 2)
I = GSL::Matrix.identity(2)
Ainv = A.inv

u, v, s = A.SV_decomp
sm = s.to_m_diagonal
sinv = s.collect { |elm| 1.0/elm }.to_m_diagonal
a = u*sm*v.trans
ainv = v*sinv*u.trans
test2(a == A, "#{A.class}#SV_decomp")
test2(ainv == Ainv, "#{A.class}#SV_decomp")

test2((u.trans*u) == I, "#{A.class}#SV_decomp")
test2((v.trans*v) == I, "#{A.class}#SV_decomp")
test2(A*v == u*sm, "#{A.class}#SV_decomp")
test2(A.trans*u == v*sm, "#{A.class}#SV_decomp")


Version data entries

9 entries across 9 versions & 4 rubygems

Version Path
gsl-nmatrix-1.15.3.2 tests/linalg/SV.rb
gsl-nmatrix-1.15.3.1 tests/linalg/SV.rb
rb-gsl-1.15.3.1 tests/linalg/SV.rb
blackwinter-gsl-1.15.3.2 tests/linalg/SV.rb
gsl-nmatrix-1.15.3.0 tests/linalg/SV.rb
gsl-1.15.3 tests/linalg/SV.rb
gsl-1.14.7 tests/linalg/SV.rb
gsl-1.14.6 tests/linalg/SV.rb
gsl-1.14.5 tests/linalg/SV.rb