ScaLAPACKFX
Data Types | Public Member Functions | Private Member Functions | List of all members
scalapackfx_module Module Reference

High level Fortran wrappers for the SCALAPACK library. More...

Data Types

interface  scalafx_creatematrix
 Creates a distributed matrix and allocates local storage. More...
 
interface  scalafx_pheev
 Solves Hermitian eigenvalue problem by the QR algorithm. More...
 
interface  scalafx_pheevd
 Solves Hermitian eigenvalue problem by the divide and conquer algorithm. More...
 
interface  scalafx_phegst
 Reduces Hermitian definite generalized eigenvalue problem to standard form. More...
 
interface  scalafx_phegv
 Solves generalized Hermitian eigenvalue problem by the QR algorithm. More...
 
interface  scalafx_phegvd
 Solves generalized Hermitian eigenvalue problem by the divide and conquer algorithm. More...
 
interface  scalafx_ppotrf
 Cholesky factorization of a symmetric/Hermitian positive definite matrix. More...
 
interface  scalafx_psyev
 Solves symmetric eigenvalue problem by the QR algorithm. More...
 
interface  scalafx_psyevd
 Solves symmetric eigenvalue problem by the divide and conquer algorithm. More...
 
interface  scalafx_psygst
 Reduces symmetric definite generalized eigenvalue problem to standard form. More...
 
interface  scalafx_psygv
 Solves generalized symmetric eigenvalue problem by the QR algorithm. More...
 
interface  scalafx_psygvd
 Solves generalized symmetric eigenvalue problem by the divide and conquer algorithm. More...
 
interface  scalafx_ptrsm
 Solves triangular matrix equation. More...
 

Public Member Functions

subroutine, public scalafx_getdescriptor (mygrid, mm, nn, mb, nb, desc, rsrc, csrc, info)
 Returns descriptor and size for the local part of a distributed matrix.
 
subroutine, public scalafx_getlocalshape (mygrid, desc, nrowloc, ncolloc)
 Returns the shape of the local part of a distributed array.
 
subroutine, public scalafx_infog2l (mygrid, desc, grow, gcol, lrow, lcol, rsrc, csrc)
 Maps global position in a distributed matrix to local one.
 

Private Member Functions

subroutine scalafx_ppotrf_real (aa, desca, uplo, ia, ja, info)
 Computes the Cholesky factorization of a Hermitian positive definite matrix.
 
subroutine scalafx_ppotrf_dreal (aa, desca, uplo, ia, ja, info)
 Computes the Cholesky factorization of a Hermitian positive definite matrix.
 
subroutine scalafx_ppotrf_complex (aa, desca, uplo, ia, ja, info)
 Computes the Cholesky factorization of a Hermitian positive definite matrix.
 
subroutine scalafx_ppotrf_dcomplex (aa, desca, uplo, ia, ja, info)
 Computes the Cholesky factorization of a Hermitian positive definite matrix.
 
subroutine scalafx_psygst_real (ibtype, aa, desca, bb, descb, scale, uplo, ia, ja, ib, jb, info)
 Reduces Hermitian-definite generalized eigenvalue problem to standard form.
 
subroutine scalafx_psygst_dreal (ibtype, aa, desca, bb, descb, scale, uplo, ia, ja, ib, jb, info)
 Reduces Hermitian-definite generalized eigenvalue problem to standard form.
 
subroutine scalafx_phegst_complex (ibtype, aa, desca, bb, descb, scale, uplo, ia, ja, ib, jb, info)
 Reduces Hermitian-definite generalized eigenvalue problem to standard form.
 
subroutine scalafx_phegst_dcomplex (ibtype, aa, desca, bb, descb, scale, uplo, ia, ja, ib, jb, info)
 Reduces Hermitian-definite generalized eigenvalue problem to standard form.
 
subroutine scalafx_psyev_real (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, info)
 Solves real eigenvalue problem.
 
subroutine scalafx_psyev_dreal (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, info)
 Solves real eigenvalue problem.
 
subroutine scalafx_pheev_complex (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, rwork, info)
 Solves complex eigenvalue problem.
 
subroutine scalafx_pheev_dcomplex (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, rwork, info)
 Solves complex eigenvalue problem.
 
