@@ -41,6 +41,27 @@ import BandedMatrices: BandedColumns, _BandedMatrix
41
41
@test bandwidths (UpperTriangular (A)* A) == (1 ,4 )
42
42
end
43
43
44
+ @testset " BandedMatrix * dense" begin
45
+ for T in [Float64, Int]
46
+ cmp = T <: Integer ? (== ) : (≈ )
47
+ B = brand (T, 10 ,10 ,2 ,2 )
48
+ M = Matrix (B)
49
+ v = rand (T, 10 )
50
+ Bv = M * v
51
+ @test cmp (B * v, Bv)
52
+ w = similar (v)
53
+ @test cmp (mul! (w, B, v), Bv)
54
+ @test cmp (mul! (w, B, v, true , false ), Bv)
55
+
56
+ X = rand (T, 10 , 10 )
57
+ BX = M * X
58
+ @test cmp (B * X, BX)
59
+ Y = similar (X)
60
+ @test cmp (mul! (Y, B, X), BX)
61
+ @test cmp (mul! (Y, B, X, true , false ), BX)
62
+ end
63
+ end
64
+
44
65
@testset " gbmm!" begin
45
66
@testset " gbmm! subpieces step by step and column by column" begin
46
67
for n in (1 ,5 ,50 ), ν in (1 ,5 ,50 ), m in (1 ,5 ,50 ),
@@ -133,7 +154,10 @@ import BandedMatrices: BandedColumns, _BandedMatrix
133
154
B = brand (10 ,10 ,- 2 ,2 )
134
155
C = BandedMatrix (Fill (NaN ,10 ,10 ),(0 ,4 ))
135
156
mul! (C,A,B)
136
- @test C ≈ Matrix (A)* Matrix (B)
157
+ AB = Matrix (A)* Matrix (B)
158
+ @test C ≈ AB
159
+ mul! (C,A,B,true ,false )
160
+ @test C ≈ AB
137
161
138
162
A = brand (10 ,10 ,- 2 ,2 )
139
163
B = brand (10 ,10 ,- 2 ,2 )
@@ -180,7 +204,11 @@ import BandedMatrices: BandedColumns, _BandedMatrix
180
204
181
205
mul! (C,A,B)
182
206
183
- @test all (C .=== A* B)
207
+ AB = A* B
208
+ @test C == AB
209
+
210
+ mul! (C,A,B,true ,false )
211
+ @test C == AB
184
212
185
213
A[band (1 )] .= randn (9 )
186
214
@test_throws BandError mul! (C,A,B)
0 commit comments