@@ -77,8 +77,9 @@ rectangularQ(Q::LinearAlgebra.AbstractQ) = convert(Array, Q)
77
77
@test Base. propertynames (qra) == (:R , :Q )
78
78
end
79
79
@testset " Thin QR decomposition (without pivoting)" begin
80
- qra = @inferred qr (a[:, 1 : n1], Val (false ))
81
- @inferred qr (a[:, 1 : n1], Val (false ))
80
+ # test inference within function calls, otherwise const prop won't work
81
+ qrnone (A) = qr (A, :none )
82
+ qra = @inferred qrnone (a[:, 1 : n1])
82
83
q,r = qra. Q, qra. R
83
84
@test_throws ErrorException qra. Z
84
85
@test q' * squareQ (q) ≈ Matrix (I, a_1, a_1)
@@ -103,7 +104,9 @@ rectangularQ(Q::LinearAlgebra.AbstractQ) = convert(Array, Q)
103
104
@test Base. propertynames (qra) == (:R , :Q )
104
105
end
105
106
@testset " (Automatic) Fat (pivoted) QR decomposition" begin
106
- @inferred qr (a, Val (true ))
107
+ qrcolnorm (A) = qr (A, :colnorm )
108
+ # test inference within function calls
109
+ @inferred qrcolnorm (a)
107
110
108
111
qrpa = factorize (a[1 : n1,:])
109
112
q,r = qrpa. Q, qrpa. R
@@ -189,7 +192,7 @@ rectangularQ(Q::LinearAlgebra.AbstractQ) = convert(Array, Q)
189
192
@test mul! (c, b, q' ) ≈ b* q'
190
193
@test_throws DimensionMismatch mul! (Matrix {eltya} (I, n+ 1 , n), q, b)
191
194
192
- qra = qr (a[:,1 : n1], Val ( false ) )
195
+ qra = qr (a[:,1 : n1], :none )
193
196
q, r = qra. Q, qra. R
194
197
@test rmul! (copy (squareQ (q)' ), q) ≈ Matrix (I, n, n)
195
198
@test_throws DimensionMismatch rmul! (Matrix {eltya} (I, n+ 1 , n+ 1 ),q)
214
217
@testset " transpose errors" begin
215
218
@test_throws MethodError transpose (qr (randn (3 ,3 )))
216
219
@test_throws MethodError adjoint (qr (randn (3 ,3 )))
217
- @test_throws MethodError transpose (qr (randn (3 ,3 ), Val ( false ) ))
218
- @test_throws MethodError adjoint (qr (randn (3 ,3 ), Val ( false ) ))
220
+ @test_throws MethodError transpose (qr (randn (3 ,3 ), :none ))
221
+ @test_throws MethodError adjoint (qr (randn (3 ,3 ), :none ))
219
222
@test_throws MethodError transpose (qr (big .(randn (3 ,3 ))))
220
223
@test_throws MethodError adjoint (qr (big .(randn (3 ,3 ))))
221
224
end
255
258
A = zeros (1 , 2 )
256
259
B = zeros (1 , 1 )
257
260
@test A \ B == zeros (2 , 1 )
258
- @test qr (A, Val ( true ) ) \ B == zeros (2 , 1 )
261
+ @test qr (A, :colnorm ) \ B == zeros (2 , 1 )
259
262
end
260
263
261
264
@testset " Issue 24107" begin
277
280
@test A \ b ≈ ldiv! (c, qr (A ), b)
278
281
@test b == b0
279
282
c0 = copy (c)
280
- @test Ac\ c ≈ ldiv! (b, qr (Ac, Val ( true ) ), c)
283
+ @test Ac\ c ≈ ldiv! (b, qr (Ac, :colnorm ), c)
281
284
@test c0 == c
282
285
end
283
286
@@ -294,19 +297,19 @@ end
294
297
295
298
@testset " det(Q::Union{QRCompactWYQ, QRPackedQ})" begin
296
299
# 40 is the number larger than the default block size 36 of QRCompactWY
297
- @testset for n in [1 : 3 ; 40 ], m in [1 : 3 ; 40 ], pivot in [ false , true ]
300
+ @testset for n in [1 : 3 ; 40 ], m in [1 : 3 ; 40 ], pivot in ( :none , :colnorm )
298
301
@testset " real" begin
299
302
@testset for k in 0 : min (n, m, 5 )
300
303
A = cat (Array (I (k)), randn (n - k, m - k); dims= (1 , 2 ))
301
- Q, = qr (A, Val ( pivot) )
304
+ Q, = qr (A, pivot)
302
305
@test det (Q) ≈ det (collect (Q))
303
306
@test abs (det (Q)) ≈ 1
304
307
end
305
308
end
306
309
@testset " complex" begin
307
310
@testset for k in 0 : min (n, m, 5 )
308
311
A = cat (Array (I (k)), randn (ComplexF64, n - k, m - k); dims= (1 , 2 ))
309
- Q, = qr (A, Val ( pivot) )
312
+ Q, = qr (A, pivot)
310
313
@test det (Q) ≈ det (collect (Q))
311
314
@test abs (det (Q)) ≈ 1
312
315
end
0 commit comments