subroutine scalafx_psygv_real (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, skipchol, info)
 Solves symmetric generalized eigenvalue problem by the QR algorithm.
 
subroutine scalafx_psygv_dreal (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, skipchol, info)
 Solves symmetric generalized eigenvalue problem by the QR algorithm.
 
subroutine scalafx_phegv_complex (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, rwork, skipchol, info)
 Solves Hermitian generalized eigenvalue problem by the QR algorithm.
 
subroutine scalafx_phegv_dcomplex (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, rwork, skipchol, info)
 Solves Hermitian generalized eigenvalue problem by the QR algorithm.
 
subroutine scalafx_psyevd_real (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, iwork, allocfix, info)
 Solves symmetric eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_psyevd_dreal (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, iwork, allocfix, info)
 Solves symmetric eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_pheevd_complex (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, rwork, iwork, allocfix, info)
 Solves Hermitian eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_pheevd_dcomplex (aa, desca, ww, zz, descz, jobz, uplo, ia, ja, iz, jz, work, rwork, iwork, allocfix, info)
 Solves Hermitian eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_psygvd_real (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, iwork, allocfix, skipchol, info)
 Solves real generalized eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_psygvd_dreal (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, iwork, allocfix, skipchol, info)
 Solves real generalized eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_phegvd_complex (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, rwork, iwork, allocfix, skipchol, info)
 Solves Hermitian eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_phegvd_dcomplex (aa, desca, bb, descb, ww, zz, descz, jobz, uplo, ia, ja, ib, jb, iz, jz, work, rwork, iwork, allocfix, skipchol, info)
 Solves Hermitian eigenvalue problem by the divide and conquer algorithm.
 
subroutine scalafx_ptrsm_real (aa, desca, bb, descb, side, uplo, transa, diag, alpha, ia, ja, ib, jb)
 Solves triangular matrix equation.
 
subroutine scalafx_ptrsm_dreal (aa, desca, bb, descb, side, uplo, transa, diag, alpha, ia, ja, ib, jb)
 Solves triangular matrix equation.
 
subroutine scalafx_ptrsm_complex (aa, desca, bb, descb, side, uplo, transa, diag, alpha, ia, ja, ib, jb)
 Solves triangular matrix equation.
 
subroutine scalafx_ptrsm_dcomplex (aa, desca, bb, descb, side, uplo, transa, diag, alpha, ia, ja, ib, jb)
 Solves triangular matrix equation.
 
subroutine scalafx_creatematrix_int (mygrid, mm, nn, mb, nb, mtxloc, desc, rsrc, csrc, info)
 Creates a distributed matrix and allocates local storage.
 
subroutine scalafx_creatematrix_real (mygrid, mm, nn, mb, nb, mtxloc, desc, rsrc, csrc, info)
 Creates a distributed matrix and allocates local storage.
 
subroutine scalafx_creatematrix_dreal (mygrid, mm, nn, mb, nb, mtxloc, desc, rsrc, csrc, info)
 Creates a distributed matrix and allocates local storage.
 
subroutine scalafx_creatematrix_complex (mygrid, mm, nn, mb, nb, mtxloc, desc, rsrc, csrc, info)
 Creates a distributed matrix and allocates local storage.
 
subroutine scalafx_creatematrix_dcomplex (mygrid, mm, nn, mb, nb, mtxloc, desc, rsrc, csrc, info)
 Creates a distributed matrix and allocates local storage.
 

Detailed Description

High level Fortran wrappers for the SCALAPACK library.

Member Function/Subroutine Documentation

subroutine scalapackfx_module::scalafx_creatematrix_complex ( type(blacsgrid), intent(in)  mygrid,
integer, intent(in)  mm,
integer, intent(in)  nn,
integer, intent(in)  mb,
integer, intent(in)  nb,
complex(sp), dimension(:,:), intent(out), allocatable  mtxloc,
integer, dimension(dlen_), intent(out)  desc,
integer, intent(in), optional  rsrc,
integer, intent(in), optional  csrc,
integer, intent(out), optional  info 
)
private

Creates a distributed matrix and allocates local storage.

