fortran-lapack
Loading...
Searching...
No Matches
la_lapack_aux Module Reference

Data Types

interface  la_selctg_c
 
interface  la_selctg_d
 
interface  la_selctg_q
 
interface  la_selctg_s
 
interface  la_selctg_w
 
interface  la_selctg_z
 
interface  la_select_c
 
interface  la_select_d
 
interface  la_select_q
 
interface  la_select_s
 
interface  la_select_w
 
interface  la_select_z
 

Functions/Subroutines

pure character function, public la_chla_transtype (trans)
 This subroutine translates from a BLAST-specified integer constant to the character string specifying a transposition operation. CHLA_TRANSTYPE: returns an CHARACTER*1. If CHLA_TRANSTYPE: is 'X', then input is not an integer indicating a transposition operator. Otherwise CHLA_TRANSTYPE returns the constant value corresponding to TRANS.
 
pure real(dp) function, public la_droundup_lwork (lwork)
 DROUNDUP_LWORK: deals with a subtle bug with returning LWORK as a Float. This routine guarantees it is rounded up instead of down by multiplying LWORK by 1+eps when it is necessary, where eps is the relative machine precision. E.g., float( 9007199254740993 ) == 9007199254740992 float( 9007199254740993 ) * (1.+eps) == 9007199254740994.
 
pure integer(ilp) function, public la_icmax1 (n, cx, incx)
 ICMAX1: finds the index of the first vector element of maximum absolute value. Based on ICAMAX from Level 1 BLAS. The change is to use the 'genuine' absolute value.
 
pure integer(ilp) function, public la_ieeeck (ispec, zero, one)
 IEEECK: is called from the ILAENV to verify that Infinity and possibly NaN arithmetic is safe (i.e. will not trap).
 
pure integer(ilp) function, public la_ilaclc (m, n, a, lda)
 ILACLC: scans A for its last non-zero column.
 
pure integer(ilp) function, public la_ilaclr (m, n, a, lda)
 ILACLR: scans A for its last non-zero row.
 
integer(ilp) function, public la_iladiag (diag)
 This subroutine translated from a character string specifying if a matrix has unit diagonal or not to the relevant BLAST-specified integer constant. ILADIAG: returns an INTEGER. If ILADIAG: < 0, then the input is not a character indicating a unit or non-unit diagonal. Otherwise ILADIAG returns the constant value corresponding to DIAG.
 
pure integer(ilp) function, public la_iladlc (m, n, a, lda)
 ILADLC: scans A for its last non-zero column.
 
pure integer(ilp) function, public la_iladlr (m, n, a, lda)
 ILADLR: scans A for its last non-zero row.
 
integer(ilp) function, public la_ilaprec (prec)
 This subroutine translated from a character string specifying an intermediate precision to the relevant BLAST-specified integer constant. ILAPREC: returns an INTEGER. If ILAPREC: < 0, then the input is not a character indicating a supported intermediate precision. Otherwise ILAPREC returns the constant value corresponding to PREC.
 
pure integer(ilp) function, public la_ilaslc (m, n, a, lda)
 ILASLC: scans A for its last non-zero column.
 
pure integer(ilp) function, public la_ilaslr (m, n, a, lda)
 ILASLR: scans A for its last non-zero row.
 
integer(ilp) function, public la_ilatrans (trans)
 This subroutine translates from a character string specifying a transposition operation to the relevant BLAST-specified integer constant. ILATRANS: returns an INTEGER. If ILATRANS: < 0, then the input is not a character indicating a transposition operator. Otherwise ILATRANS returns the constant value corresponding to TRANS.
 
integer(ilp) function, public la_ilauplo (uplo)
 This subroutine translated from a character string specifying a upper- or lower-triangular matrix to the relevant BLAST-specified integer constant. ILAUPLO: returns an INTEGER. If ILAUPLO: < 0, then the input is not a character indicating an upper- or lower-triangular matrix. Otherwise ILAUPLO returns the constant value corresponding to UPLO.
 
pure integer(ilp) function, public la_ilazlc (m, n, a, lda)
 ILAZLC: scans A for its last non-zero column.
 
pure integer(ilp) function, public la_ilazlr (m, n, a, lda)
 ILAZLR: scans A for its last non-zero row.
 
pure integer(ilp) function, public la_iparmq (ispec, name, opts, n, ilo, ihi, lwork)
 This program sets problem and machine dependent parameters useful for xHSEQR and related subroutines for eigenvalue problems. It is called whenever IPARMQ: is called with 12 <= ISPEC <= 16.
 
