|
6 | 6 | p = 5
|
7 | 7 |
|
8 | 8 | @testset "cusolver -- generic API -- $elty" for elty in [Float32, Float64, ComplexF32, ComplexF64]
|
9 |
| - @testset "larft!" begin |
10 |
| - @testset "direct = $direct" for direct in ('F', 'B') |
11 |
| - direct == 'B' && continue |
12 |
| - A = rand(elty,m,n) |
13 |
| - t = rand(elty,n,n) |
14 |
| - |
15 |
| - dA = CuMatrix(A) |
16 |
| - dA, dτ = CUSOLVER.geqrf!(dA) |
17 |
| - hI = Matrix{elty}(I, m, m) |
18 |
| - dI = CuArray(hI) |
19 |
| - dH = CUSOLVER.ormqr!('L', 'N', dA, dτ, copy(dI)) |
20 |
| - |
21 |
| - v = Array(dA) |
22 |
| - for j = 1:n |
23 |
| - v[j,j] = one(elty) |
24 |
| - for i = 1:j-1 |
25 |
| - v[i,j] = zero(elty) |
| 9 | + if CUSOLVER.version() >= v"11.6.0" |
| 10 | + @testset "larft!" begin |
| 11 | + @testset "direct = $direct" for direct in ('F', 'B') |
| 12 | + direct == 'B' && continue |
| 13 | + A = rand(elty,m,n) |
| 14 | + t = rand(elty,n,n) |
| 15 | + |
| 16 | + dA = CuMatrix(A) |
| 17 | + dA, dτ = CUSOLVER.geqrf!(dA) |
| 18 | + hI = Matrix{elty}(I, m, m) |
| 19 | + dI = CuArray(hI) |
| 20 | + dH = CUSOLVER.ormqr!('L', 'N', dA, dτ, copy(dI)) |
| 21 | + |
| 22 | + v = Array(dA) |
| 23 | + for j = 1:n |
| 24 | + v[j,j] = one(elty) |
| 25 | + for i = 1:j-1 |
| 26 | + v[i,j] = zero(elty) |
| 27 | + end |
26 | 28 | end
|
| 29 | + dv = CuArray(v) |
| 30 | + dt = CuMatrix(t) |
| 31 | + dt = CUSOLVER.larft!(direct, 'C', dv, dτ, dt) |
| 32 | + @test dI - dv * dt * dv' ≈ dH |
27 | 33 | end
|
28 |
| - dv = CuArray(v) |
29 |
| - dt = CuMatrix(t) |
30 |
| - dt = CUSOLVER.larft!(direct, 'C', dv, dτ, dt) |
31 |
| - @test dI - dv * dt * dv' ≈ dH |
32 | 34 | end
|
33 | 35 | end
|
34 | 36 |
|
|
0 commit comments