@@ -176,26 +176,50 @@ struct FooNumber <: Number end
176
176
@test symmetricdata (Symmetric (transpose (B))) ≡ transpose (B)
177
177
@test hermitiandata (Hermitian (transpose (B))) ≡ transpose (B)
178
178
179
- @testset " Bidiagonal" begin
180
- B = Bidiagonal (randn (6 ),randn (5 ),:U )
181
- Bc = Bidiagonal (randn (6 ) .+ 0im ,randn (5 ) .+ 1im ,:U )
182
- S = Symmetric (B)
183
- H = Hermitian (B)
184
- Sc = Symmetric (Bc)
185
- Hc = Hermitian (Bc)
186
-
187
- @test MemoryLayout (S) isa SymTridiagonalLayout
188
- @test MemoryLayout (H) isa SymTridiagonalLayout
189
- @test MemoryLayout (Sc) isa SymTridiagonalLayout
190
- @test MemoryLayout (Hc) isa HermitianLayout
191
-
192
- @test diagonaldata (S) == diagonaldata (B)
193
- @test subdiagonaldata (S) == supdiagonaldata (S) == supdiagonaldata (B)
194
-
195
- @test colsupport (S,3 ) == colsupport (H,3 ) == colsupport (Sc,3 ) == colsupport (Hc,3 ) == 2 : 4
196
- @test rowsupport (S,3 ) == rowsupport (H,3 ) == rowsupport (Sc,3 ) == rowsupport (Hc,3 ) == 2 : 4
179
+ end
180
+
181
+ @testset " Symmetric of Banded" begin
182
+ @eval struct BandedMock{T} <: AbstractMatrix{T} end
183
+ ArrayLayouts. colsupport (A:: BandedMock , j) = j: min (j+ 1 , 4 )
184
+ ArrayLayouts. rowsupport (A:: BandedMock , j) = max (j- 1 , 1 ): j
185
+ ArrayLayouts. MemoryLayout (:: Type{<:BandedMock} ) = DenseColumnMajor ()
186
+ Base. size (:: BandedMock ) = (4 , 4 )
187
+
188
+ A = BandedMock {Float64} ()
189
+
190
+ for X in (Symmetric (A), Hermitian (A))
191
+ @test colsupport (X, 1 ) == rowsupport (X, 1 ) == 1 : 1
192
+ @test colsupport (X, 2 ) == rowsupport (X, 2 ) == 2 : 2
193
+ @test colsupport (X, 3 ) == rowsupport (X, 3 ) == 3 : 3
194
+ @test colsupport (X, 4 ) == rowsupport (X, 4 ) == 4 : 4
195
+ end
196
+ for X in (Symmetric (A, :L ), Hermitian (A, :L ))
197
+ @test colsupport (X, 1 ) == rowsupport (X, 1 ) == 1 : 2
198
+ @test colsupport (X, 2 ) == rowsupport (X, 2 ) == 1 : 3
199
+ @test colsupport (X, 3 ) == rowsupport (X, 3 ) == 2 : 4
200
+ @test colsupport (X, 4 ) == rowsupport (X, 4 ) == 3 : 4
197
201
end
198
- end
202
+ end
203
+
204
+ @testset " Bidiagonal" begin
205
+ B = Bidiagonal (randn (6 ),randn (5 ),:U )
206
+ Bc = Bidiagonal (randn (6 ) .+ 0im ,randn (5 ) .+ 1im ,:U )
207
+ S = Symmetric (B)
208
+ H = Hermitian (B)
209
+ Sc = Symmetric (Bc)
210
+ Hc = Hermitian (Bc)
211
+
212
+ @test MemoryLayout (S) isa SymTridiagonalLayout
213
+ @test MemoryLayout (H) isa SymTridiagonalLayout
214
+ @test MemoryLayout (Sc) isa SymTridiagonalLayout
215
+ @test MemoryLayout (Hc) isa HermitianLayout
216
+
217
+ @test diagonaldata (S) == diagonaldata (B)
218
+ @test subdiagonaldata (S) == supdiagonaldata (S) == supdiagonaldata (B)
219
+
220
+ @test colsupport (S,3 ) == colsupport (H,3 ) == colsupport (Sc,3 ) == colsupport (Hc,3 ) == 2 : 4
221
+ @test rowsupport (S,3 ) == rowsupport (H,3 ) == rowsupport (Sc,3 ) == rowsupport (Hc,3 ) == 2 : 4
222
+ end
199
223
200
224
@testset " triangular MemoryLayout" begin
201
225
A = [1.0 2 ; 3 4 ]
0 commit comments