@@ -239,15 +239,19 @@ end
239239@testset " SVD pinv and truncation" begin
240240 m, n = 10 ,5
241241 A = randn (m,n) * [1 / (i+ j- 1 ) for i = 1 : n, j= 1 : n] # badly conditioned Hilbert matrix
242- @test pinv (A) ≈ Matrix (pinv (svd (A))) rtol= 1e-13
242+ F = svd (A)
243+ @test pinv (A) ≈ Matrix (pinv (F)) rtol= 1e-13
243244 pinv_3 = pinv (A, rtol= 1e-3 )
244- @test pinv_3 ≈ Matrix (pinv (svd (A), rtol= 1e-3 )) rtol= 1e-13
245- @test pinv_3 ≈ Matrix (pinv (svd (A, rtol= 1e-3 ))) rtol= 1e-13
245+ F_3 = svd (A, rtol= 1e-3 )
246+ @test pinv_3 ≈ Matrix (pinv (F, rtol= 1e-3 )) rtol= 1e-13
247+ @test pinv_3 ≈ Matrix (pinv (F_3)) rtol= 1e-13
246248 b = float ([1 : m;]) # arbitrary rhs
247- @test pinv_3 * b ≈ svd (A, rtol= 1e-3 ) \ b rtol= 1e-13
248- @test pinv_3 * b ≈ pinv (svd (A, rtol= 1e-3 )) * b rtol= 1e-13
249- @test pinv_3 * b ≈ ldiv! (svd (A), copy (b), rtol= 1e-3 )[1 : n] rtol= 1e-13
250- @test pinv (A, atol= 100 ) == Matrix (pinv (svd (A), atol= 100 )) == Matrix (pinv (svd (A, atol= 100 ))) == zeros (5 ,10 )
249+ @test pinv_3 * b ≈ F_3 \ b rtol= 1e-13
250+ @test pinv_3 * b ≈ pinv (F_3) * b rtol= 1e-13
251+ @test pinv_3 * b ≈ ldiv! (F, copy (b), rtol= 1e-3 )[1 : n] rtol= 1e-13
252+ c = float ([1 : n;]) # arbitrary rhs
253+ @test c' * pinv_3 ≈ c' * pinv (F_3) rtol= 1e-13
254+ @test pinv (A, atol= 100 ) == Matrix (pinv (F, atol= 100 )) == Matrix (pinv (svd (A, atol= 100 ))) == zeros (5 ,10 )
251255end
252256
253257@testset " Issue 40944. ldiv!(SVD) should update rhs" begin
0 commit comments