Stats Types
Krylov.KrylovStats — TypeAbstract type for statistics returned by a solver
Krylov.SimpleStats — TypeType for statistics returned by the majority of Krylov solvers, the attributes are:
- niter
- solved
- inconsistent
- residuals
- Aresiduals
- Acond
- timer
- status
Krylov.LanczosStats — TypeType for statistics returned by CG-LANCZOS, the attributes are:
- niter
- solved
- residuals
- indefinite
- Anorm
- Acond
- timer
- status
Krylov.LanczosShiftStats — TypeType for statistics returned by CG-LANCZOS with shifts, the attributes are:
- niter
- solved
- residuals
- indefinite
- Anorm
- Acond
- timer
- status
Krylov.SymmlqStats — TypeType for statistics returned by SYMMLQ, the attributes are:
- niter
- solved
- residuals
- residualscg
- errors
- errorscg
- Anorm
- Acond
- timer
- status
Krylov.AdjointStats — TypeType for statistics returned by adjoint systems solvers BiLQR and TriLQR, the attributes are:
- niter
- solved_primal
- solved_dual
- residuals_primal
- residuals_dual
- timer
- status
Krylov.LNLQStats — TypeType for statistics returned by the LNLQ method, the attributes are:
- niter
- solved
- residuals
- errorwithbnd
- errorbndx
- errorbndy
- timer
- status
Krylov.LSLQStats — TypeType for statistics returned by the LSLQ method, the attributes are:
- niter
- solved
- inconsistent
- residuals
- Aresiduals
- err_lbnds
- errorwithbnd
- errubndslq
- errubndscg
- timer
- status
Krylov.LsmrStats — TypeType for statistics returned by LSMR. The attributes are:
- niter
- solved
- inconsistent
- residuals
- Aresiduals
- Acond
- Anorm
- xNorm
- timer
- status
Solver Types
Krylov.KrylovSolver — TypeAbstract type for using Krylov solvers in-place
Krylov.BlockKrylovSolver — TypeAbstract type for using block Krylov solvers in-place
Krylov.MinresSolver — TypeType for storing the vectors required by the in-place version of MINRES.
The outer constructors
solver = MinresSolver(m, n, S; window :: Int=5)
solver = MinresSolver(A, b; window :: Int=5)may be used in order to create these vectors.
Krylov.MinaresSolver — TypeType for storing the vectors required by the in-place version of MINARES.
The outer constructors
solver = MinaresSolver(m, n, S)
solver = MinaresSolver(A, b)may be used in order to create these vectors.
Krylov.CgSolver — TypeType for storing the vectors required by the in-place version of CG.
The outer constructors
solver = CgSolver(m, n, S)
solver = CgSolver(A, b)may be used in order to create these vectors.
Krylov.CrSolver — TypeType for storing the vectors required by the in-place version of CR.
The outer constructors
solver = CrSolver(m, n, S)
solver = CrSolver(A, b)may be used in order to create these vectors.
Krylov.CarSolver — TypeType for storing the vectors required by the in-place version of CAR.
The outer constructors
solver = CarSolver(m, n, S)
solver = CarSolver(A, b)may be used in order to create these vectors.
Krylov.SymmlqSolver — TypeType for storing the vectors required by the in-place version of SYMMLQ.
The outer constructors
solver = SymmlqSolver(m, n, S)
solver = SymmlqSolver(A, b)may be used in order to create these vectors.
Krylov.CgLanczosSolver — TypeType for storing the vectors required by the in-place version of CG-LANCZOS.
The outer constructors
solver = CgLanczosSolver(m, n, S)
solver = CgLanczosSolver(A, b)may be used in order to create these vectors.
Krylov.CgLanczosShiftSolver — TypeType for storing the vectors required by the in-place version of CG-LANCZOS-SHIFT.
The outer constructors
solver = CgLanczosShiftSolver(m, n, nshifts, S)
solver = CgLanczosShiftSolver(A, b, nshifts)may be used in order to create these vectors.
Krylov.MinresQlpSolver — TypeType for storing the vectors required by the in-place version of MINRES-QLP.
The outer constructors
solver = MinresQlpSolver(m, n, S)
solver = MinresQlpSolver(A, b)may be used in order to create these vectors.
Krylov.DiomSolver — TypeType for storing the vectors required by the in-place version of DIOM.
The outer constructors
solver = DiomSolver(m, n, memory, S)
solver = DiomSolver(A, b, memory = 20)may be used in order to create these vectors. memory is set to n if the value given is larger than n. memory is an optional argument in the second constructor.
Krylov.FomSolver — TypeType for storing the vectors required by the in-place version of FOM.
The outer constructors
solver = FomSolver(m, n, memory, S)
solver = FomSolver(A, b, memory = 20)may be used in order to create these vectors. memory is set to n if the value given is larger than n. memory is an optional argument in the second constructor.
Krylov.DqgmresSolver — TypeType for storing the vectors required by the in-place version of DQGMRES.
The outer constructors
solver = DqgmresSolver(m, n, memory, S)
solver = DqgmresSolver(A, b, memory = 20)may be used in order to create these vectors. memory is set to n if the value given is larger than n. memory is an optional argument in the second constructor.
Krylov.GmresSolver — TypeType for storing the vectors required by the in-place version of GMRES.
The outer constructors
solver = GmresSolver(m, n, memory, S)
solver = GmresSolver(A, b, memory = 20)may be used in order to create these vectors. memory is set to n if the value given is larger than n. memory is an optional argument in the second constructor.
Krylov.UsymlqSolver — TypeType for storing the vectors required by the in-place version of USYMLQ.
The outer constructors
solver = UsymlqSolver(m, n, S)
solver = UsymlqSolver(A, b)may be used in order to create these vectors.
Krylov.UsymqrSolver — TypeType for storing the vectors required by the in-place version of USYMQR.
The outer constructors
solver = UsymqrSolver(m, n, S)
solver = UsymqrSolver(A, b)may be used in order to create these vectors.
Krylov.TricgSolver — TypeType for storing the vectors required by the in-place version of TRICG.
The outer constructors
solver = TricgSolver(m, n, S)
solver = TricgSolver(A, b)may be used in order to create these vectors.
Krylov.TrimrSolver — TypeType for storing the vectors required by the in-place version of TRIMR.
The outer constructors
solver = TrimrSolver(m, n, S)
solver = TrimrSolver(A, b)may be used in order to create these vectors.
Krylov.TrilqrSolver — TypeType for storing the vectors required by the in-place version of TRILQR.
The outer constructors
solver = TrilqrSolver(m, n, S)
solver = TrilqrSolver(A, b)may be used in order to create these vectors.
Krylov.CgsSolver — TypeType for storing the vectors required by the in-place version of CGS.
The outer constructorss
solver = CgsSolver(m, n, S)
solver = CgsSolver(A, b)may be used in order to create these vectors.
Krylov.BicgstabSolver — TypeType for storing the vectors required by the in-place version of BICGSTAB.
The outer constructors
solver = BicgstabSolver(m, n, S)
solver = BicgstabSolver(A, b)may be used in order to create these vectors.
Krylov.BilqSolver — TypeType for storing the vectors required by the in-place version of BILQ.
The outer constructors
solver = BilqSolver(m, n, S)
solver = BilqSolver(A, b)may be used in order to create these vectors.
Krylov.QmrSolver — TypeType for storing the vectors required by the in-place version of QMR.
The outer constructors
solver = QmrSolver(m, n, S)
solver = QmrSolver(A, b)may be used in order to create these vectors.
Krylov.BilqrSolver — TypeType for storing the vectors required by the in-place version of BILQR.
The outer constructors
solver = BilqrSolver(m, n, S)
solver = BilqrSolver(A, b)may be used in order to create these vectors.
Krylov.CglsSolver — TypeType for storing the vectors required by the in-place version of CGLS.
The outer constructors
solver = CglsSolver(m, n, S)
solver = CglsSolver(A, b)may be used in order to create these vectors.
Krylov.CglsLanczosShiftSolver — TypeWorkspace for the in-place version of CGLS-LANCZOS-SHIFT.
The outer constructors:
solver = CglsLanczosShiftSolver(m, n, nshifts, S)
solver = CglsLanczosShiftSolver(A, b, nshifts)can be used to initialize this workspace.
Krylov.CrlsSolver — TypeType for storing the vectors required by the in-place version of CRLS.
The outer constructors
solver = CrlsSolver(m, n, S)
solver = CrlsSolver(A, b)may be used in order to create these vectors.
Krylov.CgneSolver — TypeType for storing the vectors required by the in-place version of CGNE.
The outer constructors
solver = CgneSolver(m, n, S)
solver = CgneSolver(A, b)may be used in order to create these vectors.
Krylov.CrmrSolver — TypeType for storing the vectors required by the in-place version of CRMR.
The outer constructors
solver = CrmrSolver(m, n, S)
solver = CrmrSolver(A, b)may be used in order to create these vectors.
Krylov.LslqSolver — TypeType for storing the vectors required by the in-place version of LSLQ.
The outer constructors
solver = LslqSolver(m, n, S)
solver = LslqSolver(A, b)may be used in order to create these vectors.
Krylov.LsqrSolver — TypeType for storing the vectors required by the in-place version of LSQR.
The outer constructors
solver = LsqrSolver(m, n, S)
solver = LsqrSolver(A, b)may be used in order to create these vectors.
Krylov.LsmrSolver — TypeType for storing the vectors required by the in-place version of LSMR.
The outer constructors
solver = LsmrSolver(m, n, S)
solver = LsmrSolver(A, b)may be used in order to create these vectors.
Krylov.LnlqSolver — TypeType for storing the vectors required by the in-place version of LNLQ.
The outer constructors
solver = LnlqSolver(m, n, S)
solver = LnlqSolver(A, b)may be used in order to create these vectors.
Krylov.CraigSolver — TypeType for storing the vectors required by the in-place version of CRAIG.
The outer constructors
solver = CraigSolver(m, n, S)
solver = CraigSolver(A, b)may be used in order to create these vectors.
Krylov.CraigmrSolver — TypeType for storing the vectors required by the in-place version of CRAIGMR.
The outer constructors
solver = CraigmrSolver(m, n, S)
solver = CraigmrSolver(A, b)may be used in order to create these vectors.
Krylov.GpmrSolver — TypeType for storing the vectors required by the in-place version of GPMR.
The outer constructors
solver = GpmrSolver(m, n, memory, S)
solver = GpmrSolver(A, b, memory = 20)may be used in order to create these vectors. memory is set to n + m if the value given is larger than n + m. memory is an optional argument in the second constructor.
Krylov.FgmresSolver — TypeType for storing the vectors required by the in-place version of FGMRES.
The outer constructors
solver = FgmresSolver(m, n, memory, S)
solver = FgmresSolver(A, b, memory = 20)may be used in order to create these vectors. memory is set to n if the value given is larger than n. memory is an optional argument in the second constructor.
Krylov.BlockGmresSolver — TypeType for storing the vectors required by the in-place version of BLOCK-GMRES.
The outer constructors
solver = BlockGmresSolver(m, n, p, memory, SV, SM)
solver = BlockGmresSolver(A, B, memory = 5)may be used in order to create these vectors. memory is set to div(n,p) if the value given is larger than div(n,p). memory is an optional argument in the second constructor.
Utilities
Krylov.roots_quadratic — Functionroots = roots_quadratic(q₂, q₁, q₀; nitref)Find the real roots of the quadratic
q(x) = q₂ x² + q₁ x + q₀,where q₂, q₁ and q₀ are real. Care is taken to avoid numerical cancellation. Optionally, nitref steps of iterative refinement may be performed to improve accuracy. By default, nitref=1.
Krylov.sym_givens — Function(c, s, ρ) = sym_givens(a, b)Numerically stable symmetric Givens reflection. Given a and b reals, return (c, s, ρ) such that
[ c s ] [ a ] = [ ρ ]
[ s -c ] [ b ] = [ 0 ].Numerically stable symmetric Givens reflection. Given a and b complexes, return (c, s, ρ) with c real and (s, ρ) complexes such that
[ c s ] [ a ] = [ ρ ]
[ s̅ -c ] [ b ] = [ 0 ].Krylov.to_boundary — Functionroots = to_boundary(n, x, d, radius; flip, xNorm2, dNorm2)Given a trust-region radius radius, a vector x lying inside the trust-region and a direction d, return σ1 and σ2 such that
‖x + σi d‖ = radius, i = 1, 2in the Euclidean norm. n is the length of vectors x and d. If known, ‖x‖² and ‖d‖² may be supplied with xNorm2 and dNorm2.
If flip is set to true, σ1 and σ2 are computed such that
‖x - σi d‖ = radius, i = 1, 2.Krylov.vec2str — Functions = vec2str(x; ndisp)Display an array in the form
[ -3.0e-01 -5.1e-01 1.9e-01 ... -2.3e-01 -4.4e-01 2.4e-01 ]with (ndisp - 1)/2 elements on each side.
Krylov.ktypeof — FunctionS = ktypeof(v)Return the most relevant storage type S based on the type of v.
Krylov.kzeros — Functionv = kzeros(S, n)Create a vector of storage type S of length n only composed of zero.
Krylov.kones — Functionv = kones(S, n)Create a vector of storage type S of length n only composed of one.
Krylov.vector_to_matrix — FunctionM = vector_to_matrix(S)Return the dense matrix storage type M related to the dense vector storage type S.
Krylov.matrix_to_vector — FunctionS = matrix_to_vector(M)Return the dense vector storage type S related to the dense matrix storage type M.