|
391 | 391 | @test isrealfloattype(typeof(opnorm(AT(mat), p)))
|
392 | 392 | end
|
393 | 393 | end
|
| 394 | + |
| 395 | +@testsuite "linalg/NaN_false" (AT, eltypes)->begin |
| 396 | + eltypes = filter(T -> isfloattype(T), eltypes) # only floats have NaN |
| 397 | + if AT <: AbstractGPUArray |
| 398 | + @testset "rmul! / lmul!" for T in eltypes |
| 399 | + y = invoke(rmul!, Tuple{AbstractGPUArray, Number}, adapt(AT, fill(NaN_T(T), 3)), false) |
| 400 | + @test !any(isnan, collect(y)) |
| 401 | + y = invoke(lmul!, Tuple{Number, AbstractGPUArray}, false, adapt(AT, fill(NaN_T(T), 3))) |
| 402 | + @test !any(isnan, collect(y)) |
| 403 | + end |
| 404 | + |
| 405 | + @testset "axp{b}y!" for T in eltypes |
| 406 | + y = invoke(axpby!, Tuple{Number, AbstractGPUArray, Number, AbstractGPUArray}, false, adapt(AT, fill(NaN_T(T), 3)), false, adapt(AT, fill(NaN_T(T), 3))) |
| 407 | + @test !any(isnan, collect(y)) |
| 408 | + y = invoke(axpy!, Tuple{Number, AbstractGPUArray, AbstractGPUArray}, false, adapt(AT, fill(NaN_T(T), 3)), adapt(AT, rand(T, 3))) |
| 409 | + @test !any(isnan, collect(y)) |
| 410 | + end |
| 411 | + |
| 412 | + @testset "rotate! / reflect!" for T in eltypes |
| 413 | + x, y = invoke(rotate!, Tuple{AbstractGPUArray, AbstractGPUArray, Number, Number}, adapt(AT, fill(NaN_T(T), 3)), adapt(AT, fill(NaN_T(T), 3)), false, false) |
| 414 | + @test !any(isnan, collect(x)) |
| 415 | + @test !any(isnan, collect(y)) |
| 416 | + x, y = invoke(reflect!, Tuple{AbstractGPUArray, AbstractGPUArray, Number, Number}, adapt(AT, fill(NaN_T(T), 3)), adapt(AT, fill(NaN_T(T), 3)), false, false) |
| 417 | + @test !any(isnan, collect(x)) |
| 418 | + @test !any(isnan, collect(y)) |
| 419 | + end |
| 420 | + |
| 421 | + @testset "generic_matmatmul!" for T in eltypes |
| 422 | + y = invoke(GPUArrays.generic_matmatmul!, Tuple{AbstractArray, AbstractArray, AbstractArray, Number, Number}, adapt(AT, fill(NaN_T(T), 3, 3)), adapt(AT, fill(NaN_T(T), 3, 3)), adapt(AT, fill(NaN_T(T), 3, 3)), false, false) |
| 423 | + @test !any(isnan, collect(y)) |
| 424 | + end |
| 425 | + end |
| 426 | +end |
0 commit comments