next up previous contents
Next: Subroutine mld_precfree Up: User Interface Previous: Subroutine mld_smoothers_bld   Contents


Subroutine mld_precaply

mld_precaply(p,x,y,desc_a,info)
mld_precaply(p,x,y,desc_a,info,trans,work)

This routine computes $y = op(M^{-1})  x$, where $M$ is a previously built preconditioner, stored into p, and $op$ denotes the preconditioner itself or its transpose, according to the value of trans. Note that, when MLD2P4 is used with a Krylov solver from PSBLAS, mld_precaply is called within the PSBLAS routine psb_krylov and hence it is completely transparent to the user.

Arguments

p type(mld_xprec_type), intent(inout).
  The preconditioner data structure, containing the local part of $M$. Note that x must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
x type(kind_parameter), dimension(:), intent(in).
  The local part of the vector $x$. Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
y type(kind_parameter), dimension(:), intent(out).
  The local part of the vector $y$. Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.
desc_a type(psb_desc_type), intent(in).
  The communication descriptor associated to the matrix to be preconditioned.
info integer, intent(out).
  Error code. If no error, 0 is returned. See Section 7 for details.
trans character(len=1), optional, intent(in).
  If trans = 'N','n' then $op(M^{-1}) = M^{-1}$; if trans = 'T','t' then $op(M^{-1}) = M^{-T}$ (transpose of $M^{-1})$; if trans = 'C','c' then $op(M^{-1}) = M^{-C}$ (conjugate transpose of $M^{-1})$.
work type(kind_parameter), dimension(:), optional, target.
  Workspace. Its size should be at least 4 * psb_cd_get_local_ cols(desc_a) (see the PSBLAS User's Guide). Note that type and kind_parameter must be chosen according to the real/complex, single/double precision version of MLD2P4 under use.


next up previous contents
Next: Subroutine mld_precfree Up: User Interface Previous: Subroutine mld_smoothers_bld   Contents