type to represent a complex banded matrix
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public | :: | m | number of rows |
|||
integer, | public | :: | n | number of columns |
|||
integer, | public | :: | kl | number of subdiagonals |
|||
integer, | public | :: | ku | number of superdiagonals |
|||
complex(kind=dp), | public, | allocatable | :: | AB(:,:) | array containing the 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 $(ku + 1 + i - j, j)$ (with $ku$ the number of superdiagonals).
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(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 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(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(banded_matrix_t), | intent(in) | :: | this | type instance |
Returns the total number of nonzero elements inside the banded matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(banded_matrix_t), | intent(in) | :: | this | type instance |
Checks if a banded matrix is compatibe with another banded matrix.
This implies that the following attributes should be equal:
- dimensions of the original matrices
- number of superdiagonals and subdiagonals
- dimensions of the banded matrices themselves
Returns .true.
if these three criteria are satisfied, .false.
otherwise.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(banded_matrix_t), | intent(in) | :: | this | type instance |
||
type(banded_matrix_t), | intent(in) | :: | other | other banded matrix |
Destructor, deallocates the datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(banded_matrix_t), | intent(inout) | :: | this | type instance |