Base type used to define a Tridiagonal
matrix of size [n, n]
with diagonals given by rank-1 arrays dl
(size n
), dv
(size n-1
) and du
(size n-1
).
This interface provides different methods to construct a
Tridiagonal
matrix. Only the non-zero elements of are
stored, i.e.
Tridiagonal
matrix filled with zeros: integer, parameter :: n = 100
type(Tridiagonal) :: A
A = Tridiagonal(n)
Tridiagonal
matrix from rank-1 arrays: integer, parameter :: n
real(dp), allocatable :: dl(:), dv(:), du(:)
type(Tridiagonal) :: 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)
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) :: A
A = Tridiagonal(a, b, c, n)
Note
Only double precision
is currently supported for this matrix type.
Construct a Tridiagonal
matrix from the rank-1 arrays dl
,
dv
and du
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | dl(:) |
Tridiagonal elements of the matrix. |
||
real(kind=dp), | intent(in) | :: | dv(:) |
Tridiagonal elements of the matrix. |
||
real(kind=dp), | intent(in) | :: | du(:) |
Tridiagonal elements of the matrix. |
Tridiagonal matrix.
Construct a Tridiagonal
matrix with constant diagonal elements.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | dl |
Tridiagonal elements of the matrix. |
||
real(kind=dp), | intent(in) | :: | dv |
Tridiagonal elements of the matrix. |
||
real(kind=dp), | intent(in) | :: | du |
Tridiagonal elements of the matrix. |
||
integer(kind=ilp), | intent(in) | :: | n |
Dimension of the matrix. |
Tridiagonal matrix.
Construct a Tridiagonal
matrix filled with zeros.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ilp), | intent(in) | :: | n |
Dimension of the matrix. |
Tridiagonal matrix.