Skip to content

Import PureUMFPACK in the re-solve tests#1040

Merged
ChrisRackauckas merged 2 commits into
SciML:mainfrom
JamesWrigley:umfpack
Jun 14, 2026
Merged

Import PureUMFPACK in the re-solve tests#1040
ChrisRackauckas merged 2 commits into
SciML:mainfrom
JamesWrigley:umfpack

Conversation

@JamesWrigley

Copy link
Copy Markdown
Member

Otherwise its package extension is not loaded and we get MethodError's.

Fixes these errors seen in SciML/SciMLBase.jl#1386:

Re-solve: Error During Test at /home/james/git/LinearSolve.jl/test/core/resolve.jl:101                                                                                                                                                                                                                                         
  Test threw exception                                                                                                                                                                                                                                                                                                         
  Expression: (solve!(linsolve)).u  expected                                                                                                                                                                                                                                                                                  
  MethodError: no method matching do_factorization(::LinearSolve.PureUMFPACKFactorization, ::SparseArrays.SparseMatrixCSC{Float64, Int64}, ::Vector{Float64}, ::Vector{Float64})                                                                                                                                               
  The function `do_factorization` exists, but no method is defined for this combination of argument types.                                                                                                                                                                                                                     
  Closest candidates are:                                                                                                                                                                                                                                                                                                      
    do_factorization(::LinearSolve.BunchKaufmanFactorization, ::Any, ::Any, ::Any)                                                                                                                                                                                                                                             
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:749                                                                                                                                                                                                                                                               
    do_factorization(::LinearSolve.LUFactorization, ::Any, ::Any, ::Any)                                                                                                                                                                                                                                                       
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:315                                                                                                                                                                                                                                                               
    do_factorization(::LinearSolve.QRFactorization, ::Any, ::Any, ::Any)                                                                                                                                                                                                                                                       
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:469                                                                                                                                                                                                                                                               
    ...                                                                                                                                                                                                                                                                                                                        
  Stacktrace:                                                                                                                                                                                                                                                                                                                  
   [1] macro expansion                                                                                                                                                                                                                                                                                                         
     @ ~/git/LinearSolve.jl/src/factorization.jl:16 [inlined]                                                                                                                                                                                                                                                                  
   [2] solve!(cache::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}}, alg::LinearSolve.PureUMFPACKFactorization; kwargs::@Kwargs{})
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:1                                                                                                                                                                                                                                                                 
   [3] solve!(::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}}; kwargs::@Kwargs{})
     @ LinearSolve ~/git/LinearSolve.jl/src/common.jl:619                                                                                                                                                                                                                                                                                                                                      
   [4] solve!(::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}})
     @ LinearSolve ~/git/LinearSolve.jl/src/common.jl:618                                                                                                                                                                                                                                                                      
   [5] macro expansion                                                                                                                                                                                                                                                                                                                                                                         
     @ ~/.julia/juliaup/julia-1.13-nightly/share/julia/stdlib/v1.13/Test/src/Test.jl:750 [inlined]
   [6] top-level scope                                                                         
     @ ~/git/LinearSolve.jl/test/core/resolve.jl:101                                           
                                                                                                                                                                                               
Re-solve: Test Failed at /home/james/git/LinearSolve.jl/test/core/resolve.jl:102
  Expression: !(linsolve.isfresh)                                                                                      
  Stacktrace:                                                                                                          
   [1] macro expansion                                                                                                 
     @ ~/.julia/juliaup/julia-1.13-nightly/share/julia/stdlib/v1.13/Test/src/Test.jl:753 [inlined]
   [2] top-level scope                                                                                                 
     @ ~/git/LinearSolve.jl/test/core/resolve.jl:102                                                                   
   [3] include(mapexpr::Function, mod::Module, _path::String)
     @ Base ./Base.jl:310                                                                                              
   [4] top-level scope                                                                                                                                         
     @ ~/.julia/packages/SafeTestsets/raUNr/src/SafeTestsets.jl:24                                                                                             
   [5] macro expansion                                                                                                                                         
     @ ~/.julia/juliaup/julia-1.13-nightly/share/julia/stdlib/v1.13/Test/src/Test.jl:1961 [inlined]                                                            
   [6] macro expansion                                                                                                                                         
     @ ~/.julia/packages/SafeTestsets/raUNr/src/SafeTestsets.jl:24 [inlined]                                                                                   

