diff --git a/previews/PR800/.documenter-siteinfo.json b/previews/PR800/.documenter-siteinfo.json
index 0877ff34c..2e762fc64 100644
--- a/previews/PR800/.documenter-siteinfo.json
+++ b/previews/PR800/.documenter-siteinfo.json
@@ -1 +1 @@
-{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-09-24T04:33:44","documenter_version":"1.0.1"}}
\ No newline at end of file
+{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-09-24T05:17:25","documenter_version":"1.0.1"}}
\ No newline at end of file
diff --git a/previews/PR800/api/index.html b/previews/PR800/api/index.html
index 3dd49aa02..b3d673bef 100644
--- a/previews/PR800/api/index.html
+++ b/previews/PR800/api/index.html
@@ -1,39 +1,39 @@
-
API · Krylov.jl Abstract type for statistics returned by a solver
source Type for statistics returned by the majority of Krylov solvers, the attributes are:
niter solved inconsistent residuals Aresiduals Acond timer status source Type for statistics returned by CG-LANCZOS, the attributes are:
niter solved residuals indefinite Anorm Acond timer status source Type for statistics returned by CG-LANCZOS with shifts, the attributes are:
niter solved residuals indefinite Anorm Acond timer status source Type for statistics returned by SYMMLQ, the attributes are:
niter solved residuals residualscg errors errorscg Anorm Acond timer status source Type for statistics returned by adjoint systems solvers BiLQR and TriLQR, the attributes are:
niter solved_primal solved_dual residuals_primal residuals_dual timer status source Type for statistics returned by the LNLQ method, the attributes are:
niter solved residuals errorwith bnd errorbnd x errorbnd y timer status source Type for statistics returned by the LSLQ method, the attributes are:
niter solved inconsistent residuals Aresiduals err_lbnds errorwith bnd errubnds lq errubnds cg timer status source Type for statistics returned by LSMR. The attributes are:
niter solved inconsistent residuals Aresiduals Acond Anorm xNorm timer status source Abstract type for using Krylov solvers in-place
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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
.
source Type 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
.
source Type 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
.
source Type 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
.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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
.
source Type 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
.
source roots = 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
.
source (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 ].
source 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 ].
source roots = 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, 2
in 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.
source s = 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.
source S = ktypeof(v)
Return the most relevant storage type S
based on the type of v
.
source v = kzeros(S, n)
Create a vector of storage type S
of length n
only composed of zero.
source v = kones(S, n)
Create a vector of storage type S
of length n
only composed of one.
source M = vector_to_matrix(S)
Return the dense matrix storage type M
related to the dense vector storage type S
.
source S = matrix_to_vector(M)
Return the dense vector storage type S
related to the dense matrix storage type M
.
source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.0.1 on Sunday 24 September 2023 . Using Julia version 1.9.3.
+API · Krylov.jl Abstract type for statistics returned by a solver
source Type for statistics returned by the majority of Krylov solvers, the attributes are:
niter solved inconsistent residuals Aresiduals Acond timer status source Type for statistics returned by CG-LANCZOS, the attributes are:
niter solved residuals indefinite Anorm Acond timer status source Type for statistics returned by CG-LANCZOS with shifts, the attributes are:
niter solved residuals indefinite Anorm Acond timer status source Type for statistics returned by SYMMLQ, the attributes are:
niter solved residuals residualscg errors errorscg Anorm Acond timer status source Type for statistics returned by adjoint systems solvers BiLQR and TriLQR, the attributes are:
niter solved_primal solved_dual residuals_primal residuals_dual timer status source Type for statistics returned by the LNLQ method, the attributes are:
niter solved residuals errorwith bnd errorbnd x errorbnd y timer status source Type for statistics returned by the LSLQ method, the attributes are:
niter solved inconsistent residuals Aresiduals err_lbnds errorwith bnd errubnds lq errubnds cg timer status source Type for statistics returned by LSMR. The attributes are:
niter solved inconsistent residuals Aresiduals Acond Anorm xNorm timer status source Abstract type for using Krylov solvers in-place
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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
.
source Type 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
.
source Type 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
.
source Type 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
.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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.
source Type 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
.
source Type 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
.
source roots = 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
.
source (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 ].
source 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 ].
source roots = 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, 2
in 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.
source s = 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.
source S = ktypeof(v)
Return the most relevant storage type S
based on the type of v
.
source v = kzeros(S, n)
Create a vector of storage type S
of length n
only composed of zero.
source v = kones(S, n)
Create a vector of storage type S
of length n
only composed of one.
source M = vector_to_matrix(S)
Return the dense matrix storage type M
related to the dense vector storage type S
.
source S = matrix_to_vector(M)
Return the dense vector storage type S
related to the dense matrix storage type M
.
source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.0.1 on Sunday 24 September 2023 . Using Julia version 1.9.3.
diff --git a/previews/PR800/block_processes/index.html b/previews/PR800/block_processes/index.html
index 1a48d5af7..0c82babcf 100644
--- a/previews/PR800/block_processes/index.html
+++ b/previews/PR800/block_processes/index.html
@@ -9,7 +9,7 @@
& \ddots & \ddots & \Psi_k^H \\
& & \Psi_k & \Omega_k \\
& & & \Psi_{k+1}
-\end{bmatrix}.\]The function hermitian_lanczos
returns $V_{k+1}$ , $\Psi_1$ and $T_{k+1,k}$ .
V, Ψ, T = hermitian_lanczos(A, B, k)
Input arguments
A
: a linear operator that models an Hermitian matrix of dimension n;B
: a matrix of size n × p;k
: the number of iterations of the block Hermitian Lanczos process.Output arguments
V
: a dense n × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;T
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p.source If the vectors $b$ and $c$ in the non-Hermitian Lanczos process are replaced by matrices $B$ and $C$ with both $p$ columns, we can derive the block non-Hermitian Lanczos process.
After $k$ iterations of the block non-Hermitian Lanczos process, the situation may be summarized as
\[\begin{align*}
+\end{bmatrix}.\]
The function hermitian_lanczos
returns $V_{k+1}$ , $\Psi_1$ and $T_{k+1,k}$ .
V, Ψ, T = hermitian_lanczos(A, B, k)
Input arguments
A
: a linear operator that models an Hermitian matrix of dimension n;B
: a matrix of size n × p;k
: the number of iterations of the block Hermitian Lanczos process.Output arguments
V
: a dense n × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;T
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p.source If the vectors $b$ and $c$ in the non-Hermitian Lanczos process are replaced by matrices $B$ and $C$ with both $p$ columns, we can derive the block non-Hermitian Lanczos process.
After $k$ iterations of the block non-Hermitian Lanczos process, the situation may be summarized as
\[\begin{align*}
A V_k &= V_{k+1} T_{k+1,k}, \\
A^H U_k &= U_{k+1} T_{k,k+1}^H, \\
V_k^H U_k &= U_k^H V_k = I_{pk},
@@ -29,7 +29,7 @@
& \ddots & \ddots & \Psi_k^H \\
& & \Phi_k^H & \Omega_k^H \\
& & & \Phi_{k+1}^H
-\end{bmatrix}.\]
The function nonhermitian_lanczos
returns $V_{k+1}$ , $\Phi_1$ , $T_{k+1,k}$ , $U_{k+1}$ $\Phi_1^H$ and $T_{k,k+1}^H$ .
V, Ψ, T, U, Φᴴ, Tᴴ = nonhermitian_lanczos(A, B, C, k)
Input arguments
A
: a linear operator that models a sqᵤare matrix of dimension n;B
: a matrix of size n × p;C
: a matrix of size n × p;k
: the number of iterations of the block non-Hermitian Lanczos process.Output arguments
V
: a dense n × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;T
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p;U
: a dense n × p(k+1) matrix;Φᴴ
: a dense p × p upper triangular matrix;Tᴴ
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p.source If the vector $b$ in the Arnoldi process is replaced by a matrix $B$ with $p$ columns, we can derive the block Arnoldi process.
After $k$ iterations of the block Arnoldi process, the situation may be summarized as
\[\begin{align*}
+\end{bmatrix}.\]
The function nonhermitian_lanczos
returns $V_{k+1}$ , $\Psi_1$ , $T_{k+1,k}$ , $U_{k+1}$ $\Phi_1^H$ and $T_{k,k+1}^H$ .
V, Ψ, T, U, Φᴴ, Tᴴ = nonhermitian_lanczos(A, B, C, k)
Input arguments
A
: a linear operator that models a sqᵤare matrix of dimension n;B
: a matrix of size n × p;C
: a matrix of size n × p;k
: the number of iterations of the block non-Hermitian Lanczos process.Output arguments
V
: a dense n × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;T
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p;U
: a dense n × p(k+1) matrix;Φᴴ
: a dense p × p upper triangular matrix;Tᴴ
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p.source If the vector $b$ in the Arnoldi process is replaced by a matrix $B$ with $p$ columns, we can derive the block Arnoldi process.
After $k$ iterations of the block Arnoldi process, the situation may be summarized as
\[\begin{align*}
A V_k &= V_{k+1} H_{k+1,k}, \\
V_k^H V_k &= I_{pk},
\end{align*}\]
where $V_k$ is an orthonormal basis of the block Krylov subspace $\mathcal{K}_k^{\square}(A,B)$ ,
\[H_{k+1,k} =
@@ -39,7 +39,7 @@
& \ddots~ & \ddots & \Psi_{k-1,k} \\
& & \Psi_{k,k-1} & \Psi_{k,k} \\
& & & \Psi_{k+1,k}
-\end{bmatrix}.\]
The function arnoldi
returns $V_{k+1}$ , $\Gamma$ , and $H_{k+1,k}$ .
V, Γ, H = arnoldi(A, B, k; reorthogonalization=false)
Input arguments
A
: a linear operator that models a sqᵤare matrix of dimension n;B
: a matrix of size n × p;k
: the number of iterations of the block Arnoldi process.Keyword arguments
reorthogonalization
: reorthogonalize the new matrices of the block Krylov basis against all previous matrices.Output arguments
V
: a dense n × p(k+1) matrix;Γ
: a dense p × p upper triangular matrix;H
: a dense p(k+1) × pk block upper Hessenberg matrix with a lower bandwidth p.source If the vector $b$ in the Golub-Kahan process is replaced by a matrix $B$ with $p$ columns, we can derive the block Golub-Kahan process.
After $k$ iterations of the block Golub-Kahan process, the situation may be summarized as
\[\begin{align*}
+\end{bmatrix}.\]
The function arnoldi
returns $V_{k+1}$ , $\Gamma$ , and $H_{k+1,k}$ .
V, Γ, H = arnoldi(A, B, k; reorthogonalization=false)
Input arguments
A
: a linear operator that models a sqᵤare matrix of dimension n;B
: a matrix of size n × p;k
: the number of iterations of the block Arnoldi process.Keyword arguments
reorthogonalization
: reorthogonalize the new matrices of the block Krylov basis against all previous matrices.Output arguments
V
: a dense n × p(k+1) matrix;Γ
: a dense p × p upper triangular matrix;H
: a dense p(k+1) × pk block upper Hessenberg matrix with a lower bandwidth p.source If the vector $b$ in the Golub-Kahan process is replaced by a matrix $B$ with $p$ columns, we can derive the block Golub-Kahan process.
After $k$ iterations of the block Golub-Kahan process, the situation may be summarized as
\[\begin{align*}
A V_k &= U_{k+1} B_k, \\
A^H U_{k+1} &= V_{k+1} L_{k+1}^H, \\
V_k^H V_k &= U_k^H U_k = I_{pk},
@@ -59,7 +59,7 @@
& & \ddots & \Psi_k^H & \\
& & & \Omega_k^H & \Psi_{k+1}^H \\
& & & & \Omega_{k+1}^H \\
-\end{bmatrix}.\]
The function golub_kahan
returns $V_{k+1}$ , $U_{k+1}$ , $\Psi_1$ and $L_{k+1}$ .
V, U, Ψ, L = golub_kahan(A, B, k)
Input arguments
A
: a linear operator that models a matrix of dimension m × n;B
: a matrix of size m × p;k
: the number of iterations of the block Golub-Kahan process.Output arguments
V
: a dense n × p(k+1) matrix;U
: a dense m × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;L
: a sparse p(k+1) × p(k+1) block lower bidiagonal matrix with a lower bandwidth p.source If the vectors $b$ and $c$ in the Saunders-Simon-Yip process are replaced by matrices $B$ and $C$ with both $p$ columns, we can derive the block Saunders-Simon-Yip process.
After $k$ iterations of the block Saunders-Simon-Yip process, the situation may be summarized as
\[\begin{align*}
+\end{bmatrix}.\]
The function golub_kahan
returns $V_{k+1}$ , $U_{k+1}$ , $\Psi_1$ and $L_{k+1}$ .
V, U, Ψ, L = golub_kahan(A, B, k)
Input arguments
A
: a linear operator that models a matrix of dimension m × n;B
: a matrix of size m × p;k
: the number of iterations of the block Golub-Kahan process.Output arguments
V
: a dense n × p(k+1) matrix;U
: a dense m × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;L
: a sparse p(k+1) × p(k+1) block lower bidiagonal matrix with a lower bandwidth p.source If the vectors $b$ and $c$ in the Saunders-Simon-Yip process are replaced by matrices $B$ and $C$ with both $p$ columns, we can derive the block Saunders-Simon-Yip process.
After $k$ iterations of the block Saunders-Simon-Yip process, the situation may be summarized as
\[\begin{align*}
A U_k &= V_{k+1} T_{k+1,k}, \\
A^H V_k &= U_{k+1} T_{k,k+1}^H, \\
V_k^H V_k &= U_k^H U_k = I_{pk},
@@ -79,7 +79,7 @@
& \ddots & \ddots & \Psi_k^H \\
& & \Phi_k^H & \Omega_k^H \\
& & & \Phi_{k+1}^H
-\end{bmatrix}.\]
The function saunders_simon_yip
returns $V_{k+1}$ , $\Psi_1$ , $T_{k+1,k}$ , $U_{k+1}$ , $\Phi_1^H$ and $T_{k,k+1}^H$ .
V, Ψ, T, U, Φᴴ, Tᴴ = saunders_simon_yip(A, B, C, k)
Input arguments
A
: a linear operator that models a matrix of dimension m × n;B
: a matrix of size m × p;C
: a matrix of size n × p;k
: the number of iterations of the block Saunders-Simon-Yip process.Output arguments
V
: a dense m × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;T
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p;U
: a dense n × p(k+1) matrix;Φᴴ
: a dense p × p upper triangular matrix;Tᴴ
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p.source If the vectors $b$ and $c$ in the Montoison-Orban process are replaced by matrices $D$ and $C$ with both $p$ columns, we can derive the block Montoison-Orban process.
After $k$ iterations of the block Montoison-Orban process, the situation may be summarized as
\[\begin{align*}
+\end{bmatrix}.\]
The function saunders_simon_yip
returns $V_{k+1}$ , $\Psi_1$ , $T_{k+1,k}$ , $U_{k+1}$ , $\Phi_1^H$ and $T_{k,k+1}^H$ .
V, Ψ, T, U, Φᴴ, Tᴴ = saunders_simon_yip(A, B, C, k)
Input arguments
A
: a linear operator that models a matrix of dimension m × n;B
: a matrix of size m × p;C
: a matrix of size n × p;k
: the number of iterations of the block Saunders-Simon-Yip process.Output arguments
V
: a dense m × p(k+1) matrix;Ψ
: a dense p × p upper triangular matrix;T
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p;U
: a dense n × p(k+1) matrix;Φᴴ
: a dense p × p upper triangular matrix;Tᴴ
: a sparse p(k+1) × pk block tridiagonal matrix with a bandwidth p.source If the vectors $b$ and $c$ in the Montoison-Orban process are replaced by matrices $D$ and $C$ with both $p$ columns, we can derive the block Montoison-Orban process.
After $k$ iterations of the block Montoison-Orban process, the situation may be summarized as
\[\begin{align*}
A U_k &= V_{k+1} H_{k+1,k}, \\
B V_k &= U_{k+1} F_{k+1,k}, \\
V_k^H V_k &= U_k^H U_k = I_{pk},
@@ -99,4 +99,4 @@
& \ddots~ & \ddots & \Phi_{k-1,k} \\
& & \Phi_{k,k-1} & \Phi_{k,k} \\
& & & \Phi_{k+1,k}
-\end{bmatrix}.\]
The function montoison_orban
returns $V_{k+1}$ , $\Gamma$ , $H_{k+1,k}$ , $U_{k+1}$ , $\Lambda$ , and $F_{k+1,k}$ .
V, Γ, H, U, Λ, F = montoison_orban(A, B, D, C, k; reorthogonalization=false)
Input arguments
A
: a linear operator that models a matrix of dimension m × n;B
: a linear operator that models a matrix of dimension n × m;D
: a matrix of size m × p;C
: a matrix of size n × p;k
: the number of iterations of the block Montoison-Orban process.Keyword arguments
reorthogonalization
: reorthogonalize the new matrices of the block Krylov basis against all previous matrices.Output arguments
V
: a dense m × p(k+1) matrix;Γ
: a dense p × p upper triangular matrix;H
: a dense p(k+1) × pk block upper Hessenberg matrix with a lower bandwidth p;U
: a dense n × p(k+1) matrix;Λ
: a dense p × p upper triangular matrix;F
: a dense p(k+1) × pk block upper Hessenberg matrix with a lower bandwidth p.source
Theme
documenter-light documenter-dark Automatic (OS)
This document was generated with Documenter.jl version 1.0.1 on Sunday 24 September 2023 . Using Julia version 1.9.3.