|
52 | 52 | @test size(Q, 1) == size(Q, 2) * size(Q, 3) # Q is unitary
|
53 | 53 | end
|
54 | 54 |
|
55 |
| -# TODO: broken and segfaults because of MatrixAlgebraKit issue |
56 |
| -# @testset "Compact LQ ($T)" for T in elts |
57 |
| -# A = randn(T, 5, 4, 3, 2) # compact only makes a difference for less rows |
58 |
| -# labels_A = (:a, :b, :c, :d) |
59 |
| -# labels_Q = (:d, :c) |
60 |
| -# labels_L = (:b, :a) |
61 |
| - |
62 |
| -# Acopy = deepcopy(A) |
63 |
| -# L, Q = @constinferred lq(A, labels_A, labels_L, labels_Q; full=false) |
64 |
| -# @test A == Acopy # should not have altered initial array |
65 |
| -# A′ = contract(labels_A, L, (labels_L..., :q), Q, (:q, labels_Q...)) |
66 |
| -# @test A ≈ A′ |
67 |
| -# @test size(Q, 1) == min(size(A, 1) * size(A, 2), size(A, 3) * size(A, 4)) # Q is unitary |
68 |
| -# end |
| 55 | +@testset "Compact LQ ($T)" for T in elts |
| 56 | + A = randn(T, 5, 4, 3, 2) # compact only makes a difference for less rows |
| 57 | + labels_A = (:a, :b, :c, :d) |
| 58 | + labels_Q = (:d, :c) |
| 59 | + labels_L = (:b, :a) |
| 60 | + |
| 61 | + Acopy = deepcopy(A) |
| 62 | + L, Q = @constinferred lq(A, labels_A, labels_L, labels_Q; full=false) |
| 63 | + @test A == Acopy # should not have altered initial array |
| 64 | + A′ = contract(labels_A, L, (labels_L..., :q), Q, (:q, labels_Q...)) |
| 65 | + @test A ≈ A′ |
| 66 | + @test size(Q, 1) == min(size(A, 1) * size(A, 2), size(A, 3) * size(A, 4)) # Q is unitary |
| 67 | +end |
69 | 68 |
|
70 | 69 | # Eigenvalue Decomposition
|
71 | 70 | # ------------------------
|
|
0 commit comments