@@ -35,6 +35,7 @@ debug && println("Test basic type functionality")
35
35
36
36
# Construct test matrix
37
37
A1 = t1 (elty1 == Int ? rand (1 : 7 , n, n) : convert (Matrix{elty1}, (elty1 <: Complex ? complex .(randn (n, n), randn (n, n)) : randn (n, n)) |> t -> cholesky (t' t). U |> t -> uplo1 === :U ? t : copy (t' )))
38
+ M1 = Matrix (A1)
38
39
@test t1 (A1) === A1
39
40
@test t1 {elty1} (A1) === A1
40
41
# test the ctor works for AbstractMatrix
@@ -68,7 +69,7 @@ debug && println("Test basic type functionality")
68
69
@test simA1 == A1
69
70
70
71
# getindex
71
- let mA1 = Matrix (A1)
72
+ let mA1 = M1
72
73
# linear indexing
73
74
for i in 1 : length (A1)
74
75
@test A1[i] == mA1[i]
@@ -141,8 +142,8 @@ debug && println("Test basic type functionality")
141
142
# tril/triu
142
143
if uplo1 === :L
143
144
@test tril (A1,0 ) == A1
144
- @test tril (A1,- 1 ) == LowerTriangular (tril (Matrix (A1) , - 1 ))
145
- @test tril (A1,1 ) == t1 (tril (tril (Matrix (A1) , 1 )))
145
+ @test tril (A1,- 1 ) == LowerTriangular (tril (M1 , - 1 ))
146
+ @test tril (A1,1 ) == t1 (tril (tril (M1 , 1 )))
146
147
@test tril (A1, - n - 2 ) == zeros (size (A1))
147
148
@test tril (A1, n) == A1
148
149
@test triu (A1,0 ) == t1 (diagm (0 => diag (A1)))
@@ -152,8 +153,8 @@ debug && println("Test basic type functionality")
152
153
@test triu (A1, n + 2 ) == zeros (size (A1))
153
154
else
154
155
@test triu (A1,0 ) == A1
155
- @test triu (A1,1 ) == UpperTriangular (triu (Matrix (A1) , 1 ))
156
- @test triu (A1,- 1 ) == t1 (triu (triu (Matrix (A1) , - 1 )))
156
+ @test triu (A1,1 ) == UpperTriangular (triu (M1 , 1 ))
157
+ @test triu (A1,- 1 ) == t1 (triu (triu (M1 , - 1 )))
157
158
@test triu (A1, - n) == A1
158
159
@test triu (A1, n + 2 ) == zeros (size (A1))
159
160
@test tril (A1,0 ) == t1 (diagm (0 => diag (A1)))
@@ -169,10 +170,10 @@ debug && println("Test basic type functionality")
169
170
# [c]transpose[!] (test views as well, see issue #14317)
170
171
let vrange = 1 : n- 1 , viewA1 = t1 (view (A1. data, vrange, vrange))
171
172
# transpose
172
- @test copy (transpose (A1)) == transpose (Matrix (A1) )
173
+ @test copy (transpose (A1)) == transpose (M1 )
173
174
@test copy (transpose (viewA1)) == transpose (Matrix (viewA1))
174
175
# adjoint
175
- @test copy (A1' ) == Matrix (A1) '
176
+ @test copy (A1' ) == M1 '
176
177
@test copy (viewA1' ) == Matrix (viewA1)'
177
178
# transpose!
178
179
@test transpose! (copy (A1)) == transpose (A1)
@@ -185,28 +186,28 @@ debug && println("Test basic type functionality")
185
186
end
186
187
187
188
# diag
188
- @test diag (A1) == diag (Matrix (A1) )
189
+ @test diag (A1) == diag (M1 )
189
190
190
191
# tr
191
- @test tr (A1):: elty1 == tr (Matrix (A1) )
192
+ @test tr (A1):: elty1 == tr (M1 )
192
193
193
194
# real
194
- @test real (A1) == real (Matrix (A1) )
195
- @test imag (A1) == imag (Matrix (A1) )
196
- @test abs .(A1) == abs .(Matrix (A1) )
195
+ @test real (A1) == real (M1 )
196
+ @test imag (A1) == imag (M1 )
197
+ @test abs .(A1) == abs .(M1 )
197
198
198
199
# zero
199
200
if A1 isa UpperTriangular || A1 isa LowerTriangular
200
201
@test zero (A1) == zero (parent (A1))
201
202
end
202
203
203
204
# Unary operations
204
- @test - A1 == - Matrix (A1)
205
+ @test - A1 == - M1
205
206
206
207
# copy and copyto! (test views as well, see issue #14317)
207
208
let vrange = 1 : n- 1 , viewA1 = t1 (view (A1. data, vrange, vrange))
208
209
# copy
209
- @test copy (A1) == copy (Matrix (A1) )
210
+ @test copy (A1) == copy (M1 )
210
211
@test copy (viewA1) == copy (Matrix (viewA1))
211
212
# copyto!
212
213
B = similar (A1)
@@ -283,25 +284,25 @@ debug && println("Test basic type functionality")
283
284
end
284
285
285
286
# Binary operations
286
- @test A1* 0.5 == Matrix (A1) * 0.5
287
- @test 0.5 * A1 == 0.5 * Matrix (A1)
288
- @test A1/ 0.5 == Matrix (A1) / 0.5
289
- @test 0.5 \ A1 == 0.5 \ Matrix (A1)
287
+ @test A1* 0.5 == M1 * 0.5
288
+ @test 0.5 * A1 == 0.5 * M1
289
+ @test A1/ 0.5 == M1 / 0.5
290
+ @test 0.5 \ A1 == 0.5 \ M1
290
291
291
292
# inversion
292
- @test inv (A1) ≈ inv (lu (Matrix (A1) ))
293
- inv (Matrix (A1) ) # issue #11298
293
+ @test inv (A1) ≈ inv (lu (M1 ))
294
+ inv (M1 ) # issue #11298
294
295
@test isa (inv (A1), t1)
295
296
# make sure the call to LAPACK works right
296
297
if elty1 <: BlasFloat
297
- @test LinearAlgebra. inv! (copy (A1)) ≈ inv (lu (Matrix (A1) ))
298
+ @test LinearAlgebra. inv! (copy (A1)) ≈ inv (lu (M1 ))
298
299
end
299
300
300
301
# Determinant
301
- @test det (A1) ≈ det (lu (Matrix (A1) )) atol= sqrt (eps (real (float (one (elty1)))))* n* n
302
- @test logdet (A1) ≈ logdet (lu (Matrix (A1) )) atol= sqrt (eps (real (float (one (elty1)))))* n* n
302
+ @test det (A1) ≈ det (lu (M1 )) atol= sqrt (eps (real (float (one (elty1)))))* n* n
303
+ @test logdet (A1) ≈ logdet (lu (M1 )) atol= sqrt (eps (real (float (one (elty1)))))* n* n
303
304
lada, ladb = logabsdet (A1)
304
- flada, fladb = logabsdet (lu (Matrix (A1) ))
305
+ flada, fladb = logabsdet (lu (M1 ))
305
306
@test lada ≈ flada atol= sqrt (eps (real (float (one (elty1)))))* n* n
306
307
@test ladb ≈ fladb atol= sqrt (eps (real (float (one (elty1)))))* n* n
307
308
@@ -324,7 +325,7 @@ debug && println("Test basic type functionality")
324
325
for p in (1.0 , Inf )
325
326
@test cond (A1,p) ≈ cond (A1,p) atol= (cond (A1,p)+ cond (A1,p))
326
327
end
327
- @test cond (A1,2 ) == cond (Matrix (A1) ,2 )
328
+ @test cond (A1,2 ) == cond (M1 ,2 )
328
329
end
329
330
330
331
if ! (elty1 in (BigFloat, Complex{BigFloat})) # Not implemented yet
@@ -333,9 +334,9 @@ debug && println("Test basic type functionality")
333
334
svdvals (A1)
334
335
end
335
336
336
- @test ((A1* A1):: t1 ) ≈ Matrix (A1) * Matrix (A1)
337
- @test ((A1/ A1):: t1 ) ≈ Matrix (A1) / Matrix (A1)
338
- @test ((A1\ A1):: t1 ) ≈ Matrix (A1) \ Matrix (A1)
337
+ @test ((A1* A1):: t1 ) ≈ M1 * M1
338
+ @test ((A1/ A1):: t1 ) ≈ M1 / M1
339
+ @test ((A1\ A1):: t1 ) ≈ M1 \ M1
339
340
340
341
# Begin loop for second Triangular matrix
341
342
for elty2 in (Float32, Float64, BigFloat, ComplexF32, ComplexF64, Complex{BigFloat}, Int)
@@ -347,7 +348,7 @@ debug && println("Test basic type functionality")
347
348
debug && println (" elty1: $elty1 , A1: $t1 , elty2: $elty2 , A2: $t2 " )
348
349
349
350
A2 = t2 (elty2 == Int ? rand (1 : 7 , n, n) : convert (Matrix{elty2}, (elty2 <: Complex ? complex .(randn (n, n), randn (n, n)) : randn (n, n)) |> t -> cholesky (t' t). U |> t -> uplo2 === :U ? t : copy (t' )))
350
-
351
+ M2 = Matrix (A2)
351
352
# Convert
352
353
if elty1 <: Real && ! (elty2 <: Integer )
353
354
@test convert (AbstractMatrix{elty2}, A1) == t1 (convert (Matrix{elty2}, A1. data))
@@ -356,21 +357,21 @@ debug && println("Test basic type functionality")
356
357
end
357
358
358
359
# Binary operations
359
- @test A1 + A2 == Matrix (A1) + Matrix (A2)
360
- @test A1 - A2 == Matrix (A1) - Matrix (A2)
360
+ @test A1 + A2 == M1 + M2
361
+ @test A1 - A2 == M1 - M2
361
362
362
363
# Triangular-Triangular multiplication and division
363
- @test A1* A2 ≈ Matrix (A1) * Matrix (A2)
364
- @test transpose (A1)* A2 ≈ transpose (Matrix (A1)) * Matrix (A2)
365
- @test transpose (A1)* adjoint (A2) ≈ transpose (Matrix (A1)) * adjoint (Matrix (A2) )
366
- @test adjoint (A1)* transpose (A2) ≈ adjoint (Matrix (A1)) * transpose (Matrix (A2) )
367
- @test A1' A2 ≈ Matrix (A1) ' Matrix (A2)
368
- @test A1* transpose (A2) ≈ Matrix (A1) * transpose (Matrix (A2) )
369
- @test A1* A2' ≈ Matrix (A1) * Matrix (A2) '
370
- @test transpose (A1)* transpose (A2) ≈ transpose (Matrix (A1)) * transpose (Matrix (A2) )
371
- @test A1' A2' ≈ Matrix (A1) ' Matrix (A2) '
372
- @test A1/ A2 ≈ Matrix (A1) / Matrix (A2)
373
- @test A1\ A2 ≈ Matrix (A1) \ Matrix (A2)
364
+ @test A1* A2 ≈ M1 * M2
365
+ @test transpose (A1)* A2 ≈ transpose (M1) * M2
366
+ @test transpose (A1)* adjoint (A2) ≈ transpose (M1) * adjoint (M2 )
367
+ @test adjoint (A1)* transpose (A2) ≈ adjoint (M1) * transpose (M2 )
368
+ @test A1' A2 ≈ M1 ' M2
369
+ @test A1* transpose (A2) ≈ M1 * transpose (M2 )
370
+ @test A1* A2' ≈ M1 * M2 '
371
+ @test transpose (A1)* transpose (A2) ≈ transpose (M1) * transpose (M2 )
372
+ @test A1' A2' ≈ M1 ' M2 '
373
+ @test A1/ A2 ≈ M1 / M2
374
+ @test A1\ A2 ≈ M1 \ M2
374
375
if uplo1 === :U && uplo2 === :U
375
376
if t1 === UnitUpperTriangular && t2 === UnitUpperTriangular
376
377
@test A1* A2 isa UnitUpperTriangular
@@ -411,20 +412,20 @@ debug && println("Test basic type functionality")
411
412
@test_throws DimensionMismatch A2' * offsizeA
412
413
@test_throws DimensionMismatch A2 * offsizeA
413
414
if (uplo1 == uplo2 && elty1 == elty2 != Int && t1 != UnitLowerTriangular && t1 != UnitUpperTriangular)
414
- @test rdiv! (copy (A1), A2):: t1 ≈ A1/ A2 ≈ Matrix (A1) / Matrix (A2)
415
- @test ldiv! (A2, copy (A1)):: t1 ≈ A2\ A1 ≈ Matrix (A2) \ Matrix (A1)
415
+ @test rdiv! (copy (A1), A2):: t1 ≈ A1/ A2 ≈ M1 / M2
416
+ @test ldiv! (A2, copy (A1)):: t1 ≈ A2\ A1 ≈ M2 \ M1
416
417
end
417
418
if (uplo1 != uplo2 && elty1 == elty2 != Int && t2 != UnitLowerTriangular && t2 != UnitUpperTriangular)
418
- @test lmul! (adjoint (A1), copy (A2)) ≈ A1' * A2 ≈ Matrix (A1) ' * Matrix (A2)
419
- @test lmul! (transpose (A1), copy (A2)) ≈ transpose (A1)* A2 ≈ transpose (Matrix (A1)) * Matrix (A2)
420
- @test ldiv! (adjoint (A1), copy (A2)) ≈ A1' \ A2 ≈ Matrix (A1) ' \ Matrix (A2)
421
- @test ldiv! (transpose (A1), copy (A2)) ≈ transpose (A1)\ A2 ≈ transpose (Matrix (A1)) \ Matrix (A2)
419
+ @test lmul! (adjoint (A1), copy (A2)) ≈ A1' * A2 ≈ M1 ' * M2
420
+ @test lmul! (transpose (A1), copy (A2)) ≈ transpose (A1)* A2 ≈ transpose (M1) * M2
421
+ @test ldiv! (adjoint (A1), copy (A2)) ≈ A1' \ A2 ≈ M1 ' \ M2
422
+ @test ldiv! (transpose (A1), copy (A2)) ≈ transpose (A1)\ A2 ≈ transpose (M1) \ M2
422
423
end
423
424
if (uplo1 != uplo2 && elty1 == elty2 != Int && t1 != UnitLowerTriangular && t1 != UnitUpperTriangular)
424
- @test rmul! (copy (A1), adjoint (A2)) ≈ A1* A2' ≈ Matrix (A1) * Matrix (A2) '
425
- @test rmul! (copy (A1), transpose (A2)) ≈ A1* transpose (A2) ≈ Matrix (A1) * transpose (Matrix (A2) )
426
- @test rdiv! (copy (A1), adjoint (A2)) ≈ A1/ A2' ≈ Matrix (A1) / Matrix (A2) '
427
- @test rdiv! (copy (A1), transpose (A2)) ≈ A1/ transpose (A2) ≈ Matrix (A1) / transpose (Matrix (A2) )
425
+ @test rmul! (copy (A1), adjoint (A2)) ≈ A1* A2' ≈ M1 * M2 '
426
+ @test rmul! (copy (A1), transpose (A2)) ≈ A1* transpose (A2) ≈ M1 * transpose (M2 )
427
+ @test rdiv! (copy (A1), adjoint (A2)) ≈ A1/ A2' ≈ M1 / M2 '
428
+ @test rdiv! (copy (A1), transpose (A2)) ≈ A1/ transpose (A2) ≈ M1 / transpose (M2 )
428
429
end
429
430
end
430
431
end
@@ -435,55 +436,55 @@ debug && println("Test basic type functionality")
435
436
debug && println (" elty1: $elty1 , A1: $t1 , B: $eltyB " )
436
437
437
438
Tri = Tridiagonal (rand (eltyB,n- 1 ),rand (eltyB,n),rand (eltyB,n- 1 ))
438
- @test lmul! (Tri,copy (A1)) ≈ Tri* Matrix (A1)
439
+ @test lmul! (Tri,copy (A1)) ≈ Tri* M1
439
440
Tri = Tridiagonal (rand (eltyB,n- 1 ),rand (eltyB,n),rand (eltyB,n- 1 ))
440
441
C = Matrix {promote_type(elty1,eltyB)} (undef, n, n)
441
442
mul! (C, Tri, A1)
442
- @test C ≈ Tri* Matrix (A1)
443
+ @test C ≈ Tri* M1
443
444
Tri = Tridiagonal (rand (eltyB,n- 1 ),rand (eltyB,n),rand (eltyB,n- 1 ))
444
445
mul! (C, A1, Tri)
445
- @test C ≈ Matrix (A1) * Tri
446
+ @test C ≈ M1 * Tri
446
447
447
448
# Triangular-dense Matrix/vector multiplication
448
- @test A1* B[:,1 ] ≈ Matrix (A1) * B[:,1 ]
449
- @test A1* B ≈ Matrix (A1) * B
450
- @test transpose (A1)* B[:,1 ] ≈ transpose (Matrix (A1) )* B[:,1 ]
451
- @test A1' B[:,1 ] ≈ Matrix (A1) ' B[:,1 ]
452
- @test transpose (A1)* B ≈ transpose (Matrix (A1) )* B
453
- @test A1' B ≈ Matrix (A1) ' B
454
- @test A1* transpose (B) ≈ Matrix (A1) * transpose (B)
455
- @test adjoint (A1)* transpose (B) ≈ Matrix (A1) ' * transpose (B)
456
- @test transpose (A1)* adjoint (B) ≈ transpose (Matrix (A1) )* adjoint (B)
457
- @test A1* B' ≈ Matrix (A1) * B'
458
- @test B* A1 ≈ B* Matrix (A1)
459
- @test transpose (B[:,1 ])* A1 ≈ transpose (B[:,1 ])* Matrix (A1)
460
- @test B[:,1 ]' A1 ≈ B[:,1 ]' Matrix (A1)
461
- @test transpose (B)* A1 ≈ transpose (B)* Matrix (A1)
462
- @test transpose (B)* adjoint (A1) ≈ transpose (B)* Matrix (A1) '
463
- @test adjoint (B)* transpose (A1) ≈ adjoint (B)* transpose (Matrix (A1) )
464
- @test B' A1 ≈ B' Matrix (A1)
465
- @test B* transpose (A1) ≈ B* transpose (Matrix (A1) )
466
- @test B* A1' ≈ B* Matrix (A1) '
467
- @test transpose (B[:,1 ])* transpose (A1) ≈ transpose (B[:,1 ])* transpose (Matrix (A1) )
468
- @test B[:,1 ]' A1' ≈ B[:,1 ]' Matrix (A1) '
469
- @test transpose (B)* transpose (A1) ≈ transpose (B)* transpose (Matrix (A1) )
470
- @test B' A1' ≈ B' Matrix (A1) '
449
+ @test A1* B[:,1 ] ≈ M1 * B[:,1 ]
450
+ @test A1* B ≈ M1 * B
451
+ @test transpose (A1)* B[:,1 ] ≈ transpose (M1 )* B[:,1 ]
452
+ @test A1' B[:,1 ] ≈ M1 ' B[:,1 ]
453
+ @test transpose (A1)* B ≈ transpose (M1 )* B
454
+ @test A1' B ≈ M1 ' B
455
+ @test A1* transpose (B) ≈ M1 * transpose (B)
456
+ @test adjoint (A1)* transpose (B) ≈ M1 ' * transpose (B)
457
+ @test transpose (A1)* adjoint (B) ≈ transpose (M1 )* adjoint (B)
458
+ @test A1* B' ≈ M1 * B'
459
+ @test B* A1 ≈ B* M1
460
+ @test transpose (B[:,1 ])* A1 ≈ transpose (B[:,1 ])* M1
461
+ @test B[:,1 ]' A1 ≈ B[:,1 ]' M1
462
+ @test transpose (B)* A1 ≈ transpose (B)* M1
463
+ @test transpose (B)* adjoint (A1) ≈ transpose (B)* M1 '
464
+ @test adjoint (B)* transpose (A1) ≈ adjoint (B)* transpose (M1 )
465
+ @test B' A1 ≈ B' M1
466
+ @test B* transpose (A1) ≈ B* transpose (M1 )
467
+ @test B* A1' ≈ B* M1 '
468
+ @test transpose (B[:,1 ])* transpose (A1) ≈ transpose (B[:,1 ])* transpose (M1 )
469
+ @test B[:,1 ]' A1' ≈ B[:,1 ]' M1 '
470
+ @test transpose (B)* transpose (A1) ≈ transpose (B)* transpose (M1 )
471
+ @test B' A1' ≈ B' M1 '
471
472
472
473
if eltyB == elty1
473
- @test mul! (similar (B), A1, B) ≈ Matrix (A1) * B
474
- @test mul! (similar (B), A1, adjoint (B)) ≈ Matrix (A1) * B'
475
- @test mul! (similar (B), A1, transpose (B)) ≈ Matrix (A1) * transpose (B)
476
- @test mul! (similar (B), adjoint (A1), adjoint (B)) ≈ Matrix (A1) ' * B'
477
- @test mul! (similar (B), transpose (A1), transpose (B)) ≈ transpose (Matrix (A1) )* transpose (B)
478
- @test mul! (similar (B), transpose (A1), adjoint (B)) ≈ transpose (Matrix (A1) )* B'
479
- @test mul! (similar (B), adjoint (A1), transpose (B)) ≈ Matrix (A1) ' * transpose (B)
480
- @test mul! (similar (B), adjoint (A1), B) ≈ Matrix (A1) ' * B
481
- @test mul! (similar (B), transpose (A1), B) ≈ transpose (Matrix (A1) )* B
474
+ @test mul! (similar (B), A1, B) ≈ M1 * B
475
+ @test mul! (similar (B), A1, adjoint (B)) ≈ M1 * B'
476
+ @test mul! (similar (B), A1, transpose (B)) ≈ M1 * transpose (B)
477
+ @test mul! (similar (B), adjoint (A1), adjoint (B)) ≈ M1 ' * B'
478
+ @test mul! (similar (B), transpose (A1), transpose (B)) ≈ transpose (M1 )* transpose (B)
479
+ @test mul! (similar (B), transpose (A1), adjoint (B)) ≈ transpose (M1 )* B'
480
+ @test mul! (similar (B), adjoint (A1), transpose (B)) ≈ M1 ' * transpose (B)
481
+ @test mul! (similar (B), adjoint (A1), B) ≈ M1 ' * B
482
+ @test mul! (similar (B), transpose (A1), B) ≈ transpose (M1 )* B
482
483
# test also vector methods
483
484
B1 = vec (B[1 ,:])
484
- @test mul! (similar (B1), A1, B1) ≈ Matrix (A1) * B1
485
- @test mul! (similar (B1), adjoint (A1), B1) ≈ Matrix (A1) ' * B1
486
- @test mul! (similar (B1), transpose (A1), B1) ≈ transpose (Matrix (A1) )* B1
485
+ @test mul! (similar (B1), A1, B1) ≈ M1 * B1
486
+ @test mul! (similar (B1), adjoint (A1), B1) ≈ M1 ' * B1
487
+ @test mul! (similar (B1), transpose (A1), B1) ≈ transpose (M1 )* B1
487
488
end
488
489
# error handling
489
490
Ann, Bmm, bm = A1, Matrix {eltyB} (undef, n+ 1 , n+ 1 ), Vector {eltyB} (undef, n+ 1 )
@@ -495,30 +496,30 @@ debug && println("Test basic type functionality")
495
496
@test_throws DimensionMismatch rmul! (Bmm, transpose (Ann))
496
497
497
498
# ... and division
498
- @test A1\ B[:,1 ] ≈ Matrix (A1) \ B[:,1 ]
499
- @test A1\ B ≈ Matrix (A1) \ B
500
- @test transpose (A1)\ B[:,1 ] ≈ transpose (Matrix (A1) )\ B[:,1 ]
501
- @test A1' \ B[:,1 ] ≈ Matrix (A1) ' \ B[:,1 ]
502
- @test transpose (A1)\ B ≈ transpose (Matrix (A1) )\ B
503
- @test A1' \ B ≈ Matrix (A1) ' \ B
504
- @test A1\ transpose (B) ≈ Matrix (A1) \ transpose (B)
505
- @test A1\ B' ≈ Matrix (A1) \ B'
506
- @test transpose (A1)\ transpose (B) ≈ transpose (Matrix (A1) )\ transpose (B)
507
- @test A1' \ B' ≈ Matrix (A1) ' \ B'
499
+ @test A1\ B[:,1 ] ≈ M1 \ B[:,1 ]
500
+ @test A1\ B ≈ M1 \ B
501
+ @test transpose (A1)\ B[:,1 ] ≈ transpose (M1 )\ B[:,1 ]
502
+ @test A1' \ B[:,1 ] ≈ M1 ' \ B[:,1 ]
503
+ @test transpose (A1)\ B ≈ transpose (M1 )\ B
504
+ @test A1' \ B ≈ M1 ' \ B
505
+ @test A1\ transpose (B) ≈ M1 \ transpose (B)
506
+ @test A1\ B' ≈ M1 \ B'
507
+ @test transpose (A1)\ transpose (B) ≈ transpose (M1 )\ transpose (B)
508
+ @test A1' \ B' ≈ M1 ' \ B'
508
509
Ann, bm = A1, Vector {elty1} (undef,n+ 1 )
509
510
@test_throws DimensionMismatch Ann\ bm
510
511
@test_throws DimensionMismatch Ann' \ bm
511
512
@test_throws DimensionMismatch transpose (Ann)\ bm
512
513
if t1 == UpperTriangular || t1 == LowerTriangular
513
514
@test_throws SingularException ldiv! (t1 (zeros (elty1, n, n)), fill (eltyB (1 ), n))
514
515
end
515
- @test B/ A1 ≈ B/ Matrix (A1)
516
- @test B/ transpose (A1) ≈ B/ transpose (Matrix (A1) )
517
- @test B/ A1' ≈ B/ Matrix (A1) '
518
- @test transpose (B)/ A1 ≈ transpose (B)/ Matrix (A1)
519
- @test B' / A1 ≈ B' / Matrix (A1)
520
- @test transpose (B)/ transpose (A1) ≈ transpose (B)/ transpose (Matrix (A1) )
521
- @test B' / A1' ≈ B' / Matrix (A1) '
516
+ @test B/ A1 ≈ B/ M1
517
+ @test B/ transpose (A1) ≈ B/ transpose (M1 )
518
+ @test B/ A1' ≈ B/ M1 '
519
+ @test transpose (B)/ A1 ≈ transpose (B)/ M1
520
+ @test B' / A1 ≈ B' / M1
521
+ @test transpose (B)/ transpose (A1) ≈ transpose (B)/ transpose (M1 )
522
+ @test B' / A1' ≈ B' / M1 '
522
523
523
524
# Error bounds
524
525
! (elty1 in (BigFloat, Complex{BigFloat})) && ! (eltyB in (BigFloat, Complex{BigFloat})) && errorbounds (A1, A1\ B, B)
0 commit comments