stdlib_specialmatrices#
See also the specification page: stdlib_specialmatrices.
stdlib_specialmatrices (module)#
Provides derived-types and associated specialized linear algebra drivers for highly-structured matrices commonly encountered in the discretization of partial differential equations, as well as control and signal processing applications. (Specification: stdlib_specialmatrices)
Types
tridiagonal_sp_type (type)#
-
tridiagonal_sp_type (type) Base type to define a tridiagonal matrix.
tridiagonal_dp_type (type)#
-
tridiagonal_dp_type (type) Base type to define a tridiagonal matrix.
tridiagonal_csp_type (type)#
-
tridiagonal_csp_type (type) Base type to define a tridiagonal matrix.
tridiagonal_cdp_type (type)#
-
tridiagonal_cdp_type (type) Base type to define a tridiagonal matrix.
sym_tridiagonal_sp_type (type)#
-
sym_tridiagonal_sp_type (type) Base type to define a symmetric tridiagonal matrix.
sym_tridiagonal_dp_type (type)#
-
sym_tridiagonal_dp_type (type) Base type to define a symmetric tridiagonal matrix.
sym_tridiagonal_csp_type (type)#
-
sym_tridiagonal_csp_type (type) Base type to define a symmetric tridiagonal matrix.
sym_tridiagonal_cdp_type (type)#
-
sym_tridiagonal_cdp_type (type) Base type to define a symmetric tridiagonal matrix.
Interfaces
tridiagonal (interface)#
-
tridiagonal (interface) (Specification: stdlib_specialmatrices) This interface provides different methods to construct a tridiagonal matrix. Only the non-zero elements of \(A\) are stored, i.e.
\[\begin{split}A = \begin{bmatrix} a_1 & b_1 \\ c_1 & a_2 & b_2 \\ & \ddots & \ddots & \ddots \\ & & c_{n-2} & a_{n-1} & b_{n-1} \\ & & & c_{n-1} & a_n \end{bmatrix}.\end{split}\]- Procedures:
-
pure module function initialize_tridiagonal_pure_sp(dl, dv, du) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlreal(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvreal(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dureal(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- Returns:
- Atype(tridiagonal_sp_type)
Corresponding Tridiagonal matrix.
-
pure module function initialize_constant_tridiagonal_pure_sp(dl, dv, du, n) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlreal(kind=sp), intent(in)
Tridiagonal matrix elements.
- dvreal(kind=sp), intent(in)
Tridiagonal matrix elements.
- dureal(kind=sp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(tridiagonal_sp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_tridiagonal_impure_sp(dl, dv, du, err) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlreal(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvreal(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dureal(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_sp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_constant_tridiagonal_impure_sp(dl, dv, du, n, err) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlreal(kind=sp), intent(in)
Tridiagonal matrix elements.
- dvreal(kind=sp), intent(in)
Tridiagonal matrix elements.
- dureal(kind=sp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_sp_type)
Corresponding Tridiagonal matrix.
-
pure module function initialize_tridiagonal_pure_dp(dl, dv, du) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlreal(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvreal(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dureal(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- Returns:
- Atype(tridiagonal_dp_type)
Corresponding Tridiagonal matrix.
-
pure module function initialize_constant_tridiagonal_pure_dp(dl, dv, du, n) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlreal(kind=dp), intent(in)
Tridiagonal matrix elements.
- dvreal(kind=dp), intent(in)
Tridiagonal matrix elements.
- dureal(kind=dp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(tridiagonal_dp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_tridiagonal_impure_dp(dl, dv, du, err) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlreal(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvreal(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dureal(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_dp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_constant_tridiagonal_impure_dp(dl, dv, du, n, err) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlreal(kind=dp), intent(in)
Tridiagonal matrix elements.
- dvreal(kind=dp), intent(in)
Tridiagonal matrix elements.
- dureal(kind=dp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_dp_type)
Corresponding Tridiagonal matrix.
-
pure module function initialize_tridiagonal_pure_csp(dl, dv, du) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlcomplex(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- ducomplex(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- Returns:
- Atype(tridiagonal_csp_type)
Corresponding Tridiagonal matrix.
-
pure module function initialize_constant_tridiagonal_pure_csp(dl, dv, du, n) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlcomplex(kind=sp), intent(in)
Tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in)
Tridiagonal matrix elements.
- ducomplex(kind=sp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(tridiagonal_csp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_tridiagonal_impure_csp(dl, dv, du, err) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlcomplex(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- ducomplex(kind=sp), intent(in), dimension(:)
Tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_csp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_constant_tridiagonal_impure_csp(dl, dv, du, n, err) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlcomplex(kind=sp), intent(in)
Tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in)
Tridiagonal matrix elements.
- ducomplex(kind=sp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_csp_type)
Corresponding Tridiagonal matrix.
-
pure module function initialize_tridiagonal_pure_cdp(dl, dv, du) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlcomplex(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- ducomplex(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- Returns:
- Atype(tridiagonal_cdp_type)
Corresponding Tridiagonal matrix.
-
pure module function initialize_constant_tridiagonal_pure_cdp(dl, dv, du, n) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlcomplex(kind=dp), intent(in)
Tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in)
Tridiagonal matrix elements.
- ducomplex(kind=dp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(tridiagonal_cdp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_tridiagonal_impure_cdp(dl, dv, du, err) -> A# Construct a tridiagonal matrix from the rank-1 arrays dl, dv and du.
- Arguments:
- dlcomplex(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- ducomplex(kind=dp), intent(in), dimension(:)
Tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_cdp_type)
Corresponding Tridiagonal matrix.
-
module function initialize_constant_tridiagonal_impure_cdp(dl, dv, du, n, err) -> A# Construct a tridiagonal matrix with scalar elements.
- Arguments:
- dlcomplex(kind=dp), intent(in)
Tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in)
Tridiagonal matrix elements.
- ducomplex(kind=dp), intent(in)
Tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error handling.
- Returns:
- Atype(tridiagonal_cdp_type)
Corresponding Tridiagonal matrix.
Syntax
Construct a real tridiagonal matrix from rank-1 arrays:
integer, parameter :: n real(dp), allocatable :: dl(:), dv(:), du(:) type(tridiagonal_rdp_type) :: A integer :: i dl = [(i, i=1, n-1)] dv = [(2*i, i=1, n)] du = [(3*i, i=1, n)] A = Tridiagonal(dl, dv, du)
Construct a real tridiagonal matrix with constant diagonals:
integer, parameter :: n real(dp), parameter :: a = 1.0_dp, b = 1.0_dp, c = 2.0_dp type(tridiagonal_rdp_type) :: A A = Tridiagonal(a, b, c, n)
sym_tridiagonal (interface)#
-
sym_tridiagonal (interface) (Specification: stdlib_specialmatrices) This interface provides different methods to construct a symmetric tridiagonal matrix. Only the non-zero elements of \(A\) are stored, i.e.
\[\begin{split}A = \begin{bmatrix} a_1 & b_1 \\ b_1 & a_2 & b_2 \\ & \ddots & \ddots & \ddots \\ & & b_{n-2} & a_{n-1} & b_{n-1} \\ & & & b_{n-1} & a_n \end{bmatrix}.\end{split}\]- Procedures:
-
pure module function initialize_sym_tridiagonal_pure_sp(du, dv) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- dureal(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvreal(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- Returns:
- Atype(sym_tridiagonal_sp_type)
Corresponding symmetric tridiagonal matrix.
-
pure module function initialize_constant_sym_tridiagonal_pure_sp(du, dv, n) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- dureal(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- dvreal(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(sym_tridiagonal_sp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_sym_tridiagonal_impure_sp(du, dv, err) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- dureal(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvreal(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_sp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_constant_sym_tridiagonal_impure_sp(du, dv, n, err) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- dureal(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- dvreal(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_sp_type)
Corresponding symmetric tridiagonal matrix.
-
pure module function initialize_sym_tridiagonal_pure_dp(du, dv) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- dureal(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvreal(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- Returns:
- Atype(sym_tridiagonal_dp_type)
Corresponding symmetric tridiagonal matrix.
-
pure module function initialize_constant_sym_tridiagonal_pure_dp(du, dv, n) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- dureal(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- dvreal(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(sym_tridiagonal_dp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_sym_tridiagonal_impure_dp(du, dv, err) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- dureal(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvreal(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_dp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_constant_sym_tridiagonal_impure_dp(du, dv, n, err) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- dureal(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- dvreal(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_dp_type)
Corresponding symmetric tridiagonal matrix.
-
pure module function initialize_sym_tridiagonal_pure_csp(du, dv) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- ducomplex(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- Returns:
- Atype(sym_tridiagonal_csp_type)
Corresponding symmetric tridiagonal matrix.
-
pure module function initialize_constant_sym_tridiagonal_pure_csp(du, dv, n) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- ducomplex(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(sym_tridiagonal_csp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_sym_tridiagonal_impure_csp(du, dv, err) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- ducomplex(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_csp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_constant_sym_tridiagonal_impure_csp(du, dv, n, err) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- ducomplex(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=sp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_csp_type)
Corresponding symmetric tridiagonal matrix.
-
pure module function initialize_sym_tridiagonal_pure_cdp(du, dv) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- ducomplex(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- Returns:
- Atype(sym_tridiagonal_cdp_type)
Corresponding symmetric tridiagonal matrix.
-
pure module function initialize_constant_sym_tridiagonal_pure_cdp(du, dv, n) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- ducomplex(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- Returns:
- Atype(sym_tridiagonal_cdp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_sym_tridiagonal_impure_cdp(du, dv, err) -> A# Construct a symmetric tridiagonal matrix from rank-1 arrays du and dv.
- Arguments:
- ducomplex(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in), dimension(:)
Symmetric tridiagonal matrix elements.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_cdp_type)
Corresponding symmetric tridiagonal matrix.
-
module function initialize_constant_sym_tridiagonal_impure_cdp(du, dv, n, err) -> A# Construct a symmetric tridiagonal matrix with scalar elements.
- Arguments:
- ducomplex(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- dvcomplex(kind=dp), intent(in)
Symmetric tridiagonal matrix elements.
- ninteger(kind=ilp), intent(in)
Matrix dimension.
- errtype(linalg_state_type), intent(out)
Error Handling.
- Returns:
- Atype(sym_tridiagonal_cdp_type)
Corresponding symmetric tridiagonal matrix.
Syntax
Construct a real symmetric tridiagonal matrix from rank-1 arrays:
integer, parameter :: n real(dp), allocatable :: du(:), dv(:) type(sym_tridiagonal_rdp_type) :: A integer :: i du = [(i, i=1, n-1)] dv = [(2*i, i=1, n)] A = sym_tridiagonal(du, dv)
Construct a real symmetric tridiagonal matrix with constant diagonals:
integer, parameter :: n real(dp), parameter :: a = 1.0_dp, b = 1.0_dp type(sym_tridiagonal_rdp_type) :: A A = sym_tridiagonal(a, b, n)
spmv (interface)#
-
spmv (interface) (Specifications: stdlib_specialmatrices) This interface provides methods to compute the matrix-vector product
$$ y = alpha mathrm{op}(A) x + beta y$$
for the different matrix types defined by stdlib_specialmatrices.
- Procedures:
-
module subroutine spmv_tridiag_1d_sp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_sp_type), intent(in)
- xreal(kind=sp), contiguous, target, intent(in), dimension(:)
- yreal(kind=sp), contiguous, target, intent(inout), dimension(:)
- alphareal(kind=sp), intent(in), optional
- betareal(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_tridiag_2d_sp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_sp_type), intent(in)
- xreal(kind=sp), contiguous, target, (:, :), intent(in), dimension(:,:)
- yreal(kind=sp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphareal(kind=sp), intent(in), optional
- betareal(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_tridiag_1d_dp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_dp_type), intent(in)
- xreal(kind=dp), contiguous, target, intent(in), dimension(:)
- yreal(kind=dp), contiguous, target, intent(inout), dimension(:)
- alphareal(kind=dp), intent(in), optional
- betareal(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_tridiag_2d_dp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_dp_type), intent(in)
- xreal(kind=dp), contiguous, target, (:, :), intent(in), dimension(:,:)
- yreal(kind=dp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphareal(kind=dp), intent(in), optional
- betareal(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_tridiag_1d_csp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_csp_type), intent(in)
- xcomplex(kind=sp), contiguous, target, intent(in), dimension(:)
- ycomplex(kind=sp), contiguous, target, intent(inout), dimension(:)
- alphacomplex(kind=sp), intent(in), optional
- betacomplex(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_tridiag_2d_csp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_csp_type), intent(in)
- xcomplex(kind=sp), contiguous, target, (:, :), intent(in), dimension(:,:)
- ycomplex(kind=sp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphacomplex(kind=sp), intent(in), optional
- betacomplex(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_tridiag_1d_cdp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
- xcomplex(kind=dp), contiguous, target, intent(in), dimension(:)
- ycomplex(kind=dp), contiguous, target, intent(inout), dimension(:)
- alphacomplex(kind=dp), intent(in), optional
- betacomplex(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_tridiag_2d_cdp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
- xcomplex(kind=dp), contiguous, target, (:, :), intent(in), dimension(:,:)
- ycomplex(kind=dp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphacomplex(kind=dp), intent(in), optional
- betacomplex(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_1d_sp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
- xreal(kind=sp), contiguous, target, intent(in), dimension(:)
- yreal(kind=sp), contiguous, target, intent(inout), dimension(:)
- alphareal(kind=sp), intent(in), optional
- betareal(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_2d_sp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
- xreal(kind=sp), contiguous, target, (:, :), intent(in), dimension(:,:)
- yreal(kind=sp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphareal(kind=sp), intent(in), optional
- betareal(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_1d_dp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
- xreal(kind=dp), contiguous, target, intent(in), dimension(:)
- yreal(kind=dp), contiguous, target, intent(inout), dimension(:)
- alphareal(kind=dp), intent(in), optional
- betareal(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_2d_dp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
- xreal(kind=dp), contiguous, target, (:, :), intent(in), dimension(:,:)
- yreal(kind=dp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphareal(kind=dp), intent(in), optional
- betareal(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_1d_csp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
- xcomplex(kind=sp), contiguous, target, intent(in), dimension(:)
- ycomplex(kind=sp), contiguous, target, intent(inout), dimension(:)
- alphacomplex(kind=sp), intent(in), optional
- betacomplex(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_2d_csp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
- xcomplex(kind=sp), contiguous, target, (:, :), intent(in), dimension(:,:)
- ycomplex(kind=sp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphacomplex(kind=sp), intent(in), optional
- betacomplex(kind=sp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_1d_cdp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
- xcomplex(kind=dp), contiguous, target, intent(in), dimension(:)
- ycomplex(kind=dp), contiguous, target, intent(inout), dimension(:)
- alphacomplex(kind=dp), intent(in), optional
- betacomplex(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
-
module subroutine spmv_sym_tridiag_2d_cdp(A, x, y, alpha, beta, op)# - Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
- xcomplex(kind=dp), contiguous, target, (:, :), intent(in), dimension(:,:)
- ycomplex(kind=dp), contiguous, target, (:, :), intent(inout), dimension(:,:)
- alphacomplex(kind=dp), intent(in), optional
- betacomplex(kind=dp), intent(in), optional
- opcharacter(len=1), intent(in), optional
dense (interface)#
-
dense (interface) This interface provides methods to convert a matrix of one of the types defined by stdlib_specialmatrices to a standard rank-2 array. (Specifications: stdlib_specialmatrices)
- Procedures:
-
pure module function tridiagonal_to_dense_sp(A) -> B# Convert a tridiagonal matrix to its dense representation.
- Arguments:
- Atype(tridiagonal_sp_type), intent(in)
Input Tridiagonal matrix.
- Returns:
- Breal(kind=sp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
-
pure module function tridiagonal_to_dense_dp(A) -> B# Convert a tridiagonal matrix to its dense representation.
- Arguments:
- Atype(tridiagonal_dp_type), intent(in)
Input Tridiagonal matrix.
- Returns:
- Breal(kind=dp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
-
pure module function tridiagonal_to_dense_csp(A) -> B# Convert a tridiagonal matrix to its dense representation.
- Arguments:
- Atype(tridiagonal_csp_type), intent(in)
Input Tridiagonal matrix.
- Returns:
- Bcomplex(kind=sp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
-
pure module function tridiagonal_to_dense_cdp(A) -> B# Convert a tridiagonal matrix to its dense representation.
- Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
Input Tridiagonal matrix.
- Returns:
- Bcomplex(kind=dp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
-
pure module function sym_tridiagonal_to_dense_sp(A) -> B# Convert a symmetric tridiagonal matrix to its dense representation.
- Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
Input Symmetric tridiagonal matrix.
- Returns:
- Breal(kind=sp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
-
pure module function sym_tridiagonal_to_dense_dp(A) -> B# Convert a symmetric tridiagonal matrix to its dense representation.
- Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
Input Symmetric tridiagonal matrix.
- Returns:
- Breal(kind=dp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
-
pure module function sym_tridiagonal_to_dense_csp(A) -> B# Convert a symmetric tridiagonal matrix to its dense representation.
- Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
Input Symmetric tridiagonal matrix.
- Returns:
- Bcomplex(kind=sp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
-
pure module function sym_tridiagonal_to_dense_cdp(A) -> B# Convert a symmetric tridiagonal matrix to its dense representation.
- Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
Input Symmetric tridiagonal matrix.
- Returns:
- Bcomplex(kind=dp), allocatable, (:, :), dimension(:,:)
Corresponding dense matrix.
transpose (interface)#
-
transpose (interface) This interface provides methods to compute the transpose operation for the different matrix types defined by stdlib_specialmatrices. Specifications: stdlib_specialmatrices
- Procedures:
-
pure module function transpose_tridiagonal_sp(A) -> B# - Arguments:
- Atype(tridiagonal_sp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_sp_type)
-
pure module function transpose_tridiagonal_dp(A) -> B# - Arguments:
- Atype(tridiagonal_dp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_dp_type)
-
pure module function transpose_tridiagonal_csp(A) -> B# - Arguments:
- Atype(tridiagonal_csp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_csp_type)
-
pure module function transpose_tridiagonal_cdp(A) -> B# - Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_cdp_type)
-
pure module function transpose_sym_tridiagonal_sp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_sp_type)
-
pure module function transpose_sym_tridiagonal_dp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_dp_type)
-
pure module function transpose_sym_tridiagonal_csp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_csp_type)
-
pure module function transpose_sym_tridiagonal_cdp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_cdp_type)
hermitian (interface)#
-
hermitian (interface) This interface provides methods to compute the hermitian operation for the different matrix types defined by stdlib_specialmatrices. For real-valued matrices, this is equivalent to the standard transpose. Specifications: stdlib_specialmatrices
- Procedures:
-
pure module function hermitian_tridiagonal_sp(A) -> B# - Arguments:
- Atype(tridiagonal_sp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_sp_type)
-
pure module function hermitian_tridiagonal_dp(A) -> B# - Arguments:
- Atype(tridiagonal_dp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_dp_type)
-
pure module function hermitian_tridiagonal_csp(A) -> B# - Arguments:
- Atype(tridiagonal_csp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_csp_type)
-
pure module function hermitian_tridiagonal_cdp(A) -> B# - Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
Input matrix.
- Returns:
- Btype(tridiagonal_cdp_type)
-
pure module function hermitian_sym_tridiagonal_sp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_sp_type)
-
pure module function hermitian_sym_tridiagonal_dp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_dp_type)
-
pure module function hermitian_sym_tridiagonal_csp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_csp_type)
-
pure module function hermitian_sym_tridiagonal_cdp(A) -> B# - Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
Input matrix.
- Returns:
- Btype(sym_tridiagonal_cdp_type)
operator(*) (interface)#
-
operator(*) (interface) Overload the * for scalar-matrix multiplications for the different matrix types provided by stdlib_specialmatrices. Specifications: stdlib_specialmatrices
- Procedures:
-
pure module function scalar_multiplication_tridiagonal_sp(alpha, A) -> B# - Arguments:
- alphareal(kind=sp), intent(in)
- Atype(tridiagonal_sp_type), intent(in)
- Returns:
- Btype(tridiagonal_sp_type)
-
pure module function scalar_multiplication_bis_tridiagonal_sp(A, alpha) -> B# - Arguments:
- Atype(tridiagonal_sp_type), intent(in)
- alphareal(kind=sp), intent(in)
- Returns:
- Btype(tridiagonal_sp_type)
-
pure module function scalar_multiplication_tridiagonal_dp(alpha, A) -> B# - Arguments:
- alphareal(kind=dp), intent(in)
- Atype(tridiagonal_dp_type), intent(in)
- Returns:
- Btype(tridiagonal_dp_type)
-
pure module function scalar_multiplication_bis_tridiagonal_dp(A, alpha) -> B# - Arguments:
- Atype(tridiagonal_dp_type), intent(in)
- alphareal(kind=dp), intent(in)
- Returns:
- Btype(tridiagonal_dp_type)
-
pure module function scalar_multiplication_tridiagonal_csp(alpha, A) -> B# - Arguments:
- alphacomplex(kind=sp), intent(in)
- Atype(tridiagonal_csp_type), intent(in)
- Returns:
- Btype(tridiagonal_csp_type)
-
pure module function scalar_multiplication_bis_tridiagonal_csp(A, alpha) -> B# - Arguments:
- Atype(tridiagonal_csp_type), intent(in)
- alphacomplex(kind=sp), intent(in)
- Returns:
- Btype(tridiagonal_csp_type)
-
pure module function scalar_multiplication_tridiagonal_cdp(alpha, A) -> B# - Arguments:
- alphacomplex(kind=dp), intent(in)
- Atype(tridiagonal_cdp_type), intent(in)
- Returns:
- Btype(tridiagonal_cdp_type)
-
pure module function scalar_multiplication_bis_tridiagonal_cdp(A, alpha) -> B# - Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
- alphacomplex(kind=dp), intent(in)
- Returns:
- Btype(tridiagonal_cdp_type)
-
pure module function scalar_multiplication_sym_tridiagonal_sp(alpha, A) -> B# - Arguments:
- alphareal(kind=sp), intent(in)
- Atype(sym_tridiagonal_sp_type), intent(in)
- Returns:
- Btype(sym_tridiagonal_sp_type)
-
pure module function scalar_multiplication_bis_sym_tridiagonal_sp(A, alpha) -> B# - Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
- alphareal(kind=sp), intent(in)
- Returns:
- Btype(sym_tridiagonal_sp_type)
-
pure module function scalar_multiplication_sym_tridiagonal_dp(alpha, A) -> B# - Arguments:
- alphareal(kind=dp), intent(in)
- Atype(sym_tridiagonal_dp_type), intent(in)
- Returns:
- Btype(sym_tridiagonal_dp_type)
-
pure module function scalar_multiplication_bis_sym_tridiagonal_dp(A, alpha) -> B# - Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
- alphareal(kind=dp), intent(in)
- Returns:
- Btype(sym_tridiagonal_dp_type)
-
pure module function scalar_multiplication_sym_tridiagonal_csp(alpha, A) -> B# - Arguments:
- alphacomplex(kind=sp), intent(in)
- Atype(sym_tridiagonal_csp_type), intent(in)
- Returns:
- Btype(sym_tridiagonal_csp_type)
-
pure module function scalar_multiplication_bis_sym_tridiagonal_csp(A, alpha) -> B# - Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
- alphacomplex(kind=sp), intent(in)
- Returns:
- Btype(sym_tridiagonal_csp_type)
-
pure module function scalar_multiplication_sym_tridiagonal_cdp(alpha, A) -> B# - Arguments:
- alphacomplex(kind=dp), intent(in)
- Atype(sym_tridiagonal_cdp_type), intent(in)
- Returns:
- Btype(sym_tridiagonal_cdp_type)
-
pure module function scalar_multiplication_bis_sym_tridiagonal_cdp(A, alpha) -> B# - Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
- alphacomplex(kind=dp), intent(in)
- Returns:
- Btype(sym_tridiagonal_cdp_type)
operator(+) (interface)#
-
operator(+) (interface) Overload the + operator for matrix-matrix addition. The two matrices need to be of the same type and kind. Specifications: stdlib_specialmatrices
- Procedures:
-
pure module function matrix_add_tridiagonal_sp(A, B) -> C# - Arguments:
- Atype(tridiagonal_sp_type), intent(in)
- Btype(tridiagonal_sp_type), intent(in)
- Returns:
- Ctype(tridiagonal_sp_type)
-
pure module function matrix_add_tridiagonal_dp(A, B) -> C# - Arguments:
- Atype(tridiagonal_dp_type), intent(in)
- Btype(tridiagonal_dp_type), intent(in)
- Returns:
- Ctype(tridiagonal_dp_type)
-
pure module function matrix_add_tridiagonal_csp(A, B) -> C# - Arguments:
- Atype(tridiagonal_csp_type), intent(in)
- Btype(tridiagonal_csp_type), intent(in)
- Returns:
- Ctype(tridiagonal_csp_type)
-
pure module function matrix_add_tridiagonal_cdp(A, B) -> C# - Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
- Btype(tridiagonal_cdp_type), intent(in)
- Returns:
- Ctype(tridiagonal_cdp_type)
-
pure module function matrix_add_sym_tridiagonal_sp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
- Btype(sym_tridiagonal_sp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_sp_type)
-
pure module function matrix_add_sym_tridiagonal_dp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
- Btype(sym_tridiagonal_dp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_dp_type)
-
pure module function matrix_add_sym_tridiagonal_csp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
- Btype(sym_tridiagonal_csp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_csp_type)
-
pure module function matrix_add_sym_tridiagonal_cdp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
- Btype(sym_tridiagonal_cdp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_cdp_type)
operator(-) (interface)#
-
operator(-) (interface) Overload the - operator for matrix-matrix subtraction. The two matrices need to be of the same type and kind. Specifications: stdlib_specialmatrices
- Procedures:
-
pure module function matrix_sub_tridiagonal_sp(A, B) -> C# - Arguments:
- Atype(tridiagonal_sp_type), intent(in)
- Btype(tridiagonal_sp_type), intent(in)
- Returns:
- Ctype(tridiagonal_sp_type)
-
pure module function matrix_sub_tridiagonal_dp(A, B) -> C# - Arguments:
- Atype(tridiagonal_dp_type), intent(in)
- Btype(tridiagonal_dp_type), intent(in)
- Returns:
- Ctype(tridiagonal_dp_type)
-
pure module function matrix_sub_tridiagonal_csp(A, B) -> C# - Arguments:
- Atype(tridiagonal_csp_type), intent(in)
- Btype(tridiagonal_csp_type), intent(in)
- Returns:
- Ctype(tridiagonal_csp_type)
-
pure module function matrix_sub_tridiagonal_cdp(A, B) -> C# - Arguments:
- Atype(tridiagonal_cdp_type), intent(in)
- Btype(tridiagonal_cdp_type), intent(in)
- Returns:
- Ctype(tridiagonal_cdp_type)
-
pure module function matrix_sub_sym_tridiagonal_sp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_sp_type), intent(in)
- Btype(sym_tridiagonal_sp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_sp_type)
-
pure module function matrix_sub_sym_tridiagonal_dp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_dp_type), intent(in)
- Btype(sym_tridiagonal_dp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_dp_type)
-
pure module function matrix_sub_sym_tridiagonal_csp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_csp_type), intent(in)
- Btype(sym_tridiagonal_csp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_csp_type)
-
pure module function matrix_sub_sym_tridiagonal_cdp(A, B) -> C# - Arguments:
- Atype(sym_tridiagonal_cdp_type), intent(in)
- Btype(sym_tridiagonal_cdp_type), intent(in)
- Returns:
- Ctype(sym_tridiagonal_cdp_type)