psfun_d_serial Derived Type

type, public :: psfun_d_serial


Contents


Components

TypeVisibility AttributesNameInitial
procedure(func), public, pointer, nopass:: f_ptr=> null()

Pointer of a function

character(len=20), public :: fname ='EXP'

Name of the function

integer(kind=psb_ipk_), public :: padedegree =6_psb_ipk_

Degree of Padé expansion

integer(kind=psb_ipk_), public :: phiorder =1_psb_ipk_

Order of the -function

real(kind=psb_dpk_), public :: scaling =1.0_psb_dpk_

of

character(len=20), public :: variant ='EXPOKIT'

Implementatio variant


Type-Bound Procedures

generic, public :: apply => applya, applys

  • public subroutine psfun_d_serial_apply_array(fun, a, y, x, info)

    This is the core of the function apply on a serial matrix to compute . It calls on the specific routines implementing the different functions. It is the function to modify if ones want to interface a new function that was not previously available or a new algorithm (variant) for an already existing function.

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function information

    real(kind=psb_dpk_), intent(in) :: a(:,:)

    Matrix

    real(kind=psb_dpk_), intent(out) :: y(:)

    Output vector

    real(kind=psb_dpk_), intent(in) :: x(:)

    Input vector

    integer(kind=psb_ipk_), intent(out) :: info

    Information on the output

    Read more…
  • public subroutine psfun_d_serial_apply_sparse(fun, a, y, x, info)

    This is the core of the function apply on a serial matrix to compute when A is memorized in a sparse storage. In this case the routine converts it to a dense storage and then calls the array version of itself. That is the one implementing the different functions. It is the function to modify if ones want to interface a new function that was not previously available or a new algorithm (variant) for an already existing function.

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function information

    type(psb_dspmat_type), intent(inout) :: a

    Matrix

    real(kind=psb_dpk_), intent(out) :: y(:)

    Output vector

    real(kind=psb_dpk_), intent(in) :: x(:)

    Input vector

    integer(kind=psb_ipk_), intent(out) :: info

    Information on the output

procedure, public, pass(fun) :: applya => psfun_d_serial_apply_array

  • public subroutine psfun_d_serial_apply_array(fun, a, y, x, info)

    This is the core of the function apply on a serial matrix to compute . It calls on the specific routines implementing the different functions. It is the function to modify if ones want to interface a new function that was not previously available or a new algorithm (variant) for an already existing function.

    Read more…

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function information

    real(kind=psb_dpk_), intent(in) :: a(:,:)

    Matrix

    real(kind=psb_dpk_), intent(out) :: y(:)

    Output vector

    real(kind=psb_dpk_), intent(in) :: x(:)

    Input vector

    integer(kind=psb_ipk_), intent(out) :: info

    Information on the output

    Read more…

procedure, public, pass(fun) :: applys => psfun_d_serial_apply_sparse

  • public subroutine psfun_d_serial_apply_sparse(fun, a, y, x, info)

    This is the core of the function apply on a serial matrix to compute when A is memorized in a sparse storage. In this case the routine converts it to a dense storage and then calls the array version of itself. That is the one implementing the different functions. It is the function to modify if ones want to interface a new function that was not previously available or a new algorithm (variant) for an already existing function.

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function information

    type(psb_dspmat_type), intent(inout) :: a

    Matrix

    real(kind=psb_dpk_), intent(out) :: y(:)

    Output vector

    real(kind=psb_dpk_), intent(in) :: x(:)

    Input vector

    integer(kind=psb_ipk_), intent(out) :: info

    Information on the output

generic, public :: set => setstring, setreal, setinteger, setfunction

  • private subroutine psfun_d_setstring(fun, what, val, info)

    Set function for setting options defined by a string

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    character(len=*), intent(in) :: val

    Value of the string

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag

  • private subroutine psfun_d_setreal(fun, what, val, info)

    Set function for setting options defined by a real

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    real(kind=psb_dpk_), intent(in) :: val

    Real Value of the option

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag

  • private subroutine psfun_d_setinteger(fun, what, val, info)

    Set function for setting options defined by an integer

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    integer(kind=psb_ipk_), intent(in) :: val

    Integer Value of the option

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag

  • private subroutine psfun_d_setpointer(fun, what, val, info)

    To set the function pointer inside the type

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    procedure(func) :: val

    Function to set

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag

procedure, public, pass(fun) :: setfunction => psfun_d_setpointer

  • private subroutine psfun_d_setpointer(fun, what, val, info)

    To set the function pointer inside the type

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    procedure(func) :: val

    Function to set

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag

procedure, public, pass(fun) :: setinteger => psfun_d_setinteger

  • private subroutine psfun_d_setinteger(fun, what, val, info)

    Set function for setting options defined by an integer

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    integer(kind=psb_ipk_), intent(in) :: val

    Integer Value of the option

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag

procedure, public, pass(fun) :: setreal => psfun_d_setreal

  • private subroutine psfun_d_setreal(fun, what, val, info)

    Set function for setting options defined by a real

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    real(kind=psb_dpk_), intent(in) :: val

    Real Value of the option

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag

procedure, public, pass(fun) :: setstring => psfun_d_setstring

  • private subroutine psfun_d_setstring(fun, what, val, info)

    Set function for setting options defined by a string

    Arguments

    Type IntentOptional AttributesName
    class(psfun_d_serial), intent(inout) :: fun

    Function object

    character(len=*), intent(in) :: what

    String of option to set

    character(len=*), intent(in) :: val

    Value of the string

    integer(kind=psb_ipk_), intent(out) :: info

    Output flag