psfun_d_serial_apply_array Subroutine

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

Uses

    • psb_base_mod
  • proc~~psfun_d_serial_apply_array~~UsesGraph proc~psfun_d_serial_apply_array psfun_d_serial_apply_array psb_base_mod psb_base_mod proc~psfun_d_serial_apply_array->psb_base_mod

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.

INTERFACE for the John Burkardt Taylor code for the matrix exponential.

INTERFACE for the John Burkardt scaling and squaring code for the matrix exponential.

INTERFACE for the EXPOKIT package computes the matrix exponential using the irreducible rational Pade approximation to the exponential function exp(x) = r(x) = (+/-)( I + 2*(q(x)/p(x)) ), combined with scaling-and-squaring.

INTERFACE for the EXPOKIT package computes the matrix exponential using the partial fraction expansion of the uniform rational Chebyshev approximation for an Hessenberg matrix.

INTERFACE for the EXPOKIT package computes the matrix exponential using the partial fraction expansion of the uniform rational Chebyshev approximation for a general matrix.

INTERFACE for the EXPOKIT package computes the matrix exponential using the partial fraction expansion of the uniform rational Chebyshev approximation for a symmetric matrix.

For a symmetric matrix we need only to compute the function values, and not also its derivatives. We use LAPACK to compute the Schur decomposition of the input matrix, apply f on the eigenvalues and return the computation

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

local variables


Calls

proc~~psfun_d_serial_apply_array~~CallsGraph proc~psfun_d_serial_apply_array psfun_d_serial_apply_array psb_erractionsave psb_erractionsave proc~psfun_d_serial_apply_array->psb_erractionsave r8mat_expm1 r8mat_expm1 proc~psfun_d_serial_apply_array->r8mat_expm1 r8mat_expm2 r8mat_expm2 proc~psfun_d_serial_apply_array->r8mat_expm2 dnchbv dnchbv proc~psfun_d_serial_apply_array->dnchbv dschbv dschbv proc~psfun_d_serial_apply_array->dschbv dgpadm dgpadm proc~psfun_d_serial_apply_array->dgpadm dgchbv dgchbv proc~psfun_d_serial_apply_array->dgchbv psb_erractionrestore psb_erractionrestore proc~psfun_d_serial_apply_array->psb_erractionrestore dsyev dsyev proc~psfun_d_serial_apply_array->dsyev dgemv dgemv proc~psfun_d_serial_apply_array->dgemv

Contents

None