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
|