File: nmatrix_eigen_test.rb

package info (click to toggle)
ruby-gsl 2.1.0.3%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,988 kB
  • sloc: ansic: 62,105; ruby: 15,859; sh: 19; makefile: 10
file content (28 lines) | stat: -rw-r--r-- 961 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
require 'test_helper'

class NMatrixEigenTest < GSL::TestCase
  def setup
    @nmatrix = NMatrix.new([4,4],
      [1.0, 1/2.0, 1/3.0, 1/4.0, 
       1/2.0, 1/3.0, 1/4.0, 1/5.0,
       1/3.0, 1/4.0, 1/5.0, 1/6.0,
       1/4.0, 1/5.0, 1/6.0, 1/7.0], dtype: :float64)
  end

  def test_symm_symmv
    eigen_values = NMatrix.new([4], 
      [1.50021, 0.169141, 0.00673827, 9.67023e-05], dtype: :float64)
    eigen_vectors = NMatrix.new([4,4],
      [0.792608, 0.582076,-0.179186,-0.0291933, 
       0.451923,-0.370502, 0.741918, 0.328712 , 
       0.322416,-0.509579,-0.100228,-0.791411 , 
       0.252161,-0.514048,-0.638283, 0.514553], dtype: :float64)
    
    assert_enum_abs GSL::Eigen.symm(@nmatrix), eigen_values, 0.001, "GSL::Eigen.symm(nmatrix)"

    # val, vec = GSL::Eigen.symmv(@nmatrix)

    # assert_enum_abs val, eigen_values , 0.001, "GSL::Eigen.symmv(nmatrix)"
    # assert_enum_abs vec, eigen_vectors, 0.001, "GSL::Eigen.symmv(nmatrix)"
  end
end