Contains various subroutines and functions to switch between linked-list matrix representations, banded matrix representations, and full array matrices.
Converts a given matrix data structure with complex nodes to a 2D complex array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(in) | :: | matrix | the original matrix datastructure |
||
complex(kind=dp), | intent(out) | :: | array(matrix%matrix_dim,matrix%matrix_dim) | the resulting complex 2D array |
Converts a matrix data structure into a complex banded matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(in) | :: | matrix | the original matrix datastructure |
||
integer, | intent(in) | :: | subdiags | number of subdiagonals |
||
integer, | intent(in) | :: | superdiags | number of superdiagonals |
||
type(banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |
Converts a matrix data structure into a complex Hermitian banded matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(in) | :: | matrix | the original matrix datastructure |
||
integer, | intent(in) | :: | diags | number of sub/superdiagonals |
||
character, | intent(in) | :: | uplo | upper or lower triangular part of the matrix |
||
type(hermitian_banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |
Converts a given 2D array to the linked-list matrix datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | array(:,:) | the original array |
||
character(len=*), | intent(in), | optional | :: | label | optional label for matrix datastructure |
the resulting matrix datastructure
Converts a given array to a banded datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | array(:,:) | the original array |
||
integer, | intent(in) | :: | subdiags | the number of subdiagonals |
||
integer, | intent(in) | :: | superdiags | the number of superdiagonals |
||
type(banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |
Converts a given array to a Hermitian banded datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | array(:,:) | the original array |
||
integer, | intent(in) | :: | diags | the number of sub/superdiagonals |
||
character, | intent(in) | :: | uplo | upper or lower triangular part of the matrix |
||
type(hermitian_banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |
Converts a banded datastructure to a full complex array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(banded_matrix_t), | intent(in) | :: | banded | the original banded datastructure |
the resulting complex array
Converts a Hermitian banded datastructure to a full complex array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(hermitian_banded_matrix_t), | intent(in) | :: | banded | the original banded structure |
the resulting complex array
Converts a given 2D array to the linked-list matrix datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | array(:,:) | the original array |
||
character(len=*), | intent(in), | optional | :: | label | optional label for matrix datastructure |
the resulting matrix datastructure
Converts a banded datastructure to a full complex array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(banded_matrix_t), | intent(in) | :: | banded | the original banded datastructure |
the resulting complex array
Converts a Hermitian banded datastructure to a full complex array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(hermitian_banded_matrix_t), | intent(in) | :: | banded | the original banded structure |
the resulting complex array
Retrieves the element at index (i, j) for an array of general type. Returns the element as a (casted) complex type.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | array(:,:) | the general array |
||
integer, | intent(in) | :: | irow | row index of element |
||
integer, | intent(in) | :: | icol | column index of element |
the element at position (irow, icol), cast to complex
Converts a given matrix data structure with complex nodes to a 2D complex array.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(in) | :: | matrix | the original matrix datastructure |
||
complex(kind=dp), | intent(out) | :: | array(matrix%matrix_dim,matrix%matrix_dim) | the resulting complex 2D array |
Converts a matrix data structure into a complex banded matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(in) | :: | matrix | the original matrix datastructure |
||
integer, | intent(in) | :: | subdiags | number of subdiagonals |
||
integer, | intent(in) | :: | superdiags | number of superdiagonals |
||
type(banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |
Converts a matrix data structure into a complex Hermitian banded matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(matrix_t), | intent(in) | :: | matrix | the original matrix datastructure |
||
integer, | intent(in) | :: | diags | number of sub/superdiagonals |
||
character, | intent(in) | :: | uplo | upper or lower triangular part of the matrix |
||
type(hermitian_banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |
Converts a given array to a banded datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | array(:,:) | the original array |
||
integer, | intent(in) | :: | subdiags | the number of subdiagonals |
||
integer, | intent(in) | :: | superdiags | the number of superdiagonals |
||
type(banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |
Converts a given array to a Hermitian banded datastructure.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(*), | intent(in) | :: | array(:,:) | the original array |
||
integer, | intent(in) | :: | diags | the number of sub/superdiagonals |
||
character, | intent(in) | :: | uplo | upper or lower triangular part of the matrix |
||
type(hermitian_banded_matrix_t), | intent(out) | :: | banded | the resulting banded datastructure |