@@ -29,73 +29,81 @@ prob_sparse_spd = LinearProblem(A_sparse_spd, b)
2929 JET. @test_opt solve (prob, GenericLUFactorization ())
3030 JET. @test_opt solve (prob, DiagonalFactorization ())
3131 JET. @test_opt solve (prob, SimpleLUFactorization ())
32-
33- # Tests that currently fail - marked with @test_skip
34- @test_skip JET. @test_opt solve (prob, QRFactorization ())
35- @test_skip JET. @test_opt solve (prob_spd, CholeskyFactorization ())
36- @test_skip JET. @test_opt solve (prob_sym, LDLtFactorization ())
37- @test_skip JET. @test_opt solve (prob, SVDFactorization ())
38- @test_skip JET. @test_opt solve (prob_sym, BunchKaufmanFactorization ())
39- @test_skip JET. @test_opt solve (prob, GenericFactorization ())
4032 JET. @test_opt solve (prob_spd, NormalCholeskyFactorization ())
4133 JET. @test_opt solve (prob, NormalBunchKaufmanFactorization ())
34+
35+ # TODO : Fix type stability issues in these solvers:
36+ # - QRFactorization: runtime dispatch in LinearAlgebra.QRCompactWYQ
37+ # - CholeskyFactorization: type instability issues
38+ # - LDLtFactorization: type instability issues
39+ # - SVDFactorization: type instability issues
40+ # - BunchKaufmanFactorization: type instability issues
41+ # - GenericFactorization: runtime dispatch in issuccess
42+
43+ # Uncomment these once type stability is fixed:
44+ # JET.@test_opt solve(prob, QRFactorization())
45+ # JET.@test_opt solve(prob_spd, CholeskyFactorization())
46+ # JET.@test_opt solve(prob_sym, LDLtFactorization())
47+ # JET.@test_opt solve(prob, SVDFactorization())
48+ # JET.@test_opt solve(prob_sym, BunchKaufmanFactorization())
49+ # JET.@test_opt solve(prob, GenericFactorization())
4250end
4351
4452@testset " JET Tests for Extension Factorizations" begin
4553 # RecursiveFactorization.jl extensions
4654 JET. @test_opt solve (prob, RFLUFactorization ())
47- @test_skip JET. @test_opt solve (prob, FastLUFactorization ())
48- @test_skip JET. @test_opt solve (prob, FastQRFactorization ())
4955
50- # Platform-specific factorizations (may not be available on all systems)
51- if @isdefined (MKLLUFactorization)
52- @test_skip JET. @test_opt solve (prob, MKLLUFactorization ())
53- end
56+ # TODO : Fix type stability in FastLUFactorization and FastQRFactorization
57+ # - FastLUFactorization: runtime dispatch in do_factorization
58+ # - FastQRFactorization: type instability issues
5459
55- if Sys . isapple () && @isdefined (AppleAccelerateLUFactorization)
56- @test_skip JET. @test_opt solve (prob, AppleAccelerateLUFactorization ())
57- end
60+ # Uncomment these once type stability is fixed:
61+ # JET.@test_opt solve(prob, FastLUFactorization ())
62+ # JET.@test_opt solve(prob, FastQRFactorization())
5863
59- # CUDA/Metal factorizations (only test if available)
60- # @test_skip JET.@test_opt solve(prob, CudaOffloadFactorization())
61- # @test_skip JET.@test_opt solve(prob, MetalLUFactorization())
62- # @test_skip JET.@test_opt solve(prob, BLISLUFactorization())
64+ # Platform-specific factorizations (may not be available on all systems)
65+ # These need conditional testing based on platform and availability
66+ # if @isdefined(MKLLUFactorization)
67+ # JET.@test_opt solve(prob, MKLLUFactorization())
68+ # end
69+ # if Sys.isapple() && @isdefined(AppleAccelerateLUFactorization)
70+ # JET.@test_opt solve(prob, AppleAccelerateLUFactorization())
71+ # end
6372end
6473
6574@testset " JET Tests for Sparse Factorizations" begin
66- @test_skip JET. @test_opt solve (prob_sparse, UMFPACKFactorization ())
67- @test_skip JET. @test_opt solve (prob_sparse, KLUFactorization ())
68- @test_skip JET. @test_opt solve (prob_sparse_spd, CHOLMODFactorization ())
69- @test_skip JET. @test_opt solve (prob_sparse, SparspakFactorization ())
70-
71- # PardisoJL (requires extension)
72- # @test_skip JET.@test_opt solve(prob_sparse, PardisoJL())
75+ # TODO : Fix type stability issues in sparse factorizations
76+ # All sparse factorizations currently have type instability issues
77+ # that need to be addressed before enabling these tests
7378
74- # CUSOLVER (requires CUDA)
75- # @test_skip JET.@test_opt solve(prob_sparse, CUSOLVERRFFactorization())
79+ # Uncomment these once type stability is fixed:
80+ # JET.@test_opt solve(prob_sparse, UMFPACKFactorization())
81+ # JET.@test_opt solve(prob_sparse, KLUFactorization())
82+ # JET.@test_opt solve(prob_sparse_spd, CHOLMODFactorization())
83+ # JET.@test_opt solve(prob_sparse, SparspakFactorization())
7684end
7785
7886@testset " JET Tests for Krylov Methods" begin
79- # KrylovJL methods
80- @test_skip JET. @test_opt solve (prob, KrylovJL_GMRES ())
81- @test_skip JET. @test_opt solve (prob_spd, KrylovJL_CG ())
82- @test_skip JET. @test_opt solve (prob_sym, KrylovJL_MINRES ())
83- @test_skip JET. @test_opt solve (prob, KrylovJL_BICGSTAB ())
84- @test_skip JET. @test_opt solve (prob, KrylovJL_LSMR ())
85- @test_skip JET. @test_opt solve (prob, KrylovJL_CRAIGMR ())
86- @test_skip JET. @test_opt solve (prob_sym, KrylovJL_MINARES ())
87+ # TODO : Fix type stability issues in Krylov methods
88+ # All Krylov methods currently have type instability issues
89+ # that need to be addressed before enabling these tests
8790
88- # SimpleGMRES
89- @test_skip JET. @test_opt solve (prob, SimpleGMRES ())
90-
91- # Extension Krylov methods (require extensions)
92- # @test_skip JET.@test_opt solve(prob, KrylovKitJL_CG())
93- # @test_skip JET.@test_opt solve(prob, KrylovKitJL_GMRES())
94- # @test_skip JET.@test_opt solve(prob, IterativeSolversJL())
91+ # Uncomment these once type stability is fixed:
92+ # JET.@test_opt solve(prob, KrylovJL_GMRES())
93+ # JET.@test_opt solve(prob_spd, KrylovJL_CG())
94+ # JET.@test_opt solve(prob_sym, KrylovJL_MINRES())
95+ # JET.@test_opt solve(prob, KrylovJL_BICGSTAB())
96+ # JET.@test_opt solve(prob, KrylovJL_LSMR())
97+ # JET.@test_opt solve(prob, KrylovJL_CRAIGMR())
98+ # JET.@test_opt solve(prob_sym, KrylovJL_MINARES())
99+ # JET.@test_opt solve(prob, SimpleGMRES())
95100end
96101
97102@testset " JET Tests for Default Solver" begin
98- # Test the default solver selection
99- @test_skip JET. @test_opt solve (prob)
100- @test_skip JET. @test_opt solve (prob_sparse)
103+ # TODO : Fix type stability in default solver selection
104+ # The default solver selection has runtime dispatch issues
105+
106+ # Uncomment these once type stability is fixed:
107+ # JET.@test_opt solve(prob)
108+ # JET.@test_opt solve(prob_sparse)
101109end
0 commit comments