Parameters
mygridBLACS descriptor.
mmNumber of rows of global matrix.
nnNumber of columns of global matrix.
mbRow block size.
nbColumn block size.
descMatrix descriptor on exit.
mtxlocAllocated local matrix on exit.
rsrcProcess row, over which first row is distributed (default: master row).
csrcProcess column, over which first column is distributed (default: master column).
infoInfo flag.
subroutine scalapackfx_module::scalafx_creatematrix_dcomplex ( type(blacsgrid), intent(in)  mygrid,
integer, intent(in)  mm,
integer, intent(in)  nn,
integer, intent(in)  mb,
integer, intent(in)  nb,
complex(dp), dimension(:,:), intent(out), allocatable  mtxloc,
integer, dimension(dlen_), intent(out)  desc,
integer, intent(in), optional  rsrc,
integer, intent(in), optional  csrc,
integer, intent(out), optional  info 
)
private

Creates a distributed matrix and allocates local storage.

Parameters
mygridBLACS descriptor.
mmNumber of rows of global matrix.
nnNumber of columns of global matrix.
mbRow block size.
nbColumn block size.
descMatrix descriptor on exit.
mtxlocAllocated local matrix on exit.
rsrcProcess row, over which first row is distributed (default: master row).
csrcProcess column, over which first column is distributed (default: master column).
infoInfo flag.
subroutine scalapackfx_module::scalafx_creatematrix_dreal ( type(blacsgrid), intent(in)  mygrid,
integer, intent(in)  mm,
integer, intent(in)  nn,
integer, intent(in)  mb,
integer, intent(in)  nb,
real(dp), dimension(:,:), intent(out), allocatable  mtxloc,
integer, dimension(dlen_), intent(out)  desc,
integer, intent(in), optional  rsrc,
integer, intent(in), optional  csrc,
integer, intent(out), optional  info 
)
private

Creates a distributed matrix and allocates local storage.

Parameters
mygridBLACS descriptor.
mmNumber of rows of global matrix.
nnNumber of columns of global matrix.
mbRow block size.
nbColumn block size.
descMatrix descriptor on exit.
mtxlocAllocated local matrix on exit.
rsrcProcess row, over which first row is distributed (default: master row).
csrcProcess column, over which first column is distributed (default: master column).
infoInfo flag.
subroutine scalapackfx_module::scalafx_creatematrix_int ( type(blacsgrid), intent(in)  mygrid,
integer, intent(in)  mm,
integer, intent(in)  nn,
integer, intent(in)  mb,
integer, intent(in)  nb,
integer, dimension(:,:), intent(out), allocatable  mtxloc,
integer, dimension(dlen_), intent(out)  desc,
integer, intent(in), optional  rsrc,
integer, intent(in), optional  csrc,
integer, intent(out), optional  info 
)
private

Creates a distributed matrix and allocates local storage.

Parameters
mygridBLACS descriptor.
mmNumber of rows of global matrix.
nnNumber of columns of global matrix.
mbRow block size.
nbColumn block size.
descMatrix descriptor on exit.
mtxlocAllocated local matrix on exit.
rsrcProcess row, over which first row is distributed (default: master row).
csrcProcess column, over which first column is distributed (default: master column).
infoInfo flag.
subroutine scalapackfx_module::scalafx_creatematrix_real ( type(blacsgrid), intent(in)  mygrid,
integer, intent(in)  mm,
integer, intent(in)  nn,
integer, intent(in)  mb,
integer, intent(in)  nb,
real(sp), dimension(:,:), intent(out), allocatable  mtxloc,
integer, dimension(dlen_), intent(out)  desc,
integer, intent(in), optional  rsrc,
integer, intent(in), optional  csrc,
integer, intent(out), optional  info 
)
private

Creates a distributed matrix and allocates local storage.