pure integer(ilp) function, public la_izmax1 (n, zx, incx)
 IZMAX1: finds the index of the first vector element of maximum absolute value. Based on IZAMAX from Level 1 BLAS. The change is to use the 'genuine' absolute value.
 
pure logical(lk) function, public la_lsamen (n, ca, cb)
 LSAMEN: tests if the first N letters of CA are the same as the first N letters of CB, regardless of case. LSAMEN returns .TRUE. if CA and CB are equivalent except for case and .FALSE. otherwise. LSAMEN also returns .FALSE. if LEN( CA ) or LEN( CB ) is less than N.
 
pure real(sp) function, public la_sroundup_lwork (lwork)
 SROUNDUP_LWORK: deals with a subtle bug with returning LWORK as a Float. This routine guarantees it is rounded up instead of down by multiplying LWORK by 1+eps when it is necessary, where eps is the relative machine precision. E.g., float( 16777217 ) == 16777216 float( 16777217 ) * (1.+eps) == 16777218.
 
pure real(qp) function, public la_qroundup_lwork (lwork)
 DROUNDUP_LWORK: deals with a subtle bug with returning LWORK as a Float. This routine guarantees it is rounded up instead of down by multiplying LWORK by 1+eps when it is necessary, where eps is the relative machine precision. E.g., float( 9007199254740993 ) == 9007199254740992 float( 9007199254740993 ) * (1.+eps) == 9007199254740994.
 
integer(ilp) function, public la_ilaqiag (diag)
 This subroutine translated from a character string specifying if a matrix has unit diagonal or not to the relevant BLAST-specified integer constant. ILADIAG: returns an INTEGER. If ILADIAG: < 0, then the input is not a character indicating a unit or non-unit diagonal. Otherwise ILADIAG returns the constant value corresponding to DIAG.
 
pure integer(ilp) function, public la_ilaqlc (m, n, a, lda)
 ILADLC: scans A for its last non-zero column.
 
pure integer(ilp) function, public la_ilaqlr (m, n, a, lda)
 ILADLR: scans A for its last non-zero row.
 
pure integer(ilp) function, public la_ilawlc (m, n, a, lda)
 ILAZLC: scans A for its last non-zero column.
 
pure integer(ilp) function, public la_ilawlr (m, n, a, lda)
 ILAZLR: scans A for its last non-zero row.
 
pure integer(ilp) function, public la_iwmax1 (n, zx, incx)
 IZMAX1: finds the index of the first vector element of maximum absolute value. Based on IZAMAX from Level 1 BLAS. The change is to use the 'genuine' absolute value.
 
pure integer(ilp) function, public la_ilaenv (ispec, name, opts, n1, n2, n3, n4)
 ILAENV: is called from the LAPACK routines to choose problem-dependent parameters for the local environment. See ISPEC for a description of the parameters. ILAENV returns an INTEGER if ILAENV >= 0: ILAENV returns the value of the parameter specified by ISPEC if ILAENV < 0: if ILAENV = -k, the k-th argument had an illegal value. This version provides a set of parameters which should give good, but not optimal, performance on many of the currently available computers. Users are encouraged to modify this subroutine to set the tuning parameters for their particular machine using the option and problem size information in the arguments. This routine will not function correctly if it is converted to all lower case. Converting it to all upper case is allowed.
 
pure integer(ilp) function, public la_iparam2stage (ispec, name, opts, ni, nbi, ibi, nxi)
 This program sets problem and machine dependent parameters useful for xHETRD_2STAGE, xHETRD_HE2HB, xHETRD_HB2ST, xGEBRD_2STAGE, xGEBRD_GE2GB, xGEBRD_GB2BD and related subroutines for eigenvalue problems. It is called whenever ILAENV is called with 17 <= ISPEC <= 21. It is called whenever ILAENV2STAGE is called with 1 <= ISPEC <= 5 with a direct conversion ISPEC + 16.
 
pure integer(ilp) function, public la_ilaenv2stage (ispec, name, opts, n1, n2, n3, n4)
 ILAENV2STAGE: is called from the LAPACK routines to choose problem-dependent parameters for the local environment. See ISPEC for a description of the parameters. It sets problem and machine dependent parameters useful for *_2STAGE and related subroutines. ILAENV2STAGE returns an INTEGER if ILAENV2STAGE >= 0: ILAENV2STAGE returns the value of the parameter specified by ISPEC if ILAENV2STAGE < 0: if ILAENV2STAGE = -k, the k-th argument had an illegal value. This version provides a set of parameters which should give good, but not optimal, performance on many of the currently available computers for the 2-stage solvers. Users are encouraged to modify this subroutine to set the tuning parameters for their particular machine using the option and problem size information in the arguments. This routine will not function correctly if it is converted to all lower case. Converting it to all upper case is allowed.
 

