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. |