This module computes the matrix-function vector product by means of the approximation of based on quadrature formula, i.e., having computed the poles and the scalings of the formula solves linear systems to approximate the product.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=psb_dpk_), | intent(in) | :: | z |
To integrate a function that take as inputs real numbers and gives as output complex numbers
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
procedure(dquadfun), | intent(in), | pointer | :: | dfun | Function to integrate |
|
complex(kind=psb_dpk_), | intent(out), | allocatable, dimension(:) | :: | xi | Poles of the formula |
|
complex(kind=psb_dpk_), | intent(out), | allocatable, dimension(:) | :: | c | Scaling of the formula |
|
complex(kind=psb_dpk_), | intent(out) | :: | eta | Global Scaling |
||
complex(kind=psb_dpk_), | intent(out) | :: | sign | Sign for A |
||
integer(kind=psb_ipk_), | intent(in) | :: | N | Number of Poles |
||
integer(kind=psb_ipk_), | intent(out) | :: | info | Flag on the results |
||
complex(kind=psb_dpk_), | intent(in), | optional | dimension(:) | :: | cparams | Optional complex parameters |
real(kind=psb_dpk_), | intent(in), | optional | dimension(:) | :: | rparams | Optional real parameters |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(psb_dspmat_type), | public, | pointer | :: | a | Matrix on which we work |
||
real(kind=psb_dpk_), | public, | allocatable, dimension(:) | :: | c | Scaling of the formula |
||
type(psb_desc_type), | public | :: | desc_a | Descriptor for parallel environment |
|||
real(kind=psb_dpk_), | public | :: | eta | Global Scaling |
|||
type(psb_dprec_type), | public | :: | prec | Preconditioner for the solution of the associated linear systems |
|||
real(kind=psb_dpk_), | public | :: | sign | Sign for A |
|||
real(kind=psb_dpk_), | public, | allocatable, dimension(:) | :: | xi | Poles of the formula |
procedure, public, pass(quad) :: plot => psfun_d_quadratureplot |
Plots on the complex plane the quadrature poles, and plots the weights of the formula
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(psfun_d_quadrature), | intent(in) | :: | quad | Quadrature rule |
||
procedure(dquadfun), | intent(in), | pointer | :: | dfun | Function to integrate |
|
character(len=*), | intent(in), | optional | :: | filename | Filename for the figure |
|
integer(kind=psb_ipk_), | intent(out) | :: | info | Result of the plot |