Parameters
mygridBLACS descriptor.
mmNumber of rows of global matrix.
nnNumber of columns of global matrix.
mbRow block size.
nbColumn block size.
descMatrix descriptor on exit.
mtxlocAllocated local matrix on exit.
rsrcProcess row, over which first row is distributed (default: master row).
csrcProcess column, over which first column is distributed (default: master column).
infoInfo flag.
subroutine, public scalapackfx_module::scalafx_getdescriptor ( type(blacsgrid), intent(in)  mygrid,
integer, intent(in)  mm,
integer, intent(in)  nn,
integer, intent(in)  mb,
integer, intent(in)  nb,
integer, dimension(dlen_), intent(out)  desc,
integer, intent(in), optional  rsrc,
integer, intent(in), optional  csrc,
integer, intent(out), optional  info 
)

Returns descriptor and size for the local part of a distributed matrix.

Parameters
mygridBLACS descriptor.
mmNumber of rows of global matrix.
nnNumber of columns of global matrix.
mbRow block size.
nbColumn block size.
descMatrix descriptor on exit.
nrowlocNumber of rows for local matrix.
ncollocNumber of columns for local matrix.
rsrcProcess row, over which first row is distributed (default: master row).
csrcProcess column, over which first column is distributed (default: master column).
infoInfo flag.
subroutine, public scalapackfx_module::scalafx_getlocalshape ( type(blacsgrid), intent(in)  mygrid,
integer, dimension(dlen_), intent(in)  desc,
integer, intent(out)  nrowloc,
integer, intent(out)  ncolloc 
)

Returns the shape of the local part of a distributed array.

Parameters
mygridBLACS grid descriptor.
descGlobal matrix descriptor.
nrowlocNr. of local rows.
ncollocNr. of local columns.
subroutine, public scalapackfx_module::scalafx_infog2l ( type(blacsgrid), intent(in)  mygrid,
integer, dimension(dlen_), intent(in)  desc,
integer, intent(in)  grow,
integer, intent(in)  gcol,
integer, intent(out)  lrow,
integer, intent(out)  lcol,
integer, intent(out)  rsrc,
integer, intent(out)  csrc 
)

Maps global position in a distributed matrix to local one.

Parameters
mygridBLACS descriptor.
descDescriptor of the distributed matrix.
growGlobal row index.
gcolGlobal column index.
lrowLocal row index on output.
lcolLocal column index on output.
rsrcRow of the process owning the local matrix.
csrcColumn of the process owning the local matrix.
subroutine scalapackfx_module::scalafx_pheev_complex ( complex(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:), intent(out)  ww,
complex(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(sp), dimension(:), intent(inout), optional, allocatable  work,
real(sp), dimension(:), intent(inout), optional, allocatable  rwork,
integer, intent(out), optional  info 
)
private

Solves complex eigenvalue problem.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated automatically)
rworkReal working array (if not specified, allocated automatically)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?heev).
subroutine scalapackfx_module::scalafx_pheev_dcomplex ( complex(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:), intent(out)  ww,
complex(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(dp), dimension(:), intent(inout), optional, allocatable  work,
real(dp), dimension(:), intent(inout), optional, allocatable  rwork,
integer, intent(out), optional  info 
)
private

Solves complex eigenvalue problem.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated automatically)
rworkReal working array (if not specified, allocated automatically)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?heev).
subroutine scalapackfx_module::scalafx_pheevd_complex ( complex(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:), intent(out)  ww,
complex(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(sp), dimension(:), intent(inout), optional, allocatable  work,
real(sp), dimension(:), intent(inout), optional, allocatable  rwork,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
integer, intent(out), optional  info 
)
private

Solves Hermitian eigenvalue problem by the divide and conquer algorithm.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated automatically)
rworkReal working array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
Note
Unfortunately, SCALAPACK seems to return the wrong real work space sizes for many cases. This routine (when allocfix had been set to true) tries to improve on it by two ways:
  • It queries also the QR routine (p?heev) for workspace size and takes this, if bigger than returned by p?heevd. That should ensure that the pzunmtr() routine does not encounter any difficulties.
  • It additionally enlarges the real workspace size by the amount of memory needed by the pdlasrt() routine, to make sure this would not fail either.
