From c594d57d8c6e638b6b0cceec267e6bcfd03e16c2 Mon Sep 17 00:00:00 2001 From: Alexis Montoison Date: Sun, 13 Oct 2024 14:12:04 -0500 Subject: [PATCH] Improve type inference of extract_parameters --- src/bicgstab.jl | 2 +- src/bilq.jl | 2 +- src/bilqr.jl | 2 +- src/block_gmres.jl | 2 +- src/car.jl | 2 +- src/cg.jl | 2 +- src/cg_lanczos.jl | 2 +- src/cg_lanczos_shift.jl | 2 +- src/cgls.jl | 2 +- src/cgne.jl | 2 +- src/cgs.jl | 2 +- src/cr.jl | 2 +- src/craig.jl | 2 +- src/craigmr.jl | 2 +- src/crls.jl | 2 +- src/crmr.jl | 2 +- src/diom.jl | 2 +- src/dqgmres.jl | 2 +- src/fgmres.jl | 2 +- src/fom.jl | 2 +- src/gmres.jl | 2 +- src/gpmr.jl | 2 +- src/krylov_utils.jl | 4 ++-- src/lnlq.jl | 2 +- src/lslq.jl | 2 +- src/lsmr.jl | 2 +- src/lsqr.jl | 2 +- src/minares.jl | 2 +- src/minres.jl | 2 +- src/minres_qlp.jl | 2 +- src/qmr.jl | 2 +- src/symmlq.jl | 2 +- src/tricg.jl | 2 +- src/trilqr.jl | 2 +- src/trimr.jl | 2 +- src/usymlq.jl | 2 +- src/usymqr.jl | 2 +- 37 files changed, 38 insertions(+), 38 deletions(-) diff --git a/src/bicgstab.jl b/src/bicgstab.jl index 5e2c8f5f6..807aa3ade 100644 --- a/src/bicgstab.jl +++ b/src/bicgstab.jl @@ -106,7 +106,7 @@ def_kwargs_bicgstab = (:(; c::AbstractVector{FC} = b ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_bicgstab = mapreduce(extract_parameters, vcat, def_kwargs_bicgstab) +def_kwargs_bicgstab = extract_parameters.(def_kwargs_bicgstab) args_bicgstab = (:A, :b) optargs_bicgstab = (:x0,) diff --git a/src/bilq.jl b/src/bilq.jl index ab7580d43..1222582f8 100644 --- a/src/bilq.jl +++ b/src/bilq.jl @@ -99,7 +99,7 @@ def_kwargs_bilq = (:(; c::AbstractVector{FC} = b ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_bilq = mapreduce(extract_parameters, vcat, def_kwargs_bilq) +def_kwargs_bilq = extract_parameters.(def_kwargs_bilq) args_bilq = (:A, :b) optargs_bilq = (:x0,) diff --git a/src/bilqr.jl b/src/bilqr.jl index 93667db9f..2e229ceef 100644 --- a/src/bilqr.jl +++ b/src/bilqr.jl @@ -97,7 +97,7 @@ def_kwargs_bilqr = (:(; transfer_to_bicg::Bool = true), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_bilqr = mapreduce(extract_parameters, vcat, def_kwargs_bilqr) +def_kwargs_bilqr = extract_parameters.(def_kwargs_bilqr) args_bilqr = (:A, :b, :c) optargs_bilqr = (:x0, :y0) diff --git a/src/block_gmres.jl b/src/block_gmres.jl index 13985644c..5b9c14f31 100644 --- a/src/block_gmres.jl +++ b/src/block_gmres.jl @@ -84,7 +84,7 @@ def_kwargs_block_gmres = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_block_gmres = mapreduce(extract_parameters, vcat, def_kwargs_block_gmres) +def_kwargs_block_gmres = extract_parameters.(def_kwargs_block_gmres) args_block_gmres = (:A, :B) optargs_block_gmres = (:X0,) diff --git a/src/car.jl b/src/car.jl index 9deda247a..a295a63ab 100644 --- a/src/car.jl +++ b/src/car.jl @@ -88,7 +88,7 @@ def_kwargs_car = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_car = mapreduce(extract_parameters, vcat, def_kwargs_car) +def_kwargs_car = extract_parameters.(def_kwargs_car) args_car = (:A, :b) optargs_car = (:x0,) diff --git a/src/cg.jl b/src/cg.jl index 3b21ae197..29cd813ad 100644 --- a/src/cg.jl +++ b/src/cg.jl @@ -98,7 +98,7 @@ def_kwargs_cg = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_cg = mapreduce(extract_parameters, vcat, def_kwargs_cg) +def_kwargs_cg = extract_parameters.(def_kwargs_cg) args_cg = (:A, :b) optargs_cg = (:x0,) diff --git a/src/cg_lanczos.jl b/src/cg_lanczos.jl index c86053826..08dda05c5 100644 --- a/src/cg_lanczos.jl +++ b/src/cg_lanczos.jl @@ -94,7 +94,7 @@ def_kwargs_cg_lanczos = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_cg_lanczos = mapreduce(extract_parameters, vcat, def_kwargs_cg_lanczos) +def_kwargs_cg_lanczos = extract_parameters.(def_kwargs_cg_lanczos) args_cg_lanczos = (:A, :b) optargs_cg_lanczos = (:x0,) diff --git a/src/cg_lanczos_shift.jl b/src/cg_lanczos_shift.jl index e47c882e6..43cebeeb8 100644 --- a/src/cg_lanczos_shift.jl +++ b/src/cg_lanczos_shift.jl @@ -88,7 +88,7 @@ def_kwargs_cg_lanczos_shift = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_cg_lanczos_shift = mapreduce(extract_parameters, vcat, def_kwargs_cg_lanczos_shift) +def_kwargs_cg_lanczos_shift = extract_parameters.(def_kwargs_cg_lanczos_shift) args_cg_lanczos_shift = (:A, :b, :shifts) kwargs_cg_lanczos_shift = (:M, :ldiv, :check_curvature, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/cgls.jl b/src/cgls.jl index 3e3034aa1..72baa9e9d 100644 --- a/src/cgls.jl +++ b/src/cgls.jl @@ -111,7 +111,7 @@ def_kwargs_cgls = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_cgls = mapreduce(extract_parameters, vcat, def_kwargs_cgls) +def_kwargs_cgls = extract_parameters.(def_kwargs_cgls) args_cgls = (:A, :b) kwargs_cgls = (:M, :ldiv, :radius, :λ, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/cgne.jl b/src/cgne.jl index d3589051b..617648753 100644 --- a/src/cgne.jl +++ b/src/cgne.jl @@ -116,7 +116,7 @@ def_kwargs_cgne = (:(; N = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_cgne = mapreduce(extract_parameters, vcat, def_kwargs_cgne) +def_kwargs_cgne = extract_parameters.(def_kwargs_cgne) args_cgne = (:A, :b) kwargs_cgne = (:N, :ldiv, :λ, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/cgs.jl b/src/cgs.jl index f083f4dd7..49acf7168 100644 --- a/src/cgs.jl +++ b/src/cgs.jl @@ -107,7 +107,7 @@ def_kwargs_cgs = (:(; c::AbstractVector{FC} = b ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_cgs = mapreduce(extract_parameters, vcat, def_kwargs_cgs) +def_kwargs_cgs = extract_parameters.(def_kwargs_cgs) args_cgs = (:A, :b) optargs_cgs = (:x0,) diff --git a/src/cr.jl b/src/cr.jl index 2a5f9527a..7ab8aa492 100644 --- a/src/cr.jl +++ b/src/cr.jl @@ -105,7 +105,7 @@ def_kwargs_cr = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_cr = mapreduce(extract_parameters, vcat, def_kwargs_cr) +def_kwargs_cr = extract_parameters.(def_kwargs_cr) args_cr = (:A, :b) optargs_cr = (:x0,) diff --git a/src/craig.jl b/src/craig.jl index 41f2d087d..26ecc0a4c 100644 --- a/src/craig.jl +++ b/src/craig.jl @@ -156,7 +156,7 @@ def_kwargs_craig = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_craig = mapreduce(extract_parameters, vcat, def_kwargs_craig) +def_kwargs_craig = extract_parameters.(def_kwargs_craig) args_craig = (:A, :b) kwargs_craig = (:M, :N, :ldiv, :transfer_to_lsqr, :sqd, :λ, :btol, :conlim, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/craigmr.jl b/src/craigmr.jl index 1472b897a..32c862ed6 100644 --- a/src/craigmr.jl +++ b/src/craigmr.jl @@ -143,7 +143,7 @@ def_kwargs_craigmr = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_craigmr = mapreduce(extract_parameters, vcat, def_kwargs_craigmr) +def_kwargs_craigmr = extract_parameters.(def_kwargs_craigmr) args_craigmr = (:A, :b) kwargs_craigmr = (:M, :N, :ldiv, :sqd, :λ, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/crls.jl b/src/crls.jl index 62d1d11d4..16511797c 100644 --- a/src/crls.jl +++ b/src/crls.jl @@ -102,7 +102,7 @@ def_kwargs_crls = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_crls = mapreduce(extract_parameters, vcat, def_kwargs_crls) +def_kwargs_crls = extract_parameters.(def_kwargs_crls) args_crls = (:A, :b) kwargs_crls = (:M, :ldiv, :radius, :λ, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/crmr.jl b/src/crmr.jl index 34bb9dd4d..097794e9f 100644 --- a/src/crmr.jl +++ b/src/crmr.jl @@ -114,7 +114,7 @@ def_kwargs_crmr = (:(; N = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_crmr = mapreduce(extract_parameters, vcat, def_kwargs_crmr) +def_kwargs_crmr = extract_parameters.(def_kwargs_crmr) args_crmr = (:A, :b) kwargs_crmr = (:N, :ldiv, :λ, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/diom.jl b/src/diom.jl index 72ce462f6..1b943960c 100644 --- a/src/diom.jl +++ b/src/diom.jl @@ -102,7 +102,7 @@ def_kwargs_diom = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_diom = mapreduce(extract_parameters, vcat, def_kwargs_diom) +def_kwargs_diom = extract_parameters.(def_kwargs_diom) args_diom = (:A, :b) optargs_diom = (:x0,) diff --git a/src/dqgmres.jl b/src/dqgmres.jl index 4c1e52b37..021285a09 100644 --- a/src/dqgmres.jl +++ b/src/dqgmres.jl @@ -102,7 +102,7 @@ def_kwargs_dqgmres = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_dqgmres = mapreduce(extract_parameters, vcat, def_kwargs_dqgmres) +def_kwargs_dqgmres = extract_parameters.(def_kwargs_dqgmres) args_dqgmres = (:A, :b) optargs_dqgmres = (:x0,) diff --git a/src/fgmres.jl b/src/fgmres.jl index 0972f9274..ceb69f251 100644 --- a/src/fgmres.jl +++ b/src/fgmres.jl @@ -105,7 +105,7 @@ def_kwargs_fgmres = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_fgmres = mapreduce(extract_parameters, vcat, def_kwargs_fgmres) +def_kwargs_fgmres = extract_parameters.(def_kwargs_fgmres) args_fgmres = (:A, :b) optargs_fgmres = (:x0,) diff --git a/src/fom.jl b/src/fom.jl index c27485f2f..2a6d31a29 100644 --- a/src/fom.jl +++ b/src/fom.jl @@ -98,7 +98,7 @@ def_kwargs_fom = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_fom = mapreduce(extract_parameters, vcat, def_kwargs_fom) +def_kwargs_fom = extract_parameters.(def_kwargs_fom) args_fom = (:A, :b) optargs_fom = (:x0,) diff --git a/src/gmres.jl b/src/gmres.jl index a172be6d9..3864fdb79 100644 --- a/src/gmres.jl +++ b/src/gmres.jl @@ -98,7 +98,7 @@ def_kwargs_gmres = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_gmres = mapreduce(extract_parameters, vcat, def_kwargs_gmres) +def_kwargs_gmres = extract_parameters.(def_kwargs_gmres) args_gmres = (:A, :b) optargs_gmres = (:x0,) diff --git a/src/gpmr.jl b/src/gpmr.jl index b47d9d32e..07a61fd85 100644 --- a/src/gpmr.jl +++ b/src/gpmr.jl @@ -141,7 +141,7 @@ def_kwargs_gpmr = (:(; C = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_gpmr = mapreduce(extract_parameters, vcat, def_kwargs_gpmr) +def_kwargs_gpmr = extract_parameters.(def_kwargs_gpmr) args_gpmr = (:A, :B, :b, :c) optargs_gpmr = (:x0, :y0) diff --git a/src/krylov_utils.jl b/src/krylov_utils.jl index 239e56b75..488ee7392 100644 --- a/src/krylov_utils.jl +++ b/src/krylov_utils.jl @@ -443,6 +443,6 @@ Implementation suggested by Mitchell J. O'Sullivan (@mosullivan93). function extract_parameters(ex::Expr) Meta.isexpr(ex, :tuple, 1) && Meta.isexpr((@inbounds p = ex.args[1]), :parameters) && - all(Base.Docs.validcall, p.args) || throw(ArgumentError("Given expression is not a kw parameter tuple [e.g. :(; x)]: $ex")) - return p.args + Base.Docs.validcall(p.args[]) || throw(ArgumentError("Given expression is not a kw parameter tuple [e.g. :(; x)]: $ex")) + return p.args[] end diff --git a/src/lnlq.jl b/src/lnlq.jl index 3ba4f1338..cff744526 100644 --- a/src/lnlq.jl +++ b/src/lnlq.jl @@ -150,7 +150,7 @@ def_kwargs_lnlq = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_lnlq = mapreduce(extract_parameters, vcat, def_kwargs_lnlq) +def_kwargs_lnlq = extract_parameters.(def_kwargs_lnlq) args_lnlq = (:A, :b) kwargs_lnlq = (:M, :N, :ldiv, :transfer_to_craig, :sqd, :λ, :σ, :utolx, :utoly, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/lslq.jl b/src/lslq.jl index 3a549207e..cec6b9b16 100644 --- a/src/lslq.jl +++ b/src/lslq.jl @@ -176,7 +176,7 @@ def_kwargs_lslq = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_lslq = mapreduce(extract_parameters, vcat, def_kwargs_lslq) +def_kwargs_lslq = extract_parameters.(def_kwargs_lslq) args_lslq = (:A, :b) kwargs_lslq = (:M, :N, :ldiv, :transfer_to_lsqr, :sqd, :λ, :σ, :etol, :utol, :btol, :conlim, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/lsmr.jl b/src/lsmr.jl index 1e28c3b22..d7ee78d28 100644 --- a/src/lsmr.jl +++ b/src/lsmr.jl @@ -153,7 +153,7 @@ def_kwargs_lsmr = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_lsmr = mapreduce(extract_parameters, vcat, def_kwargs_lsmr) +def_kwargs_lsmr = extract_parameters.(def_kwargs_lsmr) args_lsmr = (:A, :b) kwargs_lsmr = (:M, :N, :ldiv, :sqd, :λ, :radius, :etol, :axtol, :btol, :conlim, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/lsqr.jl b/src/lsqr.jl index 94622971e..a8031468b 100644 --- a/src/lsqr.jl +++ b/src/lsqr.jl @@ -149,7 +149,7 @@ def_kwargs_lsqr = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_lsqr = mapreduce(extract_parameters, vcat, def_kwargs_lsqr) +def_kwargs_lsqr = extract_parameters.(def_kwargs_lsqr) args_lsqr = (:A, :b) kwargs_lsqr = (:M, :N, :ldiv, :sqd, :λ, :radius, :etol, :axtol, :btol, :conlim, :atol, :rtol, :itmax, :timemax, :verbose, :history, :callback, :iostream) diff --git a/src/minares.jl b/src/minares.jl index 5da0b5251..8ffbe2fe3 100644 --- a/src/minares.jl +++ b/src/minares.jl @@ -93,7 +93,7 @@ def_kwargs_minares = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_minares = mapreduce(extract_parameters, vcat, def_kwargs_minares) +def_kwargs_minares = extract_parameters.(def_kwargs_minares) args_minares = (:A, :b) optargs_minares = (:x0,) diff --git a/src/minres.jl b/src/minres.jl index 2e0dd114b..14bbc1769 100644 --- a/src/minres.jl +++ b/src/minres.jl @@ -120,7 +120,7 @@ def_kwargs_minres = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_minres = mapreduce(extract_parameters, vcat, def_kwargs_minres) +def_kwargs_minres = extract_parameters.(def_kwargs_minres) args_minres = (:A, :b) optargs_minres = (:x0,) diff --git a/src/minres_qlp.jl b/src/minres_qlp.jl index 6f5f79f70..9ba334c05 100644 --- a/src/minres_qlp.jl +++ b/src/minres_qlp.jl @@ -102,7 +102,7 @@ def_kwargs_minres_qlp = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_minres_qlp = mapreduce(extract_parameters, vcat, def_kwargs_minres_qlp) +def_kwargs_minres_qlp = extract_parameters.(def_kwargs_minres_qlp) args_minres_qlp = (:A, :b) optargs_minres_qlp = (:x0,) diff --git a/src/qmr.jl b/src/qmr.jl index 66517f7e3..08ce42680 100644 --- a/src/qmr.jl +++ b/src/qmr.jl @@ -105,7 +105,7 @@ def_kwargs_qmr = (:(; c::AbstractVector{FC} = b ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_qmr = mapreduce(extract_parameters, vcat, def_kwargs_qmr) +def_kwargs_qmr = extract_parameters.(def_kwargs_qmr) args_qmr = (:A, :b) optargs_qmr = (:x0,) diff --git a/src/symmlq.jl b/src/symmlq.jl index bfc866944..add0ea64a 100644 --- a/src/symmlq.jl +++ b/src/symmlq.jl @@ -106,7 +106,7 @@ def_kwargs_symmlq = (:(; M = I ), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_symmlq = mapreduce(extract_parameters, vcat, def_kwargs_symmlq) +def_kwargs_symmlq = extract_parameters.(def_kwargs_symmlq) args_symmlq = (:A, :b) optargs_symmlq = (:x0,) diff --git a/src/tricg.jl b/src/tricg.jl index 93b475623..ea3904914 100644 --- a/src/tricg.jl +++ b/src/tricg.jl @@ -127,7 +127,7 @@ def_kwargs_tricg = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_tricg = mapreduce(extract_parameters, vcat, def_kwargs_tricg) +def_kwargs_tricg = extract_parameters.(def_kwargs_tricg) args_tricg = (:A, :b, :c) optargs_tricg = (:x0, :y0) diff --git a/src/trilqr.jl b/src/trilqr.jl index 472234def..cf6bc5a84 100644 --- a/src/trilqr.jl +++ b/src/trilqr.jl @@ -96,7 +96,7 @@ def_kwargs_trilqr = (:(; transfer_to_usymcg::Bool = true), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_trilqr = mapreduce(extract_parameters, vcat, def_kwargs_trilqr) +def_kwargs_trilqr = extract_parameters.(def_kwargs_trilqr) args_trilqr = (:A, :b, :c) optargs_trilqr = (:x0, :y0) diff --git a/src/trimr.jl b/src/trimr.jl index e30e2cb01..640624c31 100644 --- a/src/trimr.jl +++ b/src/trimr.jl @@ -128,7 +128,7 @@ def_kwargs_trimr = (:(; M = I ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_trimr = mapreduce(extract_parameters, vcat, def_kwargs_trimr) +def_kwargs_trimr = extract_parameters.(def_kwargs_trimr) args_trimr = (:A, :b, :c) optargs_trimr = (:x0, :y0) diff --git a/src/usymlq.jl b/src/usymlq.jl index 711e60938..be6f8fe04 100644 --- a/src/usymlq.jl +++ b/src/usymlq.jl @@ -105,7 +105,7 @@ def_kwargs_usymlq = (:(; transfer_to_usymcg::Bool = true), :(; callback = solver -> false ), :(; iostream::IO = kstdout )) -def_kwargs_usymlq = mapreduce(extract_parameters, vcat, def_kwargs_usymlq) +def_kwargs_usymlq = extract_parameters.(def_kwargs_usymlq) args_usymlq = (:A, :b, :c) optargs_usymlq = (:x0,) diff --git a/src/usymqr.jl b/src/usymqr.jl index 3c81ba444..fe6832c12 100644 --- a/src/usymqr.jl +++ b/src/usymqr.jl @@ -108,7 +108,7 @@ def_kwargs_usymqr = (:(; atol::T = √eps(T) ), :(; callback = solver -> false), :(; iostream::IO = kstdout )) -def_kwargs_usymqr = mapreduce(extract_parameters, vcat, def_kwargs_usymqr) +def_kwargs_usymqr = extract_parameters.(def_kwargs_usymqr) args_usymqr = (:A, :b, :c) optargs_usymqr = (:x0,)