Function/Subroutine Documentation

◆ la_chla_transtype()

pure character function, public la_lapack_aux::la_chla_transtype ( integer(ilp), intent(in) trans)

This subroutine translates from a BLAST-specified integer constant to the character string specifying a transposition operation. CHLA_TRANSTYPE: returns an CHARACTER*1. If CHLA_TRANSTYPE: is 'X', then input is not an integer indicating a transposition operator. Otherwise CHLA_TRANSTYPE returns the constant value corresponding to TRANS.

Here is the call graph for this function:

◆ la_droundup_lwork()

pure real(dp) function, public la_lapack_aux::la_droundup_lwork ( integer(ilp), intent(in) lwork)

DROUNDUP_LWORK: deals with a subtle bug with returning LWORK as a Float. This routine guarantees it is rounded up instead of down by multiplying LWORK by 1+eps when it is necessary, where eps is the relative machine precision. E.g., float( 9007199254740993 ) == 9007199254740992 float( 9007199254740993 ) * (1.+eps) == 9007199254740994.

Returns
DROUNDUP_LWORK

DROUNDUP_LWORK >= LWORK. DROUNDUP_LWORK is guaranteed to have zero decimal part.

Here is the call graph for this function:

◆ la_icmax1()

pure integer(ilp) function, public la_lapack_aux::la_icmax1 ( integer(ilp), intent(in) n,
complex(sp), dimension(*), intent(in) cx,
integer(ilp), intent(in) incx )

ICMAX1: finds the index of the first vector element of maximum absolute value. Based on ICAMAX from Level 1 BLAS. The change is to use the 'genuine' absolute value.

Here is the call graph for this function:

◆ la_ieeeck()

pure integer(ilp) function, public la_lapack_aux::la_ieeeck ( integer(ilp), intent(in) ispec,
real(sp), intent(in) zero,
real(sp), intent(in) one )

IEEECK: is called from the ILAENV to verify that Infinity and possibly NaN arithmetic is safe (i.e. will not trap).

Here is the call graph for this function:

◆ la_ilaclc()

