@@ -317,21 +317,24 @@ end
317317const PREALLOCATED_QR_ColumnNorm = ArrayInterface. qr_instance (rand (1 , 1 ), ColumnNorm ())
318318
319319function init_cacheval (alg:: QRFactorization{ColumnNorm} , A:: Matrix{Float64} , b, u, Pl, Pr,
320- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
320+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
321+ assumptions:: OperatorAssumptions )
321322 return PREALLOCATED_QR_ColumnNorm
322323end
323324
324325function init_cacheval (
325326 alg:: QRFactorization , A:: Union{<:Adjoint, <:Transpose} , b, u, Pl, Pr,
326- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
327+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
328+ assumptions:: OperatorAssumptions )
327329 A isa GPUArraysCore. AnyGPUArray && return qr (A)
328330 return qr (A, alg. pivot)
329331end
330332
331333const PREALLOCATED_QR_NoPivot = ArrayInterface. qr_instance (rand (1 , 1 ))
332334
333335function init_cacheval (alg:: QRFactorization{NoPivot} , A:: Matrix{Float64} , b, u, Pl, Pr,
334- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
336+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
337+ assumptions:: OperatorAssumptions )
335338 return PREALLOCATED_QR_NoPivot
336339end
337340
@@ -388,13 +391,18 @@ function init_cacheval(alg::CholeskyFactorization, A::SMatrix{S1, S2}, b, u, Pl,
388391end
389392
390393function init_cacheval (alg:: CholeskyFactorization , A:: GPUArraysCore.AnyGPUArray , b, u, Pl,
391- Pr, maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
392- cholesky (A; check = false )
394+ Pr, maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
395+ assumptions:: OperatorAssumptions )
396+ # Cholesky requires square matrices - return nothing for non-square to avoid errors
397+ # during DefaultLinearSolver cache initialization
398+ # See https://github.com/SciML/NonlinearSolve.jl/issues/746
399+ assumptions. issq ? cholesky (A; check = false ) : nothing
393400end
394401
395402function init_cacheval (
396403 alg:: CholeskyFactorization , A:: AbstractArray{<:BLASELTYPES} , b, u, Pl, Pr,
397- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
404+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
405+ assumptions:: OperatorAssumptions )
398406 if LinearSolve. is_cusparse_csc (A)
399407 nothing
400408 elseif LinearSolve. is_cusparse_csr (A) && ! LinearSolve. cudss_loaded (A)
@@ -1012,7 +1020,8 @@ const PREALLOCATED_NORMALCHOLESKY_SYMMETRIC = ArrayInterface.cholesky_instance(
10121020 Symmetric (rand (1 , 1 )), NoPivot ())
10131021
10141022function init_cacheval (alg:: NormalCholeskyFactorization , A:: Matrix{Float64} , b, u, Pl, Pr,
1015- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
1023+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
1024+ assumptions:: OperatorAssumptions )
10161025 return PREALLOCATED_NORMALCHOLESKY_SYMMETRIC
10171026end
10181027
@@ -1164,7 +1173,8 @@ function init_cacheval(alg::SparspakFactorization,
11641173end
11651174
11661175function init_cacheval (:: SparspakFactorization , :: StaticArray , b, u, Pl, Pr,
1167- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
1176+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
1177+ assumptions:: OperatorAssumptions )
11681178 nothing
11691179end
11701180
@@ -1190,9 +1200,8 @@ struct CliqueTreesFactorization{A, S} <: AbstractSparseFactorization
11901200 alg:: A = nothing ,
11911201 snd:: S = nothing ,
11921202 reuse_symbolic = true ,
1193- throwerror = true ,
1194- ) where {A, S}
1195-
1203+ throwerror = true
1204+ ) where {A, S}
11961205 ext = Base. get_extension (@__MODULE__ , :LinearSolveCliqueTreesExt )
11971206
11981207 if throwerror && isnothing (ext)
@@ -1203,30 +1212,36 @@ struct CliqueTreesFactorization{A, S} <: AbstractSparseFactorization
12031212 end
12041213end
12051214
1206- function init_cacheval (:: CliqueTreesFactorization , :: Union{AbstractMatrix, Nothing, AbstractSciMLOperator} , b, u, Pl, Pr,
1207- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
1215+ function init_cacheval (:: CliqueTreesFactorization ,
1216+ :: Union{AbstractMatrix, Nothing, AbstractSciMLOperator} , b, u, Pl, Pr,
1217+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
1218+ assumptions:: OperatorAssumptions )
12081219 nothing
12091220end
12101221
12111222function init_cacheval (:: CliqueTreesFactorization , :: StaticArray , b, u, Pl, Pr,
1212- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
1223+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
1224+ assumptions:: OperatorAssumptions )
12131225 nothing
12141226end
12151227
12161228# Fallback init_cacheval for extension-based algorithms when extensions aren't loaded
12171229# These return nothing since the actual implementations are in the extensions
12181230function init_cacheval (:: BLISLUFactorization , A, b, u, Pl, Pr,
1219- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
1231+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
1232+ assumptions:: OperatorAssumptions )
12201233 nothing
12211234end
12221235
12231236function init_cacheval (:: CudaOffloadLUFactorization , A, b, u, Pl, Pr,
1224- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
1237+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
1238+ assumptions:: OperatorAssumptions )
12251239 nothing
12261240end
12271241
12281242function init_cacheval (:: MetalLUFactorization , A, b, u, Pl, Pr,
1229- maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} , assumptions:: OperatorAssumptions )
1243+ maxiters:: Int , abstol, reltol, verbose:: Union{LinearVerbosity, Bool} ,
1244+ assumptions:: OperatorAssumptions )
12301245 nothing
12311246end
12321247
0 commit comments