Re-solve: Error During Test at /home/james/git/LinearSolve.jl/test/core/resolve.jl:103                                                                         
  Test threw exception                                                                                                                                         
  Expression: (solve!(linsolve)).u  expected                                                                                                                  
  MethodError: no method matching do_factorization(::LinearSolve.PureUMFPACKFactorization, ::SparseArrays.SparseMatrixCSC{Float64, Int64}, ::Vector{Float64}, ::Vector{Float64})                                                                                                                                               
  The function `do_factorization` exists, but no method is defined for this combination of argument types.                                                     
  Closest candidates are:                                                                                                                                      
    do_factorization(::LinearSolve.BunchKaufmanFactorization, ::Any, ::Any, ::Any)                                                                             
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:749                                                                                               
    do_factorization(::LinearSolve.LUFactorization, ::Any, ::Any, ::Any)                                                                                       
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:315                                                                                               
    do_factorization(::LinearSolve.QRFactorization, ::Any, ::Any, ::Any)                                                                                       
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:469                                                                                               
    ...                                                                                                                                                        
  Stacktrace:                                                                                                                                                  
   [1] macro expansion                                                                                                                                         
     @ ~/git/LinearSolve.jl/src/factorization.jl:16 [inlined]                                                                                                  
   [2] solve!(cache::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}}, alg::LinearSolve.PureUMFPACKFactorization; kwargs::@Kwargs{})                                                                                                                                                                  
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:1                                                                                                 
   [3] solve!(::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}}; kwargs::@Kwargs{})                                                                                                                                                                                                                  
     @ LinearSolve ~/git/LinearSolve.jl/src/common.jl:619                                                                                                      
   [4] solve!(::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}})                                                                                                                                                                                                                                     
     @ LinearSolve ~/git/LinearSolve.jl/src/common.jl:618                                                                                                      
   [5] macro expansion                                                                                                                                         
     @ ~/.julia/juliaup/julia-1.13-nightly/share/julia/stdlib/v1.13/Test/src/Test.jl:750 [inlined]                                                             
   [6] top-level scope                                                                                                                                         
     @ ~/git/LinearSolve.jl/test/core/resolve.jl:103                                                                                                           

Re-solve: Error During Test at /home/james/git/LinearSolve.jl/test/core/resolve.jl:124                                                                         
  Test threw exception                                                                                                                                         
  Expression: (solve!(linsolve)).u  expected                                                                                                                  
  MethodError: no method matching do_factorization(::LinearSolve.PureUMFPACKFactorization, ::SparseArrays.SparseMatrixCSC{Float64, Int64}, ::Vector{Float64}, ::Vector{Float64})                                                                                                                                               
  The function `do_factorization` exists, but no method is defined for this combination of argument types.                                                     
  Closest candidates are:                                                                                                                                      
    do_factorization(::LinearSolve.BunchKaufmanFactorization, ::Any, ::Any, ::Any)                                                                             
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:749                                                                                               
    do_factorization(::LinearSolve.LUFactorization, ::Any, ::Any, ::Any)                                                                                       
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:315                                                                                               
    do_factorization(::LinearSolve.QRFactorization, ::Any, ::Any, ::Any)                                                                                       
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:469                                                                                               
    ...                                                                                                                                                        
  Stacktrace:                                                                                                                                                  
   [1] macro expansion                                                                                                                                         
     @ ~/git/LinearSolve.jl/src/factorization.jl:16 [inlined]                                                                                                  
   [2] solve!(cache::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}}, alg::LinearSolve.PureUMFPACKFactorization; kwargs::@Kwargs{})                                                                                                                                                                  
     @ LinearSolve ~/git/LinearSolve.jl/src/factorization.jl:1                                                                                                 
   [3] solve!(::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}}; kwargs::@Kwargs{})                                                                                                                                                                                                                  
     @ LinearSolve ~/git/LinearSolve.jl/src/common.jl:619                                                                                                      
   [4] solve!(::LinearSolve.LinearCache{SparseArrays.SparseMatrixCSC{Float64, Int64}, Vector{Float64}, Vector{Float64}, SciMLBase.NullParameters, LinearSolve.PureUMFPACKFactorization, Nothing, SciMLOperators.IdentityOperator, SciMLOperators.IdentityOperator, Float64, LinearSolve.LinearVerbosity{true}, Bool, LinearSolve.LinearSolveAdjoint{Missing}, LinearSolveSparseArraysExt.SparseReduction{Float64, Int64}})                                                                                                                                                                                                                                     
     @ LinearSolve ~/git/LinearSolve.jl/src/common.jl:618                                                                                                      
   [5] macro expansion                                                                                                                                         
     @ ~/.julia/juliaup/julia-1.13-nightly/share/julia/stdlib/v1.13/Test/src/Test.jl:750 [inlined]                                                             
   [6] top-level scope                                                                                                                                         
     @ ~/git/LinearSolve.jl/test/core/resolve.jl:124

Checklist

  • Appropriate tests were added
  • Any code changes were done in a way that does not break public API
  • All documentation related to code changes were updated
  • The new code follows the
    contributor guidelines, in particular the SciML Style Guide and
    COLPRAC.
  • Any new documentation only uses public API

Additional context

Add any other context about the problem here.

Otherwise its package extension is not loaded and we get MethodError's.
Comment thread test/core/resolve.jl Outdated
@ChrisRackauckas ChrisRackauckas merged commit fd37153 into SciML:main Jun 14, 2026
34 of 55 checks passed
@JamesWrigley JamesWrigley deleted the umfpack branch June 14, 2026 09:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants