stdlib_linalg_iterative_solvers#

See also the specification page: stdlib_linalg_iterative_solvers.

stdlib_linalg_iterative_solvers (module)#

workspace sizes: defined by the number of vectors used by the iterative solver. version: experimental

Specifications: stdlib_linalg_iterative_solvers

linop type holding the linear operator and its associated methods. The linop type is used to define the linear operator for the iterative solvers. version: experimental

Specifications: stdlib_linalg_iterative_solvers

solver_workspace type holding temporal array data for the iterative solvers. version: experimental

stdlib_solve_cg_kernel interface for the conjugate gradient method. Specifications: stdlib_linalg_iterative_solvers version: experimental

Specifications: stdlib_linalg_iterative_solvers version: experimental

stdlib_solve_pcg_kernel interface for the preconditionned conjugate gradient method. Specifications: stdlib_linalg_iterative_solvers version: experimental

stdlib_solve_bicgstab_kernel interface for the biconjugate gradient stabilized method. Specifications: stdlib_linalg_iterative_solvers version: experimental

stdlib_solve_gmres_kernel interface for the restarted generalized minimal residual method. Specifications: stdlib_linalg_iterative_solvers version: experimental

Specifications: stdlib_linalg_iterative_solvers version: experimental

Specifications: stdlib_linalg_iterative_solvers version: experimental

Specifications: stdlib_linalg_iterative_solvers

Types

stdlib_linop_sp_type (type)#

stdlib_linop_sp_type (type)
Attributes:
matvecprocedure(vector_sub_sp), nopass, pointer, Default = null()
inner_productprocedure(reduction_sub_sp), nopass, pointer, Default = default_dot_sp

stdlib_linop_dp_type (type)#

stdlib_linop_dp_type (type)
Attributes:
matvecprocedure(vector_sub_dp), nopass, pointer, Default = null()
inner_productprocedure(reduction_sub_dp), nopass, pointer, Default = default_dot_dp

stdlib_solver_workspace_sp_type (type)#

stdlib_solver_workspace_sp_type (type)
Attributes:
tmpreal(kind=sp), allocatable, (:, :), dimension(:,:)
callbackprocedure(logger_sub_sp), pointer, nopass, Default = null()

stdlib_solver_workspace_dp_type (type)#

stdlib_solver_workspace_dp_type (type)
Attributes:
tmpreal(kind=dp), allocatable, (:, :), dimension(:,:)
callbackprocedure(logger_sub_dp), pointer, nopass, Default = null()

Interfaces

stdlib_solve_cg_kernel (interface)#

stdlib_solve_cg_kernel (interface)
Procedures:
module subroutine stdlib_solve_cg_kernel_sp(A, b, x, rtol, atol, maxiter, workspace)#
Arguments:
Aclass(stdlib_linop_sp_type), intent(in)

linear operator

breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=sp), intent(in)

relative tolerance for convergence

atolreal(kind=sp), intent(in)

absolut tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

workspacetype(stdlib_solver_workspace_sp_type), intent(inout)

workspace for the solver

module subroutine stdlib_solve_cg_kernel_dp(A, b, x, rtol, atol, maxiter, workspace)#
Arguments:
Aclass(stdlib_linop_dp_type), intent(in)

linear operator

breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=dp), intent(in)

relative tolerance for convergence

atolreal(kind=dp), intent(in)

absolut tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

workspacetype(stdlib_solver_workspace_dp_type), intent(inout)

workspace for the solver

stdlib_solve_cg (interface)#

stdlib_solve_cg (interface)
Procedures:
module subroutine stdlib_solve_cg_dense_sp(A, b, x, di, rtol, atol, maxiter, restart, workspace)#

linear operator matrix

Arguments:
Areal(kind=sp), (:, :), intent(in), dimension(:,:)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_cg_dense_dp(A, b, x, di, rtol, atol, maxiter, restart, workspace)#

linear operator matrix

Arguments:
Areal(kind=dp), (:, :), intent(in), dimension(:,:)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_cg_CSR_sp(A, b, x, di, rtol, atol, maxiter, restart, workspace)#

linear operator matrix

Arguments:
Atype(CSR_sp_type), intent(in)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_cg_CSR_dp(A, b, x, di, rtol, atol, maxiter, restart, workspace)#

