A Module For Computing Matrix functions based on Chebyshev polynomials.
Construct a Chebyshev polynomial object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ChebyshevPolynomial_t), | intent(inout) | :: | this | The polynomial to construct. |
||
integer, | intent(in) | :: | degree | Degree of the polynomial. |
Destruct a polynomial object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ChebyshevPolynomial_t), | intent(inout) | :: | this | The polynomial to destruct. |
Set a coefficient of a Chebyshev polynomial.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(ChebyshevPolynomial_t), | intent(inout) | :: | this | The polynomial to set. |
||
integer, | intent(in) | :: | degree | Degree for which to set the coefficient. |
||
real(kind=NTREAL), | intent(in) | :: | coefficient | Coefficient value. |
Compute The Chebyshev Polynomial of the matrix. This method uses the standard Chebyshev Polynomial expansion.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(Matrix_ps), | intent(in) | :: | InputMat | The input matrix |
||
type(Matrix_ps), | intent(inout) | :: | OutputMat | OutputMat = poly(InputMat) |
||
type(ChebyshevPolynomial_t), | intent(in) | :: | poly | The Chebyshev polynomial to compute. |
||
type(SolverParameters_t), | intent(in), | optional | :: | solver_parameters_in | Parameters for the solver. |
Compute The Chebyshev Polynomial of the matrix. This version first factors the Chebyshev Polynomial and computes the function using a divide and conquer algorithm. Based on a simplified version of the first method in \cite liang2003improved .
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(Matrix_ps), | intent(in) | :: | InputMat | The input matrix |
||
type(Matrix_ps), | intent(inout) | :: | OutputMat | OutputMat = poly(InputMat) |
||
type(ChebyshevPolynomial_t), | intent(in) | :: | poly | The Chebyshev polynomial to compute. |
||
type(SolverParameters_t), | intent(in), | optional | :: | solver_parameters_in | Parameters for the solver. |
A datatype that represents a Chebyshev polynomial.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=NTREAL), | public, | DIMENSION(:), ALLOCATABLE | :: | coefficients | Coefficients of the polynomial. |