@@ -64,8 +64,14 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
64
64
@test A[kr,jr] == A. A[kr,jr]
65
65
end
66
66
b = randn (5 )
67
+ B = randn (5 ,5 )
67
68
for Tri in (UpperTriangular, UnitUpperTriangular, LowerTriangular, UnitLowerTriangular)
68
69
@test ldiv! (Tri (A), copy (b)) ≈ ldiv! (Tri (A. A), copy (b)) ≈ Tri (A. A) \ MyVector (b)
70
+ @test ldiv! (Tri (A), copy (B)) ≈ ldiv! (Tri (A. A), copy (B)) ≈ Tri (A. A) \ MyMatrix (B)
71
+ if VERSION ≥ v " 1.9"
72
+ @test rdiv! (copy (b)' , Tri (A)) ≈ rdiv! (copy (b)' , Tri (A. A)) ≈ MyVector (b)' / Tri (A. A)
73
+ @test rdiv! (copy (B), Tri (A)) ≈ rdiv! (copy (B), Tri (A. A)) ≈ B / Tri (A. A)
74
+ end
69
75
@test lmul! (Tri (A), copy (b)) ≈ lmul! (Tri (A. A), copy (b)) ≈ Tri (A. A) * MyVector (b)
70
76
end
71
77
@@ -112,7 +118,7 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
112
118
@test cholesky (S, CRowMaximum ()) \ b ≈ ldiv! (cholesky (Matrix (S), CRowMaximum ()), copy (MyVector (b)))
113
119
@test cholesky (S) \ b ≈ Matrix (S) \ b ≈ Symmetric (Matrix (S)) \ b
114
120
@test cholesky (S) \ b ≈ Symmetric (Matrix (S)) \ MyVector (b)
115
- if VERSION >= v " 1.9- "
121
+ if VERSION >= v " 1.9"
116
122
@test S \ b ≈ Matrix (S) \ b ≈ Symmetric (Matrix (S)) \ b
117
123
@test S \ b ≈ Symmetric (Matrix (S)) \ MyVector (b)
118
124
end
@@ -122,19 +128,19 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
122
128
@test cholesky (S,CRowMaximum ()). U ≈ cholesky (Matrix (S),CRowMaximum ()). U
123
129
@test cholesky (S) \ b ≈ Matrix (S) \ b ≈ Symmetric (Matrix (S), :L ) \ b
124
130
@test cholesky (S) \ b ≈ Symmetric (Matrix (S), :L ) \ MyVector (b)
125
- if VERSION >= v " 1.9- "
131
+ if VERSION >= v " 1.9"
126
132
@test S \ b ≈ Matrix (S) \ b ≈ Symmetric (Matrix (S), :L ) \ b
127
133
@test S \ b ≈ Symmetric (Matrix (S), :L ) \ MyVector (b)
128
134
end
129
135
130
136
@testset " ldiv!" begin
131
137
c = MyVector (randn (5 ))
132
- if VERSION < v " 1.9- "
138
+ if VERSION < v " 1.9"
133
139
@test_broken ldiv! (lu (A), MyVector (copy (c))) ≈ A \ c
134
140
else
135
141
@test ldiv! (lu (A), MyVector (copy (c))) ≈ A \ c
136
142
end
137
- if VERSION < v " 1.9- " || VERSION >= v " 1.10-"
143
+ if VERSION < v " 1.9" || VERSION >= v " 1.10-"
138
144
@test_throws ErrorException ldiv! (qr (A), MyVector (copy (c)))
139
145
else
140
146
@test_throws MethodError ldiv! (qr (A), MyVector (copy (c)))
@@ -221,18 +227,24 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
221
227
@test_broken ldiv! (A, t) ≈ A\ t
222
228
@test ldiv! (A, copy (X)) ≈ A\ X
223
229
@test A\ T ≈ A\ T̃
224
- VERSION >= v " 1.9- " && @test A/ T ≈ A/ T̃
230
+ VERSION >= v " 1.9" && @test A/ T ≈ A/ T̃
225
231
@test_broken ldiv! (A, T) ≈ A\ T
226
232
@test B\ A ≈ B\ Matrix (A)
227
233
@test D \ A ≈ D \ Matrix (A)
228
234
@test transpose (B)\ A ≈ transpose (B)\ Matrix (A) ≈ Transpose (B)\ A ≈ Adjoint (B)\ A
229
235
@test B' \ A ≈ B' \ Matrix (A)
230
236
@test A\ A ≈ I
231
- VERSION >= v " 1.9- " && @test A/ A ≈ I
237
+ VERSION >= v " 1.9" && @test A/ A ≈ I
232
238
@test A\ MyVector (x) ≈ A\ x
233
239
@test A\ MyMatrix (X) ≈ A\ X
234
240
235
- VERSION >= v " 1.9-" && @test A/ A ≈ A. A / A. A
241
+ if VERSION >= v " 1.9"
242
+ @test A/ A ≈ A. A / A. A
243
+ @test x' / A ≈ x' / A. A
244
+ @test transpose (x) / A ≈ transpose (x) / A. A
245
+ @test transpose (x) / A isa Transpose
246
+ @test x' / A isa Adjoint
247
+ end
236
248
end
237
249
238
250
@testset " dot" begin
@@ -455,6 +467,13 @@ MemoryLayout(::Type{MyVector}) = DenseColumnMajor()
455
467
@test UpperTriangular (A) * UnitUpperTriangular (A' ) ≈ UpperTriangular (A. A) * UnitUpperTriangular (A. A' )
456
468
@test UpperTriangular (A' ) * UnitUpperTriangular (A' ) ≈ UpperTriangular (A. A' ) * UnitUpperTriangular (A. A' )
457
469
end
470
+
471
+ if isdefined (LinearAlgebra, :copymutable_oftype )
472
+ @testset " copymutable_oftype" begin
473
+ A = MyMatrix (randn (3 ,3 ))
474
+ @test LinearAlgebra. copymutable_oftype (A, BigFloat) == A
475
+ end
476
+ end
458
477
end
459
478
460
479
struct MyUpperTriangular{T} <: AbstractMatrix{T}
@@ -498,5 +517,5 @@ triangulardata(A::MyUpperTriangular) = triangulardata(A.A)
498
517
@test_skip lmul! (U,view (copy (B),collect (1 : 5 ),1 : 5 )) ≈ U * B
499
518
500
519
@test MyMatrix (A) / U ≈ A / U
501
- VERSION >= v " 1.9- " && @test U / MyMatrix (A) ≈ U / A
520
+ VERSION >= v " 1.9" && @test U / MyMatrix (A) ≈ U / A
502
521
end
0 commit comments