linear operator matrix

Arguments:
Atype(CSR_dp_type), intent(in)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

stdlib_solve_pcg_kernel (interface)#

stdlib_solve_pcg_kernel (interface)
Procedures:
module subroutine stdlib_solve_pcg_kernel_sp(A, M, b, x, rtol, atol, maxiter, workspace)#
Arguments:
Aclass(stdlib_linop_sp_type), intent(in)

linear operator

Mclass(stdlib_linop_sp_type), intent(in)

preconditioner linear operator

breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=sp), intent(in)

relative tolerance for convergence

atolreal(kind=sp), intent(in)

absolute tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

workspacetype(stdlib_solver_workspace_sp_type), intent(inout)

workspace for the solver

module subroutine stdlib_solve_pcg_kernel_dp(A, M, b, x, rtol, atol, maxiter, workspace)#
Arguments:
Aclass(stdlib_linop_dp_type), intent(in)

linear operator

Mclass(stdlib_linop_dp_type), intent(in)

preconditioner linear operator

breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=dp), intent(in)

relative tolerance for convergence

atolreal(kind=dp), intent(in)

absolute tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

workspacetype(stdlib_solver_workspace_dp_type), intent(inout)

workspace for the solver

stdlib_solve_bicgstab_kernel (interface)#

stdlib_solve_bicgstab_kernel (interface)
Procedures:
module subroutine stdlib_solve_bicgstab_kernel_sp(A, M, b, x, rtol, atol, maxiter, workspace)#
Arguments:
Aclass(stdlib_linop_sp_type), intent(in)

linear operator

Mclass(stdlib_linop_sp_type), intent(in)

preconditioner linear operator

breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=sp), intent(in)

relative tolerance for convergence

atolreal(kind=sp), intent(in)

absolute tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

workspacetype(stdlib_solver_workspace_sp_type), intent(inout)

workspace for the solver

module subroutine stdlib_solve_bicgstab_kernel_dp(A, M, b, x, rtol, atol, maxiter, workspace)#
Arguments:
Aclass(stdlib_linop_dp_type), intent(in)

linear operator

Mclass(stdlib_linop_dp_type), intent(in)

preconditioner linear operator

breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=dp), intent(in)

relative tolerance for convergence

atolreal(kind=dp), intent(in)

absolute tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

workspacetype(stdlib_solver_workspace_dp_type), intent(inout)

workspace for the solver

stdlib_solve_gmres_kernel (interface)#

stdlib_solve_gmres_kernel (interface)
Procedures:
module subroutine stdlib_solve_gmres_kernel_sp(A, M, b, x, rtol, atol, maxiter, kdim, workspace, compact)#
Arguments:
Aclass(stdlib_linop_sp_type), intent(in)

linear operator

Mclass(stdlib_linop_sp_type), intent(in)

preconditioner linear operator

breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=sp), intent(in)

relative tolerance for convergence

atolreal(kind=sp), intent(in)

absolute tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

kdiminteger, intent(in)

Krylov subspace size before restart

workspacetype(stdlib_solver_workspace_sp_type), intent(inout)

workspace for the solver

compactlogical, intent(in)

keep only one preconditioned basis vector and rebuild the cycle update at restart

module subroutine stdlib_solve_gmres_kernel_dp(A, M, b, x, rtol, atol, maxiter, kdim, workspace, compact)#
Arguments:
Aclass(stdlib_linop_dp_type), intent(in)

linear operator

Mclass(stdlib_linop_dp_type), intent(in)

preconditioner linear operator

breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

rtolreal(kind=dp), intent(in)

relative tolerance for convergence

atolreal(kind=dp), intent(in)

absolute tolerance for convergence

maxiterinteger, intent(in)

maximum number of iterations

kdiminteger, intent(in)

Krylov subspace size before restart

workspacetype(stdlib_solver_workspace_dp_type), intent(inout)

workspace for the solver

compactlogical, intent(in)

keep only one preconditioned basis vector and rebuild the cycle update at restart

stdlib_solve_pcg (interface)#

