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(len=1), | 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(len=1), | 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(len=1), | 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(len=1), | intent(in) | :: | uplo |
upper or lower triangular part of the matrix |
||
type(hermitian_banded_matrix_t), | intent(out) | :: | banded |
the resulting banded datastructure |