You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
elseif fun2 in (:lslq, :lsmr, :lsqr, :minres, :symmlq)
87
+
@evalbegin
88
+
function$(fun2)($(def_args...); window::Int=5, $(def_kwargs...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
89
+
start_time =time_ns()
90
+
solver =$KS(A, b; window)
91
+
elapsed_time =ktimer(start_time)
92
+
timemax -= elapsed_time
93
+
$(fun)(solver, $(args...); $(kwargs...))
94
+
solver.stats.timer += elapsed_time
95
+
returnresults(solver)
96
+
end
97
+
98
+
if!isempty($optargs)
99
+
function$(fun2)($(def_args...), $(def_optargs...); window::Int=5, $(def_kwargs...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
100
+
start_time =time_ns()
101
+
solver =$KS(A, b; window)
102
+
warm_start!(solver, $(optargs...))
103
+
elapsed_time =ktimer(start_time)
104
+
timemax -= elapsed_time
105
+
$(fun)(solver, $(args...); $(kwargs...))
106
+
solver.stats.timer += elapsed_time
107
+
returnresults(solver)
108
+
end
109
+
end
110
+
end
111
+
else
89
112
@evalbegin
90
-
## Out-of-place
91
113
function$(fun2)($(def_args...); $(def_kwargs...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
92
114
start_time =time_ns()
93
115
solver =$KS(A, b)
@@ -113,8 +135,8 @@ for (KS, fun, fun2, args, def_args, optargs, def_optargs, kwargs, def_kwargs) in
113
135
end
114
136
end
115
137
138
+
## In-place
116
139
@evalbegin
117
-
## In-place
118
140
solve!(solver ::$KS{T,FC,S}, $(def_args...); $(def_kwargs...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}, S <:AbstractVector{FC}} =$(fun)(solver, $(args...); $(kwargs...))
functionlslq($(def_args_lslq...); window ::Int=5, $(def_kwargs_lslq...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
186
-
start_time =time_ns()
187
-
solver =LslqSolver(A, b; window)
188
-
elapsed_time =ktimer(start_time)
189
-
timemax -= elapsed_time
190
-
lslq!(solver, $(args_lslq...); $(kwargs_lslq...))
191
-
solver.stats.timer += elapsed_time
192
-
return (solver.x, solver.stats)
193
-
end
194
-
195
185
functionlslq!(solver ::LslqSolver{T,FC,S}, $(def_args_lslq...); $(def_kwargs_lslq...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}, S <:AbstractVector{FC}}
functionlsmr($(def_args_lsmr...); window ::Int=5, $(def_kwargs_lsmr...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
163
-
start_time =time_ns()
164
-
solver =LsmrSolver(A, b; window)
165
-
elapsed_time =ktimer(start_time)
166
-
timemax -= elapsed_time
167
-
lsmr!(solver, $(args_lsmr...); $(kwargs_lsmr...))
168
-
solver.stats.timer += elapsed_time
169
-
return (solver.x, solver.stats)
170
-
end
171
-
172
162
functionlsmr!(solver ::LsmrSolver{T,FC,S}, $(def_args_lsmr...); $(def_kwargs_lsmr...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}, S <:AbstractVector{FC}}
functionlsqr($(def_args_lsqr...); window ::Int=5, $(def_kwargs_lsqr...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
159
-
start_time =time_ns()
160
-
solver =LsqrSolver(A, b; window)
161
-
elapsed_time =ktimer(start_time)
162
-
timemax -= elapsed_time
163
-
lsqr!(solver, $(args_lsqr...); $(kwargs_lsqr...))
164
-
solver.stats.timer += elapsed_time
165
-
return (solver.x, solver.stats)
166
-
end
167
-
168
158
functionlsqr!(solver ::LsqrSolver{T,FC,S}, $(def_args_lsqr...); $(def_kwargs_lsqr...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}, S <:AbstractVector{FC}}
functionminres($(def_args_minres...), $(def_optargs_minres...); window ::Int=5, $(def_kwargs_minres...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
functionminres!(solver ::MinresSolver{T,FC,S}, $(def_args_minres...); $(def_kwargs_minres...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}, S <:AbstractVector{FC}}
functionsymmlq($(def_args_symmlq...), $(def_optargs_symmlq...); window ::Int=5, $(def_kwargs_symmlq...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}}
functionsymmlq!(solver ::SymmlqSolver{T,FC,S}, $(def_args_symmlq...); $(def_kwargs_symmlq...)) where {T <:AbstractFloat, FC <:FloatOrComplex{T}, S <:AbstractVector{FC}}
0 commit comments