@@ -42,23 +42,51 @@ import BandedMatrices: BandedColumns, _BandedMatrix
42
42
end
43
43
44
44
@testset " BandedMatrix * dense" begin
45
- for T in [Float64, Int]
45
+ @testset for T in [Float64, Int]
46
46
cmp = T <: Integer ? (== ) : (≈ )
47
- B = brand (T, 10 , 10 , 2 , 2 )
47
+ B = BandedMatrix ( Symmetric ( BandedMatrix {T} ( 0 => 1 : 10 , 1 => 11 : 19 , 2 => 21 : 28 )) )
48
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)
49
+
50
+ _v = T[1 : 10 ;]
51
+ _v2 = T[1 : 20 ;]
52
+ for v in Any[_v, view (_v, :), view (_v, axes (_v)... ), view (_v2, axes (_v)... )]
53
+ Bv = M * _v
54
+ @test cmp (B * v, Bv)
55
+ w = similar (Bv)
56
+ @test cmp (mul! (w, B, v), Bv)
57
+ @test cmp (mul! (w, B, v, true , false ), Bv)
58
+ w .= 1
59
+ mul! (w, B, v, true , true )
60
+ @test cmp (w, Bv + ones (T, size (w)))
61
+ w .= 2
62
+ mul! (w, B, v, false , true )
63
+ @test cmp (w, fill (T (2 ), size (w)))
64
+ w .= 1
65
+ mul! (w, B, v, oneunit (T), oneunit (T))
66
+ @test cmp (w, Bv + ones (T, size (w)))
67
+ end
68
+
69
+ _X = reshape (T[1 : 100 ;], 10 , 10 )
70
+ _X2 = reshape (T[1 : 15 ^ 2 ;], 15 , 15 )
71
+ for X in Any[_X, view (_X, :, :), view (_X, axes (_X)... ), view (_X, :, axes (_X,2 )), view (_X, axes (_X,1 ), :),
72
+ view (_X2, axes (_X)... ),
73
+ _X' , view (_X' , :, :), view (_X' , axes (_X' )... ),
74
+ view (_X2' , axes (_X)... )]
75
+ BX = M * X
76
+ @test cmp (B * X, BX)
77
+ Y = similar (BX)
78
+ @test cmp (mul! (Y, B, X), BX)
79
+ @test cmp (mul! (Y, B, X, true , false ), BX)
80
+ Y .= 1
81
+ mul! (Y, B, X, true , true )
82
+ @test cmp (Y, BX + ones (T, size (Y)))
83
+ Y .= 2
84
+ mul! (Y, B, X, false , true )
85
+ @test cmp (Y, fill (T (2 ), size (Y)))
86
+ Y .= 1
87
+ mul! (Y, B, X, oneunit (T), oneunit (T))
88
+ @test cmp (Y, BX + ones (T, size (Y)))
89
+ end
62
90
end
63
91
end
64
92
0 commit comments