File: lapack_test.rb

package info (click to toggle)
ruby-lapack 1.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid, trixie
  • size: 28,572 kB
  • sloc: ansic: 191,612; ruby: 3,937; makefile: 6
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