Those fixes are empirical, may lead to oversized workspace allocations and probably would not even fix the allocation problem, but are the best we could find so far.
See Also
SCALAPACK documentation (routine p?heevd).
subroutine scalapackfx_module::scalafx_pheevd_dcomplex ( complex(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:), intent(out)  ww,
complex(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(dp), dimension(:), intent(inout), optional, allocatable  work,
real(dp), dimension(:), intent(inout), optional, allocatable  rwork,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
integer, intent(out), optional  info 
)
private

Solves Hermitian eigenvalue problem by the divide and conquer algorithm.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated automatically)
rworkReal working array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
Note
Unfortunately, SCALAPACK seems to return the wrong real work space sizes for many cases. This routine (when allocfix had been set to true) tries to improve on it by two ways:
  • It queries also the QR routine (p?heev) for workspace size and takes this, if bigger than returned by p?heevd. That should ensure that the pzunmtr() routine does not encounter any difficulties.
  • It additionally enlarges the real workspace size by the amount of memory needed by the pdlasrt() routine, to make sure this would not fail either.
Those fixes are empirical, may lead to oversized workspace allocations and probably would not even fix the allocation problem, but are the best we could find so far.
See Also
SCALAPACK documentation (routine p?heevd).
subroutine scalapackfx_module::scalafx_phegst_complex ( integer, intent(in)  ibtype,
complex(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(sp), dimension(:,:), intent(in)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(sp), intent(out)  scale,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(out), optional  info 
)
private

Reduces Hermitian-definite generalized eigenvalue problem to standard form.

Parameters
ibtypeType of the problem (1, 2, 3).
aaMatrix A.
descaDescriptor of matrix A.
bbRight hand side of the eigenvalue equation (B).
desbDescriptor of matrix B.
scaleScaling factors on return.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?sygst/p?hegst).
subroutine scalapackfx_module::scalafx_phegst_dcomplex ( integer, intent(in)  ibtype,
complex(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(dp), dimension(:,:), intent(in)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(dp), intent(out)  scale,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(out), optional  info 
)
private

Reduces Hermitian-definite generalized eigenvalue problem to standard form.

Parameters
ibtypeType of the problem (1, 2, 3).
aaMatrix A.
descaDescriptor of matrix A.
bbRight hand side of the eigenvalue equation (B).
desbDescriptor of matrix B.
scaleScaling factors on return.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?sygst/p?hegst).
subroutine scalapackfx_module::scalafx_phegv_complex ( complex(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(sp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(sp), dimension(:), intent(out)  ww,
complex(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(sp), dimension(:), intent(inout), optional, allocatable  work,
real(sp), dimension(:), intent(inout), optional, allocatable  rwork,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves Hermitian generalized eigenvalue problem by the QR algorithm.

Invokes SCALAPACK routines p?potrf, p?hegst, p?heev, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated (automatically)
rworkReal working array (if not specified, allocated automatically)
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?hegst, p?heev, p?trsm).
subroutine scalapackfx_module::scalafx_phegv_dcomplex ( complex(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(dp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(dp), dimension(:), intent(out)  ww,
complex(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(dp), dimension(:), intent(inout), optional, allocatable  work,
real(dp), dimension(:), intent(inout), optional, allocatable  rwork,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves Hermitian generalized eigenvalue problem by the QR algorithm.

Invokes SCALAPACK routines p?potrf, p?hegst, p?heev, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated (automatically)
rworkReal working array (if not specified, allocated automatically)
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?hegst, p?heev, p?trsm).
subroutine scalapackfx_module::scalafx_phegvd_complex ( complex(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(sp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(sp), dimension(:), intent(out)  ww,
complex(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(sp), dimension(:), intent(inout), optional, allocatable  work,
real(sp), dimension(:), intent(inout), optional, allocatable  rwork,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves Hermitian eigenvalue problem by the divide and conquer algorithm.

Invokes SCALAPACK routines p?potrf, p?hegst, p?heevd, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated automatically)
rworkReal working array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values. See the scalafx_pheevd_complex() routine for details.
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?hegst, p?heevd, p?trsm).
subroutine scalapackfx_module::scalafx_phegvd_dcomplex ( complex(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(dp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(dp), dimension(:), intent(out)  ww,
complex(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
complex(dp), dimension(:), intent(inout), optional, allocatable  work,
real(dp), dimension(:), intent(inout), optional, allocatable  rwork,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves Hermitian eigenvalue problem by the divide and conquer algorithm.

Invokes SCALAPACK routines p?potrf, p?hegst, p?heevd, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workComplex working array (if not specified, allocated automatically)
rworkReal working array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values. See the scalafx_pheevd_dcomplex() routine for details.
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?hegst, p?heevd, p?trsm).
subroutine scalapackfx_module::scalafx_ppotrf_complex ( complex(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(out), optional  info 
)
private

Computes the Cholesky factorization of a Hermitian positive definite matrix.

Parameters
descaDescriptor of the matrix.
aaMatrix.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix (default: 1)
jaFirst column of the submatrix (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?potrf).
subroutine scalapackfx_module::scalafx_ppotrf_dcomplex ( complex(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(out), optional  info 
)
private

Computes the Cholesky factorization of a Hermitian positive definite matrix.

Parameters
descaDescriptor of the matrix.
aaMatrix.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix (default: 1)
jaFirst column of the submatrix (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?potrf).
subroutine scalapackfx_module::scalafx_ppotrf_dreal ( real(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(out), optional  info 
)
private

Computes the Cholesky factorization of a Hermitian positive definite matrix.

Parameters
descaDescriptor of the matrix.
aaMatrix.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix (default: 1)
jaFirst column of the submatrix (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?potrf).
subroutine scalapackfx_module::scalafx_ppotrf_real ( real(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(out), optional  info 
)
private

Computes the Cholesky factorization of a Hermitian positive definite matrix.

Parameters
descaDescriptor of the matrix.
aaMatrix.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix (default: 1)
jaFirst column of the submatrix (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?potrf).
subroutine scalapackfx_module::scalafx_psyev_dreal ( real(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:), intent(out)  ww,
real(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(dp), dimension(:), intent(inout), optional, allocatable  work,
integer, intent(out), optional  info 
)
private

Solves real eigenvalue problem.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?syev).
subroutine scalapackfx_module::scalafx_psyev_real ( real(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:), intent(out)  ww,
real(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(sp), dimension(:), intent(inout), optional, allocatable  work,
integer, intent(out), optional  info 
)
private

Solves real eigenvalue problem.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routine p?syev).
subroutine scalapackfx_module::scalafx_psyevd_dreal ( real(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:), intent(out)  ww,
real(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(dp), dimension(:), intent(inout), optional, allocatable  work,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
integer, intent(out), optional  info 
)
private

Solves symmetric eigenvalue problem by the divide and conquer algorithm.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
Note
Unfortunately, SCALAPACK seems to return the wrong real work space sizes for many cases. This routine (when allocfix had been set to true) tries to improve on it by two ways:
  • It queries also the QR routine (p?syev) for workspace size and takes this, if bigger than returned by p?syevd. That should ensure that the pdormtr() routine does not encounter any difficulties.
  • It additionally enlarges the real workspace size by the amount of memory needed by the pdlasrt() routine, to make sure this would not fail either.
Those fixes are empirical, may lead to oversized workspace allocations and probably would not even fix the allocation problem, but are the best we could find so far.
See Also
SCALAPACK documentation (routine p?syevd).
subroutine scalapackfx_module::scalafx_psyevd_real ( real(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:), intent(out)  ww,
real(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(sp), dimension(:), intent(inout), optional, allocatable  work,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
integer, intent(out), optional  info 
)
private

Solves symmetric eigenvalue problem by the divide and conquer algorithm.

Parameters
aaMatrix to diagonalize (A).
descaDescriptor of matrix A.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
Note
Unfortunately, SCALAPACK seems to return the wrong real work space sizes for many cases. This routine (when allocfix had been set to true) tries to improve on it by two ways:
  • It queries also the QR routine (p?syev) for workspace size and takes this, if bigger than returned by p?syevd. That should ensure that the pdormtr() routine does not encounter any difficulties.
  • It additionally enlarges the real workspace size by the amount of memory needed by the pdlasrt() routine, to make sure this would not fail either.
Those fixes are empirical, may lead to oversized workspace allocations and probably would not even fix the allocation problem, but are the best we could find so far.
See Also
SCALAPACK documentation (routine p?syevd).
subroutine scalapackfx_module::scalafx_psygst_dreal ( integer, intent(in)  ibtype,
real(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:,:), intent(in)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(dp), intent(out)  scale,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(out), optional  info 
)
private

Reduces Hermitian-definite generalized eigenvalue problem to standard form.

Parameters
ibtypeType of the problem (1, 2, 3).
aaMatrix A.
descaDescriptor of matrix A.
bbRight hand side of the eigenvalue equation (B).
desbDescriptor of matrix B.
scaleScaling factors on return.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?sygst/p?hegst).
subroutine scalapackfx_module::scalafx_psygst_real ( integer, intent(in)  ibtype,
real(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:,:), intent(in)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(sp), intent(out)  scale,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(out), optional  info 
)
private

Reduces Hermitian-definite generalized eigenvalue problem to standard form.

Parameters
ibtypeType of the problem (1, 2, 3).
aaMatrix A.
descaDescriptor of matrix A.
bbRight hand side of the eigenvalue equation (B).
desbDescriptor of matrix B.
scaleScaling factors on return.
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?sygst/p?hegst).
subroutine scalapackfx_module::scalafx_psygv_dreal ( real(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(dp), dimension(:), intent(out)  ww,
real(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(dp), dimension(:), intent(inout), optional, allocatable  work,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves symmetric generalized eigenvalue problem by the QR algorithm.

Invokes SCALAPACK routines p?potrf, p?sygst, p?syev, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?hegst, p?heev, p?trsm).
subroutine scalapackfx_module::scalafx_psygv_real ( real(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(sp), dimension(:), intent(out)  ww,
real(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(sp), dimension(:), intent(inout), optional, allocatable  work,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves symmetric generalized eigenvalue problem by the QR algorithm.

Invokes SCALAPACK routines p?potrf, p?sygst, p?syev, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?hegst, p?heev, p?trsm).
subroutine scalapackfx_module::scalafx_psygvd_dreal ( real(dp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(dp), dimension(:), intent(out)  ww,
real(dp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(dp), dimension(:), intent(inout), optional, allocatable  work,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves real generalized eigenvalue problem by the divide and conquer algorithm.

Invokes SCALAPACK routines p?potrf, p?sygst, p?syevd, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values. See the scalafx_psyevd_dreal() routine for details.
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?sygst, p?syevd, p?trsm).
subroutine scalapackfx_module::scalafx_psygvd_real ( real(sp), dimension(:,:), intent(inout)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
real(sp), dimension(:), intent(out)  ww,
real(sp), dimension(:,:), intent(out)  zz,
integer, dimension(dlen_), intent(in)  descz,
character, intent(in), optional  jobz,
character, intent(in), optional  uplo,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb,
integer, intent(in), optional  iz,
integer, intent(in), optional  jz,
real(sp), dimension(:), intent(inout), optional, allocatable  work,
integer, dimension(:), intent(inout), optional, allocatable  iwork,
logical, intent(in), optional  allocfix,
logical, intent(in), optional  skipchol,
integer, intent(out), optional  info 
)
private

Solves real generalized eigenvalue problem by the divide and conquer algorithm.

Invokes SCALAPACK routines p?potrf, p?sygst, p?syevd, p?trsm in order to transform the general eigenvalue problem to the standard form and transform the eigenvectors back.

Parameters
aaMatrix to diagonalize (A), transformed matrix on exit.
descaDescriptor of matrix A.
bbMatrix on the right hand side (B), transformed matrix on exit.
descbDescriptor of matrix B.
wwEigenvalues on exit.
zzEigenvectors on exit (Z).
desczDescriptor of the eigenvector matrix.
jobzJob type (default: "V")
uploUpper or lower diagonal matrix (default: "L")
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
izFirst row of the submatrix Z (default: 1)
jzFirst column of the submatrix Z (default: 1)
workWorking array (if not specified, allocated automatically)
iworkInteger working array (if not specified, allocated automatically)
allocfixIf yes, the routine tries to enlarge the workspace size as returned by the appropriate p?syevd() routine by some empirical values. See the scalafx_psyevd_real() routine for details.
skipcholIf true, the Cholesky transformation will be skipped. Array bb must have the Cholesky transformed form.
infoInfo flag. If not specified and SCALAPACK calls returns nozero, subroutine stops.
See Also
SCALAPACK documentation (routines p?potrf, p?sygst, p?syevd, p?trsm).
subroutine scalapackfx_module::scalafx_ptrsm_complex ( complex(sp), dimension(:,:), intent(in)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(sp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
character, intent(in), optional  side,
character, intent(in), optional  uplo,
character, intent(in), optional  transa,
character, intent(in), optional  diag,
complex(sp), intent(in), optional  alpha,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb 
)
private

Solves triangular matrix equation.

Parameters
aaLeft hand side of equation (A)
descaDescriptor of matrix A.
bbRight hand side (B).
descbDescriptor of matrix B.
sideSide of A (default: "L")
uploUpper or lower diagonal matrix (default: "L")
transaTransposition flag (default "N")
diagSpecifieds whether matrix A is unit triangular (default: "N")
alphaPrefactor of B (default: 1.0)
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
See Also
SCALAPACK documentation (routine p?trsm).
subroutine scalapackfx_module::scalafx_ptrsm_dcomplex ( complex(dp), dimension(:,:), intent(in)  aa,
integer, dimension(dlen_), intent(in)  desca,
complex(dp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
character, intent(in), optional  side,
character, intent(in), optional  uplo,
character, intent(in), optional  transa,
character, intent(in), optional  diag,
complex(dp), intent(in), optional  alpha,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb 
)
private

Solves triangular matrix equation.

Parameters
aaLeft hand side of equation (A)
descaDescriptor of matrix A.
bbRight hand side (B).
descbDescriptor of matrix B.
sideSide of A (default: "L")
uploUpper or lower diagonal matrix (default: "L")
transaTransposition flag (default "N")
diagSpecifieds whether matrix A is unit triangular (default: "N")
alphaPrefactor of B (default: 1.0)
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
See Also
SCALAPACK documentation (routine p?trsm).
subroutine scalapackfx_module::scalafx_ptrsm_dreal ( real(dp), dimension(:,:), intent(in)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(dp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
character, intent(in), optional  side,
character, intent(in), optional  uplo,
character, intent(in), optional  transa,
character, intent(in), optional  diag,
real(dp), intent(in), optional  alpha,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb 
)
private

Solves triangular matrix equation.

Parameters
aaLeft hand side of equation (A)
descaDescriptor of matrix A.
bbRight hand side (B).
descbDescriptor of matrix B.
sideSide of A (default: "L")
uploUpper or lower diagonal matrix (default: "L")
transaTransposition flag (default "N")
diagSpecifieds whether matrix A is unit triangular (default: "N")
alphaPrefactor of B (default: 1.0)
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
See Also
SCALAPACK documentation (routine p?trsm).
subroutine scalapackfx_module::scalafx_ptrsm_real ( real(sp), dimension(:,:), intent(in)  aa,
integer, dimension(dlen_), intent(in)  desca,
real(sp), dimension(:,:), intent(inout)  bb,
integer, dimension(dlen_), intent(in)  descb,
character, intent(in), optional  side,
character, intent(in), optional  uplo,
character, intent(in), optional  transa,
character, intent(in), optional  diag,
real(sp), intent(in), optional  alpha,
integer, intent(in), optional  ia,
integer, intent(in), optional  ja,
integer, intent(in), optional  ib,
integer, intent(in), optional  jb 
)
private

Solves triangular matrix equation.

Parameters
aaLeft hand side of equation (A)
descaDescriptor of matrix A.
bbRight hand side (B).
descbDescriptor of matrix B.
sideSide of A (default: "L")
uploUpper or lower diagonal matrix (default: "L")
transaTransposition flag (default "N")
diagSpecifieds whether matrix A is unit triangular (default: "N")
alphaPrefactor of B (default: 1.0)
iaFirst row of the submatrix A (default: 1)
jaFirst column of the submatrix A (default: 1)
ibFirst row of the submatrix B (default: 1)
jbFirst column of the submatrix B (default: 1)
See Also
SCALAPACK documentation (routine p?trsm).

The documentation for this module was generated from the following file: