@@ -329,54 +329,56 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
329329 end
330330 end
331331
332- @testset " geev!" begin
333- # # Note: we have Xgeev in dense_generic.jl, but no geev in dense.jl.
334- # A = rand(elty,m,m)
335- # d_A = CuArray(A)
336- local d_W, d_V
337- # d_W, _, d_V = CUSOLVER.Xgeev!('N','V', d_A)
338- # # d_W_b, _, d_V_b = LAPACK.geev!('N','V', CuArray(A))
339- # # @test d_W ≈ d_W_b
340- # # @test d_V ≈ d_V_b
341- # W_b, _, V_b = LAPACK.geev!('N','V', A)
342- # @test collect(d_W) ≈ W_b
343- # @test collect(d_V) ≈ V_b
344- # h_W = collect(d_W)
345- # h_V = collect(d_V)
346- # h_V⁻¹ = inv(h_V)
347- # Eig = eigen(A)
348- # @test Eig.values ≈ h_W
349- # @test abs.(Eig.vectors*h_V⁻¹) ≈ I
350- # d_A = CuArray(A)
351- # d_W = CUSOLVER.Xgeev!('N','N', d_A)
352- # h_W = collect(d_W)
353- # @test Eig.values ≈ h_W
354-
355- A = rand (elty,m,m)
356- d_A = CuArray (A)
357- Eig = eigen (A)
358- d_eig = eigen (d_A)
359- sorteig! (d_eig. values, d_eig. vectors)
360- @test Eig. values ≈ collect (d_eig. values)
361- h_V = collect (d_eig. vectors)
362- h_V⁻¹ = inv (h_V)
363- @test abs .(h_V⁻¹* Eig. vectors) ≈ I
364-
365- A = rand (elty,m,m)
366- d_A = CuArray (A)
367- W = eigvals (A)
368- d_W = eigvals (d_A)
369- sorteig! (d_W)
370- @test W ≈ collect (d_W)
332+ if CUSOLVER. version () >= v " 11.7.1"
333+ @testset " geev!" begin
334+ # # Note: we have Xgeev in dense_generic.jl, but no geev in dense.jl.
335+ # A = rand(elty,m,m)
336+ # d_A = CuArray(A)
337+ local d_W, d_V
338+ # d_W, _, d_V = CUSOLVER.Xgeev!('N','V', d_A)
339+ # # d_W_b, _, d_V_b = LAPACK.geev!('N','V', CuArray(A))
340+ # # @test d_W ≈ d_W_b
341+ # # @test d_V ≈ d_V_b
342+ # W_b, _, V_b = LAPACK.geev!('N','V', A)
343+ # @test collect(d_W) ≈ W_b
344+ # @test collect(d_V) ≈ V_b
345+ # h_W = collect(d_W)
346+ # h_V = collect(d_V)
347+ # h_V⁻¹ = inv(h_V)
348+ # Eig = eigen(A)
349+ # @test Eig.values ≈ h_W
350+ # @test abs.(Eig.vectors*h_V⁻¹) ≈ I
351+ # d_A = CuArray(A)
352+ # d_W = CUSOLVER.Xgeev!('N','N', d_A)
353+ # h_W = collect(d_W)
354+ # @test Eig.values ≈ h_W
355+
356+ A = rand (elty,m,m)
357+ d_A = CuArray (A)
358+ Eig = eigen (A)
359+ d_eig = eigen (d_A)
360+ sorteig! (d_eig. values, d_eig. vectors)
361+ @test Eig. values ≈ collect (d_eig. values)
362+ h_V = collect (d_eig. vectors)
363+ h_V⁻¹ = inv (h_V)
364+ @test abs .(h_V⁻¹* Eig. vectors) ≈ I
365+
366+ A = rand (elty,m,m)
367+ d_A = CuArray (A)
368+ W = eigvals (A)
369+ d_W = eigvals (d_A)
370+ sorteig! (d_W)
371+ @test W ≈ collect (d_W)
371372
372- A = rand (elty,m,m)
373- d_A = CuArray (A)
374- V = eigvecs (A)
375- d_W = eigvals (d_A)
376- d_V = eigvecs (d_A)
377- sorteig! (d_W, d_V)
378- V⁻¹ = inv (V)
379- @test abs .(V⁻¹* collect (d_V)) ≈ I
373+ A = rand (elty,m,m)
374+ d_A = CuArray (A)
375+ V = eigvecs (A)
376+ d_W = eigvals (d_A)
377+ d_V = eigvecs (d_A)
378+ sorteig! (d_W, d_V)
379+ V⁻¹ = inv (V)
380+ @test abs .(V⁻¹* collect (d_V)) ≈ I
381+ end
380382 end
381383
382384 @testset " syevd!" begin
@@ -419,9 +421,11 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
419421 A += A'
420422 d_A = CuArray (A)
421423 Eig = eigen (LinearAlgebra. Hermitian (A))
422- d_eig = eigen (d_A)
423- sorteig! (d_eig. values, d_eig. vectors)
424- @test Eig. values ≈ collect (d_eig. values)
424+ if CUSOLVER. version () >= v " 11.7.1"
425+ d_eig = eigen (d_A)
426+ sorteig! (d_eig. values, d_eig. vectors)
427+ @test Eig. values ≈ collect (d_eig. values)
428+ end
425429 d_eig = eigen (LinearAlgebra. Hermitian (d_A))
426430 @test Eig. values ≈ collect (d_eig. values)
427431 h_V = collect (d_eig. vectors)
@@ -438,9 +442,11 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
438442 A += A'
439443 d_A = CuArray (A)
440444 W = eigvals (LinearAlgebra. Hermitian (A))
441- d_W = eigvals (d_A)
442- sorteig! (d_W)
443- @test W ≈ collect (d_W)
445+ if CUSOLVER. version () >= v " 11.7.1"
446+ d_W = eigvals (d_A)
447+ sorteig! (d_W)
448+ @test W ≈ collect (d_W)
449+ end
444450 d_W = eigvals (LinearAlgebra. Hermitian (d_A))
445451 @test W ≈ collect (d_W)
446452 if elty <: Real
@@ -453,11 +459,13 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
453459 A += A'
454460 d_A = CuArray (A)
455461 V = eigvecs (LinearAlgebra. Hermitian (A))
456- d_W = eigvals (d_A)
457- d_V = eigvecs (d_A)
458- sorteig! (d_W, d_V)
459- h_V = collect (d_V)
460- @test abs .(V' * h_V) ≈ I
462+ if CUSOLVER. version () >= v " 11.7.1"
463+ d_W = eigvals (d_A)
464+ d_V = eigvecs (d_A)
465+ sorteig! (d_W, d_V)
466+ h_V = collect (d_V)
467+ @test abs .(V' * h_V) ≈ I
468+ end
461469 d_V = eigvecs (LinearAlgebra. Hermitian (d_A))
462470 h_V = collect (d_V)
463471 @test abs .(V' * h_V) ≈ I
0 commit comments