stdlib_solve_pcg (interface)
Procedures:
module subroutine stdlib_solve_pcg_dense_sp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Areal(kind=sp), (:, :), intent(in), dimension(:,:)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_sp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_pcg_dense_dp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Areal(kind=dp), (:, :), intent(in), dimension(:,:)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_dp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_pcg_CSR_sp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Atype(CSR_sp_type), intent(in)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_sp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_pcg_CSR_dp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Atype(CSR_dp_type), intent(in)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_dp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

stdlib_solve_bicgstab (interface)#

stdlib_solve_bicgstab (interface)
Procedures:
module subroutine stdlib_solve_bicgstab_dense_sp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Areal(kind=sp), (:, :), intent(in), dimension(:,:)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_sp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_bicgstab_dense_dp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Areal(kind=dp), (:, :), intent(in), dimension(:,:)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_dp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_bicgstab_CSR_sp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Atype(CSR_sp_type), intent(in)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_sp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

module subroutine stdlib_solve_bicgstab_CSR_dp(A, b, x, di, rtol, atol, maxiter, restart, precond, M, workspace)#

linear operator matrix

Arguments:
Atype(CSR_dp_type), intent(in)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_dp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

stdlib_solve_gmres (interface)#

stdlib_solve_gmres (interface)
Procedures:
module subroutine stdlib_solve_gmres_dense_sp(A, b, x, di, rtol, atol, maxiter, restart, kdim, precond, M, workspace, compact)#

linear operator matrix

Arguments:
Areal(kind=sp), (:, :), intent(in), dimension(:,:)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

kdiminteger, intent(in), optional

Krylov subspace size before restart

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_sp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

compactlogical, intent(in), optional

if true, favor lower memory use over cycle-end update speed

module subroutine stdlib_solve_gmres_dense_dp(A, b, x, di, rtol, atol, maxiter, restart, kdim, precond, M, workspace, compact)#

linear operator matrix

Arguments:
Areal(kind=dp), (:, :), intent(in), dimension(:,:)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

kdiminteger, intent(in), optional

Krylov subspace size before restart

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_dp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

compactlogical, intent(in), optional

if true, favor lower memory use over cycle-end update speed

module subroutine stdlib_solve_gmres_CSR_sp(A, b, x, di, rtol, atol, maxiter, restart, kdim, precond, M, workspace, compact)#

linear operator matrix

Arguments:
Atype(CSR_sp_type), intent(in)
breal(kind=sp), intent(in), dimension(:)

right-hand side vector

xreal(kind=sp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=sp), intent(in), optional

relative tolerance for convergence

atolreal(kind=sp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

kdiminteger, intent(in), optional

Krylov subspace size before restart

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_sp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_sp_type), target, intent(inout), optional

workspace for the solver

compactlogical, intent(in), optional

if true, favor lower memory use over cycle-end update speed

module subroutine stdlib_solve_gmres_CSR_dp(A, b, x, di, rtol, atol, maxiter, restart, kdim, precond, M, workspace, compact)#

linear operator matrix

Arguments:
Atype(CSR_dp_type), intent(in)
breal(kind=dp), intent(in), dimension(:)

right-hand side vector

xreal(kind=dp), intent(inout), dimension(:)

solution vector and initial guess

dilogical(kind=int8), target, intent(in), optional, dimension(:)

dirichlet conditions mask

rtolreal(kind=dp), intent(in), optional

relative tolerance for convergence

atolreal(kind=dp), intent(in), optional

absolute tolerance for convergence

maxiterinteger, intent(in), optional

maximum number of iterations

restartlogical, intent(in), optional

restart flag

kdiminteger, intent(in), optional

Krylov subspace size before restart

precondinteger, intent(in), optional

preconditioner method enumerator

Mclass(stdlib_linop_dp_type), target, intent(in), optional

preconditioner linear operator

workspacetype(stdlib_solver_workspace_dp_type), target, intent(inout), optional

workspace for the solver

compactlogical, intent(in), optional

if true, favor lower memory use over cycle-end update speed

Procedures

stdlib_size_wksp_gmres (function)#

elemental function stdlib_size_wksp_gmres(kdim, compact) -> stdlib_size_wksp_gmres
Arguments:
kdiminteger(kind=int32), intent(in)
compactlogical, intent(in)
Returns:
stdlib_size_wksp_gmresinteger(kind=int32)