type to represent a complex Hermitian banded matrix
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | n | number of rows/columns |
|||
character, | public | :: | uplo | store upper ("U") or lower ("L") triangular part |
|||
integer, | public | :: | kd | number of sub/superdiagonals |
|||
complex(kind=dp), | public, | allocatable | :: | AB(:,:) | the matrix in banded storage |
Retrieves the element at position (row, col) of the original matrix.
See the LAPACK documentation, element $a_{ij}$ of the original matrix is stored
at position $(kd + 1 + i - j, j)$ if uplo = "U"
and at position
$(1 + i - j, j)$ if uplo = "L"
in the banded storage.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(hermitian_banded_matrix_t), | intent(in) | :: | this | type instance |
||
integer, | intent(in) | :: | row | the row index of the original position |
||
integer, | intent(in) | :: | col | the column index of the original position |
the element at the original position (row, col)
Sets the element $a_{ij}$ of the original array into the banded structure. The row and col arguments refer to the row and column indices of the element in the original array. This routine has no effect if the location falls outside of the banded structure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(hermitian_banded_matrix_t), | intent(inout) | :: | this | type instance |
||
integer, | intent(in) | :: | row | row index of element |
||
integer, | intent(in) | :: | col | column index of element |
||
complex(kind=dp), | intent(in) | :: | element | value for the element at (row, col) |
Returns the total number of elements inside the banded matrix
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(hermitian_banded_matrix_t), | intent(in) | :: | this | type instance |
Checks if a Hermitian band matrix is compatible with another Hermitian band matrix. This implies that the following attributes should be equal: - number of rows/columns - number of sub/superdiagonals - storage of upper or lower triangular part - dimensions of the banded matrices themselves Returns .true. if all criteria are satisfied, .false. otherwise.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(hermitian_banded_matrix_t), | intent(in) | :: | this | type instance |
||
class(hermitian_banded_matrix_t), | intent(in) | :: | other | other banded matrix |
Destructor, deallocates the datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(hermitian_banded_matrix_t), | intent(inout) | :: | this | type instance |