@@ -329,54 +329,56 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
329
329
end
330
330
end
331
331
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)
371
372
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
380
382
end
381
383
382
384
@testset " syevd!" begin
@@ -419,9 +421,11 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
419
421
A += A'
420
422
d_A = CuArray (A)
421
423
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
425
429
d_eig = eigen (LinearAlgebra. Hermitian (d_A))
426
430
@test Eig. values ≈ collect (d_eig. values)
427
431
h_V = collect (d_eig. vectors)
@@ -438,9 +442,11 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
438
442
A += A'
439
443
d_A = CuArray (A)
440
444
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
444
450
d_W = eigvals (LinearAlgebra. Hermitian (d_A))
445
451
@test W ≈ collect (d_W)
446
452
if elty <: Real
@@ -453,11 +459,13 @@ sorteig!(λ::AbstractVector, sortby::Union{Function, Nothing} = eigsortby) = sor
453
459
A += A'
454
460
d_A = CuArray (A)
455
461
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
461
469
d_V = eigvecs (LinearAlgebra. Hermitian (d_A))
462
470
h_V = collect (d_V)
463
471
@test abs .(V' * h_V) ≈ I
0 commit comments