Base type used to define a Bidiagonal
matrix of size [n, n]
with diagonals given by rank-1 arrays dv
(size n
) and ev
(size n-1
).
This interface provides different methods to construct a
Bidiagonal
matrix. Only the non-zero elements of are
stored, i.e.
if is lower-bidiagonal or
if is upper-bidiagonal.
Warning
By default, the matrix is lower-bidiagonal. To create an upper-
bidiagonal, set A%which = "U"
.
Bidiagonal
matrix filled with zeros: integer, parameter :: n = 100
type(Bidiagonal) :: A
A = Bidiagonal(n)
Bidiagonal
matrix from rank-1 arrays: integer, parameter :: n
real(dp), allocatable :: ev(:), dv(:)
type(Bidiagonal) :: A
integer :: i
dv = [(i, i=1, n)]; ev = [(2*i, i=1, n)]
A = Bidiagonal(dv, ev)
Bidiagonal
matrix with constant diagonals: integer, parameter :: n
real(dp), parameter :: d = 1.0_dp, e = 2.0_dp
type(Bidiagonal) :: A
A = Bidiagonal(d, e, n)
Note
Only double precision
is currently supported for this matrix type.
Construct a Bidiagonal
matrix from the rank-1 arrays dv
and ev
.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | dv(:) |
Bidiagonal elements of the matrix. |
||
real(kind=dp), | intent(in) | :: | ev(:) |
Bidiagonal elements of the matrix. |
||
character(len=1), | intent(in), | optional | :: | which |
Whether |
Bidiagonal matrix.
Construct a Bidiagonal
matrix with constant diagonal elements.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | d |
Bidiagonal elements of the matrix. |
||
real(kind=dp), | intent(in) | :: | e |
Bidiagonal elements of the matrix. |
||
integer(kind=ilp), | intent(in) | :: | n |
Dimension of the matrix. |
||
character(len=1), | intent(in), | optional | :: | which |
Whether |
Symmetric Bidiagonal matrix.
Construct a Bidiagonal
matrix filled with zeros.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=ilp), | intent(in) | :: | n |
Dimension of the matrix. |
Symmetric Bidiagonal matrix.