File: lapack_test.rb

package info (click to toggle)
ruby-lapack 1.6-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 29,080 kB
  • ctags: 3,404
  • sloc: ansic: 190,568; ruby: 3,915; makefile: 4
file content (50 lines) | stat: -rw-r--r-- 1,025 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
require "test/unit"
require "numru/lapack"

module LapackTest

  I = Complex::I

  def assert_narray(expected, actual, delta=nil, message="")
    unless delta
      case actual.typecode
      when NArray::SFLOAT, NArray::SCOMPLEX
        delta = 5.0e-5
      when NArray::DFLOAT, NArray::DCOMPLEX
        delta = 1.0e-13
      when NArray::INT, NArray::LINT
        delta = 0
      else
        raise "typecode is invalid"
      end
    end
    if message.empty?
      message = <<EOF
<#{expected.inspect}>
and
<#{actual.inspect}>
expected to have maximan differnce <#{(expected-actual).abs.max}> within
<#{delta}>.
EOF
    end
    assert (expected - actual).abs.max <= delta, message
  end

  def get_int(x)
    x = x.real if x.respond_to?(:real)
    x.to_i
  end

  def comp_sign(a, b)
    a = a.real if a.respond_to?(:real)
    b = b.real if b.respond_to?(:real)
    a*b < 0
  end

  def get_rc(x)
    /\A[sd]/ =~ x ? :r : :c
  end
  module_function :get_rc

end