@@ -2,30 +2,32 @@ using MatrixAlgebraKit
22using Test
33using TestExtras
44using StableRNGs
5- using LinearAlgebra: I
5+ using LinearAlgebra: I, Diagonal
66
7- @testset " schur_full! for T = $T " for T in (Float32, Float64, ComplexF32, ComplexF64)
8- rng = StableRNG (123 )
9- m = 54
10- for alg in (LAPACK_Simple (), LAPACK_Expert ())
11- A = randn (rng, T, m, m)
12- Tc = complex (T)
7+ BLASFloats = (Float32, Float64, ComplexF32, ComplexF64)
8+ GenericFloats = (Float16, BigFloat, Complex{BigFloat})
139
14- TA, Z, vals = @constinferred schur_full (A; alg)
15- @test eltype (TA) == eltype (Z) == T
16- @test eltype (vals) == Tc
17- @test isisometric (Z)
18- @test A * Z ≈ Z * TA
10+ @isdefined (TestSuite) || include (" testsuite/TestSuite.jl" )
11+ using . TestSuite
1912
20- Ac = similar (A)
21- TA2, Z2, vals2 = @constinferred schur_full! (copy! (Ac, A), (TA, Z, vals), alg)
22- @test TA2 === TA
23- @test Z2 === Z
24- @test vals2 === vals
25- @test A * Z ≈ Z * TA
13+ is_buildkite = get (ENV , " BUILDKITE" , " false" ) == " true"
2614
27- valsc = @constinferred schur_vals (A, alg)
28- @test eltype (valsc) == Tc
29- @test valsc ≈ eig_vals (A, alg)
15+ m = 54
16+ for T in (BLASFloats... , GenericFloats... )
17+ TestSuite. seed_rng! (123 )
18+ if T ∈ BLASFloats
19+ #= if CUDA.functional()
20+ TestSuite.test_schur(CuMatrix{T}, (m, m); test_blocksize = false)
21+ TestSuite.test_schur(Diagonal{T, CuVector{T}}, m; test_blocksize = false)
22+ end
23+ if AMDGPU.functional()
24+ TestSuite.test_schur(ROCMatrix{T}, (m, m); test_blocksize = false)
25+ TestSuite.test_schur(Diagonal{T, ROCVector{T}}, m; test_blocksize = false)
26+ end=# # not yet supported
27+ end
28+ if ! is_buildkite
29+ TestSuite. test_schur (T, (m, m))
30+ AT = Diagonal{T, Vector{T}}
31+ TestSuite. test_schur (AT, m)
3032 end
3133end
0 commit comments