pure integer(ilp) function, public la_lapack_aux::la_ilaclc ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(sp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILACLC: scans A for its last non-zero column.

Here is the call graph for this function:

◆ la_ilaclr()

pure integer(ilp) function, public la_lapack_aux::la_ilaclr ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(sp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILACLR: scans A for its last non-zero row.

Here is the call graph for this function:

◆ la_iladiag()

integer(ilp) function, public la_lapack_aux::la_iladiag ( character diag)

This subroutine translated from a character string specifying if a matrix has unit diagonal or not to the relevant BLAST-specified integer constant. ILADIAG: returns an INTEGER. If ILADIAG: < 0, then the input is not a character indicating a unit or non-unit diagonal. Otherwise ILADIAG returns the constant value corresponding to DIAG.

Here is the call graph for this function:

◆ la_iladlc()

pure integer(ilp) function, public la_lapack_aux::la_iladlc ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(dp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILADLC: scans A for its last non-zero column.

Here is the call graph for this function:

◆ la_iladlr()

pure integer(ilp) function, public la_lapack_aux::la_iladlr ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(dp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILADLR: scans A for its last non-zero row.

Here is the call graph for this function:

◆ la_ilaenv()

pure integer(ilp) function, public la_lapack_aux::la_ilaenv ( integer(ilp), intent(in) ispec,
character(len=*), intent(in) name,
character(len=*), intent(in) opts,
integer(ilp), intent(in) n1,
integer(ilp), intent(in) n2,
integer(ilp), intent(in) n3,
integer(ilp), intent(in) n4 )

ILAENV: is called from the LAPACK routines to choose problem-dependent parameters for the local environment. See ISPEC for a description of the parameters. ILAENV returns an INTEGER if ILAENV >= 0: ILAENV returns the value of the parameter specified by ISPEC if ILAENV < 0: if ILAENV = -k, the k-th argument had an illegal value. This version provides a set of parameters which should give good, but not optimal, performance on many of the currently available computers. Users are encouraged to modify this subroutine to set the tuning parameters for their particular machine using the option and problem size information in the arguments. This routine will not function correctly if it is converted to all lower case. Converting it to all upper case is allowed.

Here is the call graph for this function:

◆ la_ilaenv2stage()

pure integer(ilp) function, public la_lapack_aux::la_ilaenv2stage ( integer(ilp), intent(in) ispec,
character(len=*), intent(in) name,
character(len=*), intent(in) opts,
integer(ilp), intent(in) n1,
integer(ilp), intent(in) n2,
integer(ilp), intent(in) n3,
integer(ilp), intent(in) n4 )

ILAENV2STAGE: is called from the LAPACK routines to choose problem-dependent parameters for the local environment. See ISPEC for a description of the parameters. It sets problem and machine dependent parameters useful for *_2STAGE and related subroutines. ILAENV2STAGE returns an INTEGER if ILAENV2STAGE >= 0: ILAENV2STAGE returns the value of the parameter specified by ISPEC if ILAENV2STAGE < 0: if ILAENV2STAGE = -k, the k-th argument had an illegal value. This version provides a set of parameters which should give good, but not optimal, performance on many of the currently available computers for the 2-stage solvers. Users are encouraged to modify this subroutine to set the tuning parameters for their particular machine using the option and problem size information in the arguments. This routine will not function correctly if it is converted to all lower case. Converting it to all upper case is allowed.

Here is the call graph for this function:

◆ la_ilaprec()

integer(ilp) function, public la_lapack_aux::la_ilaprec ( character prec)

This subroutine translated from a character string specifying an intermediate precision to the relevant BLAST-specified integer constant. ILAPREC: returns an INTEGER. If ILAPREC: < 0, then the input is not a character indicating a supported intermediate precision. Otherwise ILAPREC returns the constant value corresponding to PREC.

Here is the call graph for this function:

◆ la_ilaqiag()

integer(ilp) function, public la_lapack_aux::la_ilaqiag ( character diag)

This subroutine translated from a character string specifying if a matrix has unit diagonal or not to the relevant BLAST-specified integer constant. ILADIAG: returns an INTEGER. If ILADIAG: < 0, then the input is not a character indicating a unit or non-unit diagonal. Otherwise ILADIAG returns the constant value corresponding to DIAG.

Here is the call graph for this function:

◆ la_ilaqlc()

pure integer(ilp) function, public la_lapack_aux::la_ilaqlc ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(qp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILADLC: scans A for its last non-zero column.

Here is the call graph for this function:

◆ la_ilaqlr()

pure integer(ilp) function, public la_lapack_aux::la_ilaqlr ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(qp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILADLR: scans A for its last non-zero row.

Here is the call graph for this function:

◆ la_ilaslc()

pure integer(ilp) function, public la_lapack_aux::la_ilaslc ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(sp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILASLC: scans A for its last non-zero column.

Here is the call graph for this function:

◆ la_ilaslr()

pure integer(ilp) function, public la_lapack_aux::la_ilaslr ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
real(sp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILASLR: scans A for its last non-zero row.

Here is the call graph for this function:

◆ la_ilatrans()

integer(ilp) function, public la_lapack_aux::la_ilatrans ( character trans)

This subroutine translates from a character string specifying a transposition operation to the relevant BLAST-specified integer constant. ILATRANS: returns an INTEGER. If ILATRANS: < 0, then the input is not a character indicating a transposition operator. Otherwise ILATRANS returns the constant value corresponding to TRANS.

Here is the call graph for this function:

◆ la_ilauplo()

integer(ilp) function, public la_lapack_aux::la_ilauplo ( character uplo)

This subroutine translated from a character string specifying a upper- or lower-triangular matrix to the relevant BLAST-specified integer constant. ILAUPLO: returns an INTEGER. If ILAUPLO: < 0, then the input is not a character indicating an upper- or lower-triangular matrix. Otherwise ILAUPLO returns the constant value corresponding to UPLO.

Here is the call graph for this function:

◆ la_ilawlc()

pure integer(ilp) function, public la_lapack_aux::la_ilawlc ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(qp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILAZLC: scans A for its last non-zero column.

Here is the call graph for this function:

◆ la_ilawlr()

pure integer(ilp) function, public la_lapack_aux::la_ilawlr ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(qp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILAZLR: scans A for its last non-zero row.

Here is the call graph for this function:

◆ la_ilazlc()

pure integer(ilp) function, public la_lapack_aux::la_ilazlc ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(dp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILAZLC: scans A for its last non-zero column.

Here is the call graph for this function:

◆ la_ilazlr()

pure integer(ilp) function, public la_lapack_aux::la_ilazlr ( integer(ilp), intent(in) m,
integer(ilp), intent(in) n,
complex(dp), dimension(lda,*), intent(in) a,
integer(ilp), intent(in) lda )

ILAZLR: scans A for its last non-zero row.

Here is the call graph for this function:

◆ la_iparam2stage()

pure integer(ilp) function, public la_lapack_aux::la_iparam2stage ( integer(ilp), intent(in) ispec,
character(len=*), intent(in) name,
character(len=*), intent(in) opts,
integer(ilp), intent(in) ni,
integer(ilp), intent(in) nbi,
integer(ilp), intent(in) ibi,
integer(ilp), intent(in) nxi )

This program sets problem and machine dependent parameters useful for xHETRD_2STAGE, xHETRD_HE2HB, xHETRD_HB2ST, xGEBRD_2STAGE, xGEBRD_GE2GB, xGEBRD_GB2BD and related subroutines for eigenvalue problems. It is called whenever ILAENV is called with 17 <= ISPEC <= 21. It is called whenever ILAENV2STAGE is called with 1 <= ISPEC <= 5 with a direct conversion ISPEC + 16.

Here is the call graph for this function:

◆ la_iparmq()

pure integer(ilp) function, public la_lapack_aux::la_iparmq ( integer(ilp), intent(in) ispec,
character, dimension(*), intent(in) name,
character, dimension(*), intent(in) opts,
integer(ilp), intent(in) n,
integer(ilp), intent(in) ilo,
integer(ilp), intent(in) ihi,
integer(ilp), intent(in) lwork )

This program sets problem and machine dependent parameters useful for xHSEQR and related subroutines for eigenvalue problems. It is called whenever IPARMQ: is called with 12 <= ISPEC <= 16.

Here is the call graph for this function:

◆ la_iwmax1()

pure integer(ilp) function, public la_lapack_aux::la_iwmax1 ( integer(ilp), intent(in) n,
complex(qp), dimension(*), intent(in) zx,
integer(ilp), intent(in) incx )

IZMAX1: finds the index of the first vector element of maximum absolute value. Based on IZAMAX from Level 1 BLAS. The change is to use the 'genuine' absolute value.

Here is the call graph for this function:

◆ la_izmax1()

pure integer(ilp) function, public la_lapack_aux::la_izmax1 ( integer(ilp), intent(in) n,
complex(dp), dimension(*), intent(in) zx,
integer(ilp), intent(in) incx )

IZMAX1: finds the index of the first vector element of maximum absolute value. Based on IZAMAX from Level 1 BLAS. The change is to use the 'genuine' absolute value.

Here is the call graph for this function:

◆ la_lsamen()

pure logical(lk) function, public la_lapack_aux::la_lsamen ( integer(ilp), intent(in) n,
character(len=*), intent(in) ca,
character(len=*), intent(in) cb )

LSAMEN: tests if the first N letters of CA are the same as the first N letters of CB, regardless of case. LSAMEN returns .TRUE. if CA and CB are equivalent except for case and .FALSE. otherwise. LSAMEN also returns .FALSE. if LEN( CA ) or LEN( CB ) is less than N.

Here is the call graph for this function:

◆ la_qroundup_lwork()

pure real(qp) function, public la_lapack_aux::la_qroundup_lwork ( integer(ilp), intent(in) lwork)

DROUNDUP_LWORK: deals with a subtle bug with returning LWORK as a Float. This routine guarantees it is rounded up instead of down by multiplying LWORK by 1+eps when it is necessary, where eps is the relative machine precision. E.g., float( 9007199254740993 ) == 9007199254740992 float( 9007199254740993 ) * (1.+eps) == 9007199254740994.

Returns
DROUNDUP_LWORK

DROUNDUP_LWORK >= LWORK. DROUNDUP_LWORK is guaranteed to have zero decimal part.

Here is the call graph for this function:

◆ la_sroundup_lwork()

pure real(sp) function, public la_lapack_aux::la_sroundup_lwork ( integer(ilp), intent(in) lwork)

SROUNDUP_LWORK: deals with a subtle bug with returning LWORK as a Float. This routine guarantees it is rounded up instead of down by multiplying LWORK by 1+eps when it is necessary, where eps is the relative machine precision. E.g., float( 16777217 ) == 16777216 float( 16777217 ) * (1.+eps) == 16777218.

Returns
SROUNDUP_LWORK

SROUNDUP_LWORK >= LWORK. SROUNDUP_LWORK is guaranteed to have zero decimal part.

Here is the call graph for this function: