summaryrefslogtreecommitdiff
path: root/SRC
diff options
context:
space:
mode:
authorJulien Langou <julien.langou@ucdenver.edu>2017-03-23 15:56:18 -0400
committerJulien Langou <julien.langou@ucdenver.edu>2017-03-23 15:56:18 -0400
commit33b899f4eaff19eee091c0c0d81361b74923dc04 (patch)
tree431c9757d8ee9bcc2e7fc82b38283a5ffe23bbdf /SRC
parente38b42afcd22481b780cdccae45756dd3117edd8 (diff)
parent4506e47617765c0e13d9d9fb3c6458dbfeda8dbb (diff)
downloadlapack-33b899f4eaff19eee091c0c0d81361b74923dc04.tar.gz
lapack-33b899f4eaff19eee091c0c0d81361b74923dc04.tar.bz2
lapack-33b899f4eaff19eee091c0c0d81361b74923dc04.zip
Merge branch 'master' of https://github.com/Reference-LAPACK/lapack
Diffstat (limited to 'SRC')
-rw-r--r--SRC/Makefile22
-rw-r--r--SRC/VARIANTS/Makefile49
-rw-r--r--SRC/VARIANTS/README12
-rw-r--r--SRC/cgelqt.f14
-rw-r--r--SRC/cgelqt3.f4
-rw-r--r--SRC/cgemlqt.f24
-rw-r--r--SRC/cgeqrt.f2
-rw-r--r--SRC/cgetsls.f2
-rw-r--r--SRC/chbev_2stage.f2
-rw-r--r--SRC/chetrs_aa.f2
-rw-r--r--SRC/clamswlq.f22
-rw-r--r--SRC/clamtsqr.f12
-rw-r--r--SRC/claswlq.f2
-rw-r--r--SRC/claswp.f10
-rw-r--r--SRC/csytrs_aa.f2
-rw-r--r--SRC/ctplqt.f16
-rw-r--r--SRC/ctplqt2.f10
-rw-r--r--SRC/ctpmlqt.f20
-rw-r--r--SRC/dgelqt.f14
-rw-r--r--SRC/dgelqt3.f4
-rw-r--r--SRC/dgemlqt.f14
-rw-r--r--SRC/dgeqrt.f2
-rw-r--r--SRC/dlamswlq.f8
-rw-r--r--SRC/dlamtsqr.f2
-rw-r--r--SRC/dlaswlq.f2
-rw-r--r--SRC/dlaswp.f10
-rw-r--r--SRC/dsbev_2stage.f2
-rw-r--r--SRC/dsytrs_aa.f2
-rw-r--r--SRC/dtplqt.f16
-rw-r--r--SRC/dtplqt2.f10
-rw-r--r--SRC/sgelqt.f14
-rw-r--r--SRC/sgelqt3.f4
-rw-r--r--SRC/sgemlqt.f12
-rw-r--r--SRC/sgeqrt.f2
-rw-r--r--SRC/slamswlq.f14
-rw-r--r--SRC/slamtsqr.f2
-rw-r--r--SRC/slaswlq.f2
-rw-r--r--SRC/slaswp.f10
-rw-r--r--SRC/ssbev_2stage.f2
-rw-r--r--SRC/ssytrs_aa.f2
-rw-r--r--SRC/stplqt.f16
-rw-r--r--SRC/stplqt2.f10
-rw-r--r--SRC/zgelqt.f14
-rw-r--r--SRC/zgelqt3.f4
-rw-r--r--SRC/zgemlqt.f26
-rw-r--r--SRC/zgeqrt.f2
-rw-r--r--SRC/zgetsls.f2
-rw-r--r--SRC/zhbev_2stage.f2
-rw-r--r--SRC/zhetrs_aa.f2
-rw-r--r--SRC/zlamswlq.f24
-rw-r--r--SRC/zlamtsqr.f12
-rw-r--r--SRC/zlaswlq.f2
-rw-r--r--SRC/zlaswp.f10
-rw-r--r--SRC/zsytrs_aa.f2
-rw-r--r--SRC/ztplqt.f16
-rw-r--r--SRC/ztplqt2.f10
-rw-r--r--SRC/ztpmlqt.f22
-rw-r--r--SRC/ztrevc3.f2
58 files changed, 284 insertions, 271 deletions
diff --git a/SRC/Makefile b/SRC/Makefile
index d47f7308..5d6fe72c 100644
--- a/SRC/Makefile
+++ b/SRC/Makefile
@@ -44,7 +44,7 @@ include ../make.inc
# and is created at the next higher directory level.
#
# To remove the object files after the library is created, enter
-# make clean
+# make cleanobj
# On some systems, you can force the source files to be recompiled by
# entering (for example)
# make single FRC=FRC
@@ -508,27 +508,23 @@ endif
all: ../$(LAPACKLIB)
../$(LAPACKLIB): $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
- $(ARCH) $(ARCHFLAGS) $@ $(ALLOBJ) $(ALLXOBJ) $(DEPRECATED)
+ $(ARCH) $(ARCHFLAGS) $@ $^
$(RANLIB) $@
single: $(SLASRC) $(DSLASRC) $(SXLASRC) $(SCLAUX) $(ALLAUX)
- $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(SLASRC) $(DSLASRC) \
- $(SXLASRC) $(SCLAUX) $(ALLAUX)
+ $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $^
$(RANLIB) ../$(LAPACKLIB)
complex: $(CLASRC) $(ZCLASRC) $(CXLASRC) $(SCLAUX) $(ALLAUX)
- $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(CLASRC) $(ZCLASRC) \
- $(CXLASRC) $(SCLAUX) $(ALLAUX)
+ $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $^
$(RANLIB) ../$(LAPACKLIB)
double: $(DLASRC) $(DSLASRC) $(DXLASRC) $(DZLAUX) $(ALLAUX)
- $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(DLASRC) $(DSLASRC) \
- $(DXLASRC) $(DZLAUX) $(ALLAUX)
+ $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $^
$(RANLIB) ../$(LAPACKLIB)
complex16: $(ZLASRC) $(ZCLASRC) $(ZXLASRC) $(DZLAUX) $(ALLAUX)
- $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $(ZLASRC) $(ZCLASRC) \
- $(ZXLASRC) $(DZLAUX) $(ALLAUX)
+ $(ARCH) $(ARCHFLAGS) ../$(LAPACKLIB) $^
$(RANLIB) ../$(LAPACKLIB)
$(ALLAUX): $(FRC)
@@ -550,12 +546,14 @@ endif
FRC:
@FRC=$(FRC)
-clean:
+clean: cleanobj cleanlib
+cleanobj:
rm -f *.o DEPRECATED/*.o
+cleanlib:
+ rm -f ../$(LAPACKLIB)
.f.o:
$(FORTRAN) $(OPTS) -c -o $@ $<
-
.F.o:
$(FORTRAN) $(OPTS) -c -o $@ $<
diff --git a/SRC/VARIANTS/Makefile b/SRC/VARIANTS/Makefile
index 6db97e95..9f141075 100644
--- a/SRC/VARIANTS/Makefile
+++ b/SRC/VARIANTS/Makefile
@@ -17,8 +17,6 @@ include ../../make.inc
# 1065-1081. http://dx.doi.org/10.1137/S0895479896297744
#######################################################################
-VARIANTSDIR = LIB
-
CHOLRL = cholesky/RL/cpotrf.o cholesky/RL/dpotrf.o cholesky/RL/spotrf.o cholesky/RL/zpotrf.o
CHOLTOP = cholesky/TOP/cpotrf.o cholesky/TOP/dpotrf.o cholesky/TOP/spotrf.o cholesky/TOP/zpotrf.o
@@ -32,36 +30,37 @@ LUREC = lu/REC/cgetrf.o lu/REC/dgetrf.o lu/REC/sgetrf.o lu/REC/zgetrf.o
QRLL = qr/LL/cgeqrf.o qr/LL/dgeqrf.o qr/LL/sgeqrf.o qr/LL/zgeqrf.o qr/LL/sceil.o
-all: cholrl choltop lucr lull lurec qrll
+all: cholrl.a choltop.a lucr.a lull.a lurec.a qrll.a
-cholrl: $(CHOLRL)
- $(ARCH) $(ARCHFLAGS) $(VARIANTSDIR)/cholrl.a $(CHOLRL)
- $(RANLIB) $(VARIANTSDIR)/cholrl.a
+cholrl.a: $(CHOLRL)
+ $(ARCH) $(ARCHFLAGS) $@ $^
+ $(RANLIB) $@
-choltop: $(CHOLTOP)
- $(ARCH) $(ARCHFLAGS) $(VARIANTSDIR)/choltop.a $(CHOLTOP)
- $(RANLIB) $(VARIANTSDIR)/choltop.a
+choltop.a: $(CHOLTOP)
+ $(ARCH) $(ARCHFLAGS) $@ $^
+ $(RANLIB) $@
-lucr: $(LUCR)
- $(ARCH) $(ARCHFLAGS) $(VARIANTSDIR)/lucr.a $(LUCR)
- $(RANLIB) $(VARIANTSDIR)/lucr.a
+lucr.a: $(LUCR)
+ $(ARCH) $(ARCHFLAGS) $@ $^
+ $(RANLIB) $@
-lull: $(LULL)
- $(ARCH) $(ARCHFLAGS) $(VARIANTSDIR)/lull.a $(LULL)
- $(RANLIB) $(VARIANTSDIR)/lull.a
+lull.a: $(LULL)
+ $(ARCH) $(ARCHFLAGS) $@ $^
+ $(RANLIB) $@
-lurec: $(LUREC)
- $(ARCH) $(ARCHFLAGS) $(VARIANTSDIR)/lurec.a $(LUREC)
- $(RANLIB) $(VARIANTSDIR)/lurec.a
+lurec.a: $(LUREC)
+ $(ARCH) $(ARCHFLAGS) $@ $^
+ $(RANLIB) $@
-qrll: $(QRLL)
- $(ARCH) $(ARCHFLAGS) $(VARIANTSDIR)/qrll.a $(QRLL)
- $(RANLIB) $(VARIANTSDIR)/qrll.a
+qrll.a: $(QRLL)
+ $(ARCH) $(ARCHFLAGS) $@ $^
+ $(RANLIB) $@
+clean: cleanobj cleanlib
+cleanobj:
+ rm -f $(CHOLRL) $(CHOLTOP) $(LUCR) $(LULL) $(LUREC) $(QRLL)
+cleanlib:
+ rm -f *.a
.f.o:
$(FORTRAN) $(OPTS) -c -o $@ $<
-
-clean:
- rm -f $(CHOLRL) $(CHOLTOP) $(LUCR) $(LULL) $(LUREC) $(QRLL) \
- $(VARIANTSDIR)/*.a
diff --git a/SRC/VARIANTS/README b/SRC/VARIANTS/README
index c2062151..4d301cc6 100644
--- a/SRC/VARIANTS/README
+++ b/SRC/VARIANTS/README
@@ -1,5 +1,5 @@
- ===============
- = README File =
+ ===============
+ = README File =
===============
This README File is for the LAPACK driver variants.
@@ -34,10 +34,10 @@ References:For a more detailed description please refer to
=========
These variants are compiled by default in the build process but they are not tested by default.
-The build process creates one new library per variants in the four arithmetics (singel/double/comple/double complex).
-The libraries are in the SRC/VARIANTS/LIB directory.
+The build process creates one new library per variants in the four arithmetics (single real/double real/single complex/double complex).
+The libraries are in the SRC/VARIANTS directory.
-Corresponding libraries created in SRC/VARIANTS/LIB:
+Corresponding libraries created in SRC/VARIANTS:
- LU Crout : lucr.a
- LU Left Looking : lull.a
- LU Sivan Toledo's recursive : lurec.a
@@ -73,7 +73,7 @@ Default using LU Right Looking version:
Using LU Left Looking version:
$(FORTRAN) -c myprog.f
- $(FORTRAN) -o myexe myprog.o $(PATH TO LAPACK/SRC/VARIANTS/LIB)/lull.a $(LAPACKLIB) $(BLASLIB)
+ $(FORTRAN) -o myexe myprog.o $(PATH TO LAPACK/SRC/VARIANTS)/lull.a $(LAPACKLIB) $(BLASLIB)
===========
= SUPPORT =
diff --git a/SRC/cgelqt.f b/SRC/cgelqt.f
index 5bead535..8037ac59 100644
--- a/SRC/cgelqt.f
+++ b/SRC/cgelqt.f
@@ -101,8 +101,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
@@ -111,11 +111,11 @@
*>
*> where the vi's represent the vectors which define H(i), which are returned
*> in the matrix A. The 1's along the diagonal of V are not stored in A.
-*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/NB), where each
-*> block is of order NB except for the last block, which is of order
-*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
-*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/MB), where each
+*> block is of order MB except for the last block, which is of order
+*> IB = K - (B-1)*MB. For each of the B blocks, a upper triangular block
+*> reflector factor is computed: T1, T2, ..., TB. The MB-by-MB (and IB-by-IB
+*> for the last block) T's are stored in the MB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/cgelqt3.f b/SRC/cgelqt3.f
index 751cb613..48a0e74d 100644
--- a/SRC/cgelqt3.f
+++ b/SRC/cgelqt3.f
@@ -92,8 +92,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
diff --git a/SRC/cgemlqt.f b/SRC/cgemlqt.f
index e4c991a7..24319057 100644
--- a/SRC/cgemlqt.f
+++ b/SRC/cgemlqt.f
@@ -18,16 +18,16 @@
*>
*> \verbatim
*>
-*> CGEMQRT overwrites the general real M-by-N matrix C with
+*> CGEMLQT overwrites the general real M-by-N matrix C with
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q C C Q
-*> TRANS = 'C': Q**C C C Q**C
+*> TRANS = 'C': Q**H C C Q**H
*>
*> where Q is a complex orthogonal matrix defined as the product of K
*> elementary reflectors:
*>
-*> Q = H(1) H(2) . . . H(K) = I - V C V**C
+*> Q = H(1) H(2) . . . H(K) = I - V T V**H
*>
*> generated using the compact WY representation as returned by CGELQT.
*>
@@ -40,15 +40,15 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**C from the Left;
-*> = 'R': apply Q or Q**C from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'C': Transpose, apply Q**C.
+*> = 'C': Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
@@ -82,7 +82,9 @@
*>
*> \param[in] V
*> \verbatim
-*> V is COMPLEX array, dimension (LDV,K)
+*> V is COMPLEX array, dimension
+*> (LDV,M) if SIDE = 'L',
+*> (LDV,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
*> DGELQT in the first K rows of its array argument A.
@@ -91,16 +93,14 @@
*> \param[in] LDV
*> \verbatim
*> LDV is INTEGER
-*> The leading dimension of the array V.
-*> If SIDE = 'L', LDA >= max(1,M);
-*> if SIDE = 'R', LDA >= max(1,N).
+*> The leading dimension of the array V. LDV >= max(1,K).
*> \endverbatim
*>
*> \param[in] T
*> \verbatim
*> T is COMPLEX array, dimension (LDT,K)
*> The upper triangular factors of the block reflectors
-*> as returned by DGELQT, stored as a MB-by-M matrix.
+*> as returned by DGELQT, stored as a MB-by-K matrix.
*> \endverbatim
*>
*> \param[in] LDT
@@ -113,7 +113,7 @@
*> \verbatim
*> C is COMPLEX array, dimension (LDC,N)
*> On entry, the M-by-N matrix C.
-*> On exit, C is overwritten by Q C, Q**C C, C Q**C or C Q.
+*> On exit, C is overwritten by Q C, Q**H C, C Q**H or C Q.
*> \endverbatim
*>
*> \param[in] LDC
diff --git a/SRC/cgeqrt.f b/SRC/cgeqrt.f
index 2b8bb698..b6a31967 100644
--- a/SRC/cgeqrt.f
+++ b/SRC/cgeqrt.f
@@ -133,7 +133,7 @@
*> block is of order NB except for the last block, which is of order
*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> for the last block) T's are stored in the NB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/cgetsls.f b/SRC/cgetsls.f
index 56fb8063..f5910b32 100644
--- a/SRC/cgetsls.f
+++ b/SRC/cgetsls.f
@@ -53,7 +53,7 @@
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': the linear system involves A;
-*> = 'C': the linear system involves A**C.
+*> = 'C': the linear system involves A**H.
*> \endverbatim
*>
*> \param[in] M
diff --git a/SRC/chbev_2stage.f b/SRC/chbev_2stage.f
index ff115062..5ced8c97 100644
--- a/SRC/chbev_2stage.f
+++ b/SRC/chbev_2stage.f
@@ -247,7 +247,7 @@
EXTERNAL LSAME, SLAMCH, CLANHB, ILAENV
* ..
* .. External Subroutines ..
- EXTERNAL SSCAL, SSTERF, XERBLA, CLASCL, CSTEQR
+ EXTERNAL SSCAL, SSTERF, XERBLA, CLASCL, CSTEQR,
$ CHETRD_2STAGE
* ..
* .. Intrinsic Functions ..
diff --git a/SRC/chetrs_aa.f b/SRC/chetrs_aa.f
index f6640c50..94bd94ef 100644
--- a/SRC/chetrs_aa.f
+++ b/SRC/chetrs_aa.f
@@ -66,7 +66,7 @@
*> of the matrix B. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is COMPLEX array, dimension (LDA,N)
*> Details of factors computed by CHETRF_AA.
diff --git a/SRC/clamswlq.f b/SRC/clamswlq.f
index fd19f0af..569397a7 100644
--- a/SRC/clamswlq.f
+++ b/SRC/clamswlq.f
@@ -23,7 +23,7 @@
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q * C C * Q
-*> TRANS = 'T': Q**T * C C * Q**T
+*> TRANS = 'T': Q**H * C C * Q**H
*> where Q is a real orthogonal matrix defined as the product of blocked
*> elementary reflectors computed by short wide LQ
*> factorization (CLASWLQ)
@@ -35,21 +35,21 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**T from the Left;
-*> = 'R': apply Q or Q**T from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'T': Transpose, apply Q**T.
+*> = 'C': Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
*> \verbatim
*> M is INTEGER
-*> The number of rows of the matrix A. M >=0.
+*> The number of rows of the matrix C. M >=0.
*> \endverbatim
*>
*> \param[in] N
@@ -88,12 +88,14 @@
*>
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
-*> A is COMPLEX array, dimension (LDA,K)
+*> A is COMPLEX array, dimension
+*> (LDA,M) if SIDE = 'L',
+*> (LDA,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the blocked
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
-*> DLASWLQ in the first k rows of its array argument A.
+*> CLASWLQ in the first k rows of its array argument A.
*> \endverbatim
*>
*> \param[in] LDA
@@ -123,7 +125,7 @@
*> \verbatim
*> C is COMPLEX array, dimension (LDC,N)
*> On entry, the M-by-N matrix C.
-*> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
+*> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
*> \endverbatim
*>
*> \param[in] LDC
@@ -219,7 +221,7 @@
* ..
* .. Local Scalars ..
LOGICAL LEFT, RIGHT, TRAN, NOTRAN, LQUERY
- INTEGER I, II, KK, LW , CTR
+ INTEGER I, II, KK, LW, CTR
* ..
* .. External Functions ..
LOGICAL LSAME
diff --git a/SRC/clamtsqr.f b/SRC/clamtsqr.f
index a787caab..69acac54 100644
--- a/SRC/clamtsqr.f
+++ b/SRC/clamtsqr.f
@@ -23,7 +23,7 @@
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q * C C * Q
-*> TRANS = 'C': Q**C * C C * Q**C
+*> TRANS = 'C': Q**H * C C * Q**H
*> where Q is a real orthogonal matrix defined as the product
*> of blocked elementary reflectors computed by tall skinny
*> QR factorization (CLATSQR)
@@ -35,15 +35,15 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**T from the Left;
-*> = 'R': apply Q or Q**T from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'C': Conjugate Transpose, apply Q**C.
+*> = 'C': Conjugate Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
@@ -81,7 +81,7 @@
*> N >= NB >= 1.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is COMPLEX array, dimension (LDA,K)
*> The i-th column must contain the vector which defines the
@@ -117,7 +117,7 @@
*> \verbatim
*> C is COMPLEX array, dimension (LDC,N)
*> On entry, the M-by-N matrix C.
-*> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
+*> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
*> \endverbatim
*>
*> \param[in] LDC
diff --git a/SRC/claswlq.f b/SRC/claswlq.f
index 8b77142d..4c23d3ba 100644
--- a/SRC/claswlq.f
+++ b/SRC/claswlq.f
@@ -55,7 +55,7 @@
*> \verbatim
*> A is COMPLEX array, dimension (LDA,N)
*> On entry, the M-by-N matrix A.
-*> On exit, the elements on and bleow the diagonal
+*> On exit, the elements on and below the diagonal
*> of the array contain the N-by-N lower triangular matrix L;
*> the elements above the diagonal represent Q by the rows
*> of blocked V (see Further Details).
diff --git a/SRC/claswp.f b/SRC/claswp.f
index 8b5632c8..94fa7732 100644
--- a/SRC/claswp.f
+++ b/SRC/claswp.f
@@ -79,14 +79,15 @@
*> \verbatim
*> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX))
*> The vector of pivot indices. Only the elements in positions
-*> K1 through K1+(K2-K1)*INCX of IPIV are accessed.
-*> IPIV(K) = L implies rows K and L are to be interchanged.
+*> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed.
+*> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be
+*> interchanged.
*> \endverbatim
*>
*> \param[in] INCX
*> \verbatim
*> INCX is INTEGER
-*> The increment between successive values of IPIV. If IPIV
+*> The increment between successive values of IPIV. If INCX
*> is negative, the pivots are applied in reverse order.
*> \endverbatim
*
@@ -135,7 +136,8 @@
* ..
* .. Executable Statements ..
*
-* Interchange row I with row IPIV(I) for each of rows K1 through K2.
+* Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows
+* K1 through K2.
*
IF( INCX.GT.0 ) THEN
IX0 = K1
diff --git a/SRC/csytrs_aa.f b/SRC/csytrs_aa.f
index 6fedf912..2e2713d6 100644
--- a/SRC/csytrs_aa.f
+++ b/SRC/csytrs_aa.f
@@ -66,7 +66,7 @@
*> of the matrix B. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is REAL array, dimension (LDA,N)
*> Details of factors computed by CSYTRF_AA.
diff --git a/SRC/ctplqt.f b/SRC/ctplqt.f
index 322b6dc5..4aa96499 100644
--- a/SRC/ctplqt.f
+++ b/SRC/ctplqt.f
@@ -56,8 +56,8 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is COMPLEX array, dimension (LDA,N)
-*> On entry, the lower triangular N-by-N matrix A.
+*> A is COMPLEX array, dimension (LDA,M)
+*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
*> \endverbatim
@@ -65,7 +65,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -129,26 +129,26 @@
*> C = [ A ] [ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 on left of a M-by-L
*> upper trapezoidal matrix B2:
*> [ B ] = [ B1 ] [ B2 ]
*> [ B1 ] <- M-by-(N-L) rectangular
-*> [ B2 ] <- M-by-L upper trapezoidal.
+*> [ B2 ] <- M-by-L lower trapezoidal.
*>
*> The lower trapezoidal matrix B2 consists of the first L columns of a
-*> N-by-N lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
+*> M-by-M lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
*> B is rectangular M-by-N; if M=L=N, B is lower triangular.
*>
*> The matrix W stores the elementary reflectors H(i) in the i-th row
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*> [ C ] = [ A ] [ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*> [ W ] = [ I ] [ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/ctplqt2.f b/SRC/ctplqt2.f
index 1c9b128e..d1e28849 100644
--- a/SRC/ctplqt2.f
+++ b/SRC/ctplqt2.f
@@ -48,7 +48,7 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is COMPLEX array, dimension (LDA,N)
+*> A is COMPLEX array, dimension (LDA,M)
*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
@@ -57,7 +57,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -116,7 +116,7 @@
*> C = [ A ][ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 left of a M-by-L
*> upper trapezoidal matrix B2:
*>
@@ -132,13 +132,13 @@
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*>
*> C = [ A ][ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*>
*> W = [ I ][ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/ctpmlqt.f b/SRC/ctpmlqt.f
index b326d6a2..76414fc0 100644
--- a/SRC/ctpmlqt.f
+++ b/SRC/ctpmlqt.f
@@ -19,9 +19,9 @@
*>
*> \verbatim
*>
-*> CTPMQRT applies a complex orthogonal matrix Q obtained from a
-*> "triangular-pentagonal" real block reflector H to a general
-*> real matrix C, which consists of two blocks A and B.
+*> CTPMLQT applies a complex orthogonal matrix Q obtained from a
+*> "triangular-pentagonal" complex block reflector H to a general
+*> complex matrix C, which consists of two blocks A and B.
*> \endverbatim
*
* Arguments:
@@ -30,15 +30,15 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**C from the Left;
-*> = 'R': apply Q or Q**C from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'C': Transpose, apply Q**C.
+*> = 'C': Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
@@ -111,7 +111,7 @@
*> (LDA,K) if SIDE = 'R'
*> On entry, the K-by-N or M-by-K matrix A.
*> On exit, A is overwritten by the corresponding block of
-*> Q*C or Q**C*C or C*Q or C*Q**C. See Further Details.
+*> Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
*> \endverbatim
*>
*> \param[in] LDA
@@ -127,7 +127,7 @@
*> B is COMPLEX array, dimension (LDB,N)
*> On entry, the M-by-N matrix B.
*> On exit, B is overwritten by the corresponding block of
-*> Q*C or Q**C*C or C*Q or C*Q**C. See Further Details.
+*> Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
*> \endverbatim
*>
*> \param[in] LDB
@@ -188,11 +188,11 @@
*>
*> If TRANS='N' and SIDE='L', C is on exit replaced with Q * C.
*>
-*> If TRANS='C' and SIDE='L', C is on exit replaced with Q**C * C.
+*> If TRANS='C' and SIDE='L', C is on exit replaced with Q**H * C.
*>
*> If TRANS='N' and SIDE='R', C is on exit replaced with C * Q.
*>
-*> If TRANS='C' and SIDE='R', C is on exit replaced with C * Q**C.
+*> If TRANS='C' and SIDE='R', C is on exit replaced with C * Q**H.
*> \endverbatim
*>
* =====================================================================
diff --git a/SRC/dgelqt.f b/SRC/dgelqt.f
index b11e9d6e..8f8d40c4 100644
--- a/SRC/dgelqt.f
+++ b/SRC/dgelqt.f
@@ -117,8 +117,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
@@ -127,11 +127,11 @@
*>
*> where the vi's represent the vectors which define H(i), which are returned
*> in the matrix A. The 1's along the diagonal of V are not stored in A.
-*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/NB), where each
-*> block is of order NB except for the last block, which is of order
-*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
-*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/MB), where each
+*> block is of order MB except for the last block, which is of order
+*> IB = K - (B-1)*MB. For each of the B blocks, a upper triangular block
+*> reflector factor is computed: T1, T2, ..., TB. The MB-by-MB (and IB-by-IB
+*> for the last block) T's are stored in the MB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/dgelqt3.f b/SRC/dgelqt3.f
index b0bb242a..9970b09e 100644
--- a/SRC/dgelqt3.f
+++ b/SRC/dgelqt3.f
@@ -109,8 +109,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
diff --git a/SRC/dgemlqt.f b/SRC/dgemlqt.f
index 41a517a2..fad4c453 100644
--- a/SRC/dgemlqt.f
+++ b/SRC/dgemlqt.f
@@ -6,7 +6,7 @@
* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DGEMQRT + dependencies
+*> Download DGEMLQT + dependencies
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgemlqt.f">
*> [TGZ]</a>
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgemlqt.f">
@@ -35,7 +35,7 @@
*>
*> \verbatim
*>
-*> DGEMQRT overwrites the general real M-by-N matrix C with
+*> DGEMLQT overwrites the general real M-by-N matrix C with
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q C C Q
@@ -99,7 +99,9 @@
*>
*> \param[in] V
*> \verbatim
-*> V is DOUBLE PRECISION array, dimension (LDV,K)
+*> V is DOUBLE PRECISION array, dimension
+*> (LDV,M) if SIDE = 'L',
+*> (LDV,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
*> DGELQT in the first K rows of its array argument A.
@@ -108,16 +110,14 @@
*> \param[in] LDV
*> \verbatim
*> LDV is INTEGER
-*> The leading dimension of the array V.
-*> If SIDE = 'L', LDA >= max(1,M);
-*> if SIDE = 'R', LDA >= max(1,N).
+*> The leading dimension of the array V. LDV >= max(1,K).
*> \endverbatim
*>
*> \param[in] T
*> \verbatim
*> T is DOUBLE PRECISION array, dimension (LDT,K)
*> The upper triangular factors of the block reflectors
-*> as returned by DGELQT, stored as a MB-by-M matrix.
+*> as returned by DGELQT, stored as a MB-by-K matrix.
*> \endverbatim
*>
*> \param[in] LDT
diff --git a/SRC/dgeqrt.f b/SRC/dgeqrt.f
index 6856bac0..33d079e1 100644
--- a/SRC/dgeqrt.f
+++ b/SRC/dgeqrt.f
@@ -133,7 +133,7 @@
*> block is of order NB except for the last block, which is of order
*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> for the last block) T's are stored in the NB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/dlamswlq.f b/SRC/dlamswlq.f
index 8dc6df8a..8430ca19 100644
--- a/SRC/dlamswlq.f
+++ b/SRC/dlamswlq.f
@@ -49,7 +49,7 @@
*> \param[in] M
*> \verbatim
*> M is INTEGER
-*> The number of rows of the matrix A. M >=0.
+*> The number of rows of the matrix C. M >=0.
*> \endverbatim
*>
*> \param[in] N
@@ -88,9 +88,11 @@
*>
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
-*> A is DOUBLE PRECISION array, dimension (LDA,K)
+*> A is DOUBLE PRECISION array, dimension
+*> (LDA,M) if SIDE = 'L',
+*> (LDA,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the blocked
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
*> DLASWLQ in the first k rows of its array argument A.
diff --git a/SRC/dlamtsqr.f b/SRC/dlamtsqr.f
index 9ba45901..d4801645 100644
--- a/SRC/dlamtsqr.f
+++ b/SRC/dlamtsqr.f
@@ -81,7 +81,7 @@
*> N >= NB >= 1.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is DOUBLE PRECISION array, dimension (LDA,K)
*> The i-th column must contain the vector which defines the
diff --git a/SRC/dlaswlq.f b/SRC/dlaswlq.f
index 2830711a..41f99992 100644
--- a/SRC/dlaswlq.f
+++ b/SRC/dlaswlq.f
@@ -55,7 +55,7 @@
*> \verbatim
*> A is DOUBLE PRECISION array, dimension (LDA,N)
*> On entry, the M-by-N matrix A.
-*> On exit, the elements on and bleow the diagonal
+*> On exit, the elements on and below the diagonal
*> of the array contain the N-by-N lower triangular matrix L;
*> the elements above the diagonal represent Q by the rows
*> of blocked V (see Further Details).
diff --git a/SRC/dlaswp.f b/SRC/dlaswp.f
index 2c526ffa..575b5c48 100644
--- a/SRC/dlaswp.f
+++ b/SRC/dlaswp.f
@@ -79,14 +79,15 @@
*> \verbatim
*> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX))
*> The vector of pivot indices. Only the elements in positions
-*> K1 through K1+(K2-K1)*INCX of IPIV are accessed.
-*> IPIV(K) = L implies rows K and L are to be interchanged.
+*> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed.
+*> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be
+*> interchanged.
*> \endverbatim
*>
*> \param[in] INCX
*> \verbatim
*> INCX is INTEGER
-*> The increment between successive values of IPIV. If IPIV
+*> The increment between successive values of IPIV. If INCX
*> is negative, the pivots are applied in reverse order.
*> \endverbatim
*
@@ -135,7 +136,8 @@
* ..
* .. Executable Statements ..
*
-* Interchange row I with row IPIV(I) for each of rows K1 through K2.
+* Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows
+* K1 through K2.
*
IF( INCX.GT.0 ) THEN
IX0 = K1
diff --git a/SRC/dsbev_2stage.f b/SRC/dsbev_2stage.f
index 12ce3337..c66b4049 100644
--- a/SRC/dsbev_2stage.f
+++ b/SRC/dsbev_2stage.f
@@ -239,7 +239,7 @@
EXTERNAL LSAME, DLAMCH, DLANSB, ILAENV
* ..
* .. External Subroutines ..
- EXTERNAL DLASCL, DSCAL, DSTEQR, DSTERF, XERBLA
+ EXTERNAL DLASCL, DSCAL, DSTEQR, DSTERF, XERBLA,
$ DSYTRD_SB2ST
* ..
* .. Intrinsic Functions ..
diff --git a/SRC/dsytrs_aa.f b/SRC/dsytrs_aa.f
index b572581e..0dafa895 100644
--- a/SRC/dsytrs_aa.f
+++ b/SRC/dsytrs_aa.f
@@ -66,7 +66,7 @@
*> of the matrix B. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is DOUBLE PRECISION array, dimension (LDA,N)
*> Details of factors computed by DSYTRF_AA.
diff --git a/SRC/dtplqt.f b/SRC/dtplqt.f
index b312c501..a5a92744 100644
--- a/SRC/dtplqt.f
+++ b/SRC/dtplqt.f
@@ -73,8 +73,8 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is DOUBLE PRECISION array, dimension (LDA,N)
-*> On entry, the lower triangular N-by-N matrix A.
+*> A is DOUBLE PRECISION array, dimension (LDA,M)
+*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
*> \endverbatim
@@ -82,7 +82,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -146,26 +146,26 @@
*> C = [ A ] [ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 on left of a M-by-L
*> upper trapezoidal matrix B2:
*> [ B ] = [ B1 ] [ B2 ]
*> [ B1 ] <- M-by-(N-L) rectangular
-*> [ B2 ] <- M-by-L upper trapezoidal.
+*> [ B2 ] <- M-by-L lower trapezoidal.
*>
*> The lower trapezoidal matrix B2 consists of the first L columns of a
-*> N-by-N lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
+*> M-by-M lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
*> B is rectangular M-by-N; if M=L=N, B is lower triangular.
*>
*> The matrix W stores the elementary reflectors H(i) in the i-th row
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*> [ C ] = [ A ] [ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*> [ W ] = [ I ] [ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/dtplqt2.f b/SRC/dtplqt2.f
index 7e87e6c5..beb5ad6b 100644
--- a/SRC/dtplqt2.f
+++ b/SRC/dtplqt2.f
@@ -65,7 +65,7 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is DOUBLE PRECISION array, dimension (LDA,N)
+*> A is DOUBLE PRECISION array, dimension (LDA,M)
*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
@@ -74,7 +74,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -133,7 +133,7 @@
*> C = [ A ][ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 left of a M-by-L
*> upper trapezoidal matrix B2:
*>
@@ -149,13 +149,13 @@
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*>
*> C = [ A ][ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*>
*> W = [ I ][ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/sgelqt.f b/SRC/sgelqt.f
index 786255d1..f9b21098 100644
--- a/SRC/sgelqt.f
+++ b/SRC/sgelqt.f
@@ -100,8 +100,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
@@ -110,11 +110,11 @@
*>
*> where the vi's represent the vectors which define H(i), which are returned
*> in the matrix A. The 1's along the diagonal of V are not stored in A.
-*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/NB), where each
-*> block is of order NB except for the last block, which is of order
-*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
-*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/MB), where each
+*> block is of order MB except for the last block, which is of order
+*> IB = K - (B-1)*MB. For each of the B blocks, a upper triangular block
+*> reflector factor is computed: T1, T2, ..., TB. The MB-by-MB (and IB-by-IB
+*> for the last block) T's are stored in the MB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/sgelqt3.f b/SRC/sgelqt3.f
index b94fc278..9b888746 100644
--- a/SRC/sgelqt3.f
+++ b/SRC/sgelqt3.f
@@ -92,8 +92,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
diff --git a/SRC/sgemlqt.f b/SRC/sgemlqt.f
index 47074342..dc842244 100644
--- a/SRC/sgemlqt.f
+++ b/SRC/sgemlqt.f
@@ -18,7 +18,7 @@
*>
*> \verbatim
*>
-*> DGEMQRT overwrites the general real M-by-N matrix C with
+*> DGEMLQT overwrites the general real M-by-N matrix C with
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q C C Q
@@ -82,7 +82,9 @@
*>
*> \param[in] V
*> \verbatim
-*> V is REAL array, dimension (LDV,K)
+*> V is REAL array, dimension
+*> (LDV,M) if SIDE = 'L',
+*> (LDV,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
*> DGELQT in the first K rows of its array argument A.
@@ -91,16 +93,14 @@
*> \param[in] LDV
*> \verbatim
*> LDV is INTEGER
-*> The leading dimension of the array V.
-*> If SIDE = 'L', LDA >= max(1,M);
-*> if SIDE = 'R', LDA >= max(1,N).
+*> The leading dimension of the array V. LDV >= max(1,K).
*> \endverbatim
*>
*> \param[in] T
*> \verbatim
*> T is REAL array, dimension (LDT,K)
*> The upper triangular factors of the block reflectors
-*> as returned by DGELQT, stored as a MB-by-M matrix.
+*> as returned by DGELQT, stored as a MB-by-K matrix.
*> \endverbatim
*>
*> \param[in] LDT
diff --git a/SRC/sgeqrt.f b/SRC/sgeqrt.f
index d8b9fade..ed8bac49 100644
--- a/SRC/sgeqrt.f
+++ b/SRC/sgeqrt.f
@@ -133,7 +133,7 @@
*> block is of order NB except for the last block, which is of order
*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> for the last block) T's are stored in the NB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/slamswlq.f b/SRC/slamswlq.f
index ccdddbb3..f3238b6d 100644
--- a/SRC/slamswlq.f
+++ b/SRC/slamswlq.f
@@ -18,7 +18,7 @@
*>
*> \verbatim
*>
-*> DLAMQRTS overwrites the general real M-by-N matrix C with
+*> SLAMSWLQ overwrites the general real M-by-N matrix C with
*>
*>
*> SIDE = 'L' SIDE = 'R'
@@ -26,7 +26,7 @@
*> TRANS = 'T': Q**T * C C * Q**T
*> where Q is a real orthogonal matrix defined as the product of blocked
*> elementary reflectors computed by short wide LQ
-*> factorization (DLASWLQ)
+*> factorization (SLASWLQ)
*> \endverbatim
*
* Arguments:
@@ -49,7 +49,7 @@
*> \param[in] M
*> \verbatim
*> M is INTEGER
-*> The number of rows of the matrix A. M >=0.
+*> The number of rows of the matrix C. M >=0.
*> \endverbatim
*>
*> \param[in] N
@@ -88,12 +88,14 @@
*>
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
-*> A is REAL array, dimension (LDA,K)
+*> A is REAL array, dimension
+*> (LDA,M) if SIDE = 'L',
+*> (LDA,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the blocked
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
-*> DLASWLQ in the first k rows of its array argument A.
+*> SLASWLQ in the first k rows of its array argument A.
*> \endverbatim
*>
*> \param[in] LDA
diff --git a/SRC/slamtsqr.f b/SRC/slamtsqr.f
index 747481da..cbcace69 100644
--- a/SRC/slamtsqr.f
+++ b/SRC/slamtsqr.f
@@ -81,7 +81,7 @@
*> N >= NB >= 1.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is REAL array, dimension (LDA,K)
*> The i-th column must contain the vector which defines the
diff --git a/SRC/slaswlq.f b/SRC/slaswlq.f
index efd28a6b..565ce2b6 100644
--- a/SRC/slaswlq.f
+++ b/SRC/slaswlq.f
@@ -55,7 +55,7 @@
*> \verbatim
*> A is REAL array, dimension (LDA,N)
*> On entry, the M-by-N matrix A.
-*> On exit, the elements on and bleow the diagonal
+*> On exit, the elements on and below the diagonal
*> of the array contain the N-by-N lower triangular matrix L;
*> the elements above the diagonal represent Q by the rows
*> of blocked V (see Further Details).
diff --git a/SRC/slaswp.f b/SRC/slaswp.f
index ad12a3a3..9a17fdfd 100644
--- a/SRC/slaswp.f
+++ b/SRC/slaswp.f
@@ -79,14 +79,15 @@
*> \verbatim
*> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX))
*> The vector of pivot indices. Only the elements in positions
-*> K1 through K1+(K2-K1)*INCX of IPIV are accessed.
-*> IPIV(K) = L implies rows K and L are to be interchanged.
+*> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed.
+*> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be
+*> interchanged.
*> \endverbatim
*>
*> \param[in] INCX
*> \verbatim
*> INCX is INTEGER
-*> The increment between successive values of IPIV. If IPIV
+*> The increment between successive values of IPIV. If INCX
*> is negative, the pivots are applied in reverse order.
*> \endverbatim
*
@@ -135,7 +136,8 @@
* ..
* .. Executable Statements ..
*
-* Interchange row I with row IPIV(I) for each of rows K1 through K2.
+* Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows
+* K1 through K2.
*
IF( INCX.GT.0 ) THEN
IX0 = K1
diff --git a/SRC/ssbev_2stage.f b/SRC/ssbev_2stage.f
index fc6360c5..f77368ab 100644
--- a/SRC/ssbev_2stage.f
+++ b/SRC/ssbev_2stage.f
@@ -239,7 +239,7 @@
EXTERNAL LSAME, SLAMCH, SLANSB, ILAENV
* ..
* .. External Subroutines ..
- EXTERNAL SLASCL, SSCAL, SSTEQR, SSTERF, XERBLA
+ EXTERNAL SLASCL, SSCAL, SSTEQR, SSTERF, XERBLA,
$ SSYTRD_SB2ST
* ..
* .. Intrinsic Functions ..
diff --git a/SRC/ssytrs_aa.f b/SRC/ssytrs_aa.f
index 6d084736..aa2f9cfc 100644
--- a/SRC/ssytrs_aa.f
+++ b/SRC/ssytrs_aa.f
@@ -66,7 +66,7 @@
*> of the matrix B. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is REAL array, dimension (LDA,N)
*> Details of factors computed by SSYTRF_AA.
diff --git a/SRC/stplqt.f b/SRC/stplqt.f
index e3c37abf..482ce568 100644
--- a/SRC/stplqt.f
+++ b/SRC/stplqt.f
@@ -73,8 +73,8 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is REAL array, dimension (LDA,N)
-*> On entry, the lower triangular N-by-N matrix A.
+*> A is REAL array, dimension (LDA,M)
+*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
*> \endverbatim
@@ -82,7 +82,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -146,26 +146,26 @@
*> C = [ A ] [ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 on left of a M-by-L
*> upper trapezoidal matrix B2:
*> [ B ] = [ B1 ] [ B2 ]
*> [ B1 ] <- M-by-(N-L) rectangular
-*> [ B2 ] <- M-by-L upper trapezoidal.
+*> [ B2 ] <- M-by-L lower trapezoidal.
*>
*> The lower trapezoidal matrix B2 consists of the first L columns of a
-*> N-by-N lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
+*> M-by-M lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
*> B is rectangular M-by-N; if M=L=N, B is lower triangular.
*>
*> The matrix W stores the elementary reflectors H(i) in the i-th row
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*> [ C ] = [ A ] [ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*> [ W ] = [ I ] [ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/stplqt2.f b/SRC/stplqt2.f
index f1b8e030..b16738fb 100644
--- a/SRC/stplqt2.f
+++ b/SRC/stplqt2.f
@@ -65,7 +65,7 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is REAL array, dimension (LDA,N)
+*> A is REAL array, dimension (LDA,M)
*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
@@ -74,7 +74,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -133,7 +133,7 @@
*> C = [ A ][ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 left of a M-by-L
*> upper trapezoidal matrix B2:
*>
@@ -149,13 +149,13 @@
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*>
*> C = [ A ][ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*>
*> W = [ I ][ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/zgelqt.f b/SRC/zgelqt.f
index c8afd1c5..54da169b 100644
--- a/SRC/zgelqt.f
+++ b/SRC/zgelqt.f
@@ -117,8 +117,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
@@ -127,11 +127,11 @@
*>
*> where the vi's represent the vectors which define H(i), which are returned
*> in the matrix A. The 1's along the diagonal of V are not stored in A.
-*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/NB), where each
-*> block is of order NB except for the last block, which is of order
-*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
-*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> Let K=MIN(M,N). The number of blocks is B = ceiling(K/MB), where each
+*> block is of order MB except for the last block, which is of order
+*> IB = K - (B-1)*MB. For each of the B blocks, a upper triangular block
+*> reflector factor is computed: T1, T2, ..., TB. The MB-by-MB (and IB-by-IB
+*> for the last block) T's are stored in the MB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/zgelqt3.f b/SRC/zgelqt3.f
index 14063544..438238a1 100644
--- a/SRC/zgelqt3.f
+++ b/SRC/zgelqt3.f
@@ -109,8 +109,8 @@
*>
*> \verbatim
*>
-*> The matrix V stores the elementary reflectors H(i) in the i-th column
-*> below the diagonal. For example, if M=5 and N=3, the matrix V is
+*> The matrix V stores the elementary reflectors H(i) in the i-th row
+*> above the diagonal. For example, if M=5 and N=3, the matrix V is
*>
*> V = ( 1 v1 v1 v1 v1 )
*> ( 1 v2 v2 v2 )
diff --git a/SRC/zgemlqt.f b/SRC/zgemlqt.f
index 569713c7..e75b24b0 100644
--- a/SRC/zgemlqt.f
+++ b/SRC/zgemlqt.f
@@ -6,7 +6,7 @@
* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DGEMQRT + dependencies
+*> Download DGEMLQT + dependencies
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zgemlqt.f">
*> [TGZ]</a>
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zgemlqt.f">
@@ -35,16 +35,16 @@
*>
*> \verbatim
*>
-*> ZGEMQRT overwrites the general real M-by-N matrix C with
+*> ZGEMLQT overwrites the general real M-by-N matrix C with
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q C C Q
-*> TRANS = 'C': Q**C C C Q**C
+*> TRANS = 'C': Q**H C C Q**H
*>
*> where Q is a complex orthogonal matrix defined as the product of K
*> elementary reflectors:
*>
-*> Q = H(1) H(2) . . . H(K) = I - V C V**C
+*> Q = H(1) H(2) . . . H(K) = I - V T V**H
*>
*> generated using the compact WY representation as returned by ZGELQT.
*>
@@ -57,15 +57,15 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**C from the Left;
-*> = 'R': apply Q or Q**C from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'C': Transpose, apply Q**C.
+*> = 'C': Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
@@ -99,7 +99,9 @@
*>
*> \param[in] V
*> \verbatim
-*> V is COMPLEX*16 array, dimension (LDV,K)
+*> V is COMPLEX*16 array, dimension
+*> (LDV,M) if SIDE = 'L',
+*> (LDV,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
*> DGELQT in the first K rows of its array argument A.
@@ -108,16 +110,14 @@
*> \param[in] LDV
*> \verbatim
*> LDV is INTEGER
-*> The leading dimension of the array V.
-*> If SIDE = 'L', LDA >= max(1,M);
-*> if SIDE = 'R', LDA >= max(1,N).
+*> The leading dimension of the array V. LDV >= max(1,K).
*> \endverbatim
*>
*> \param[in] T
*> \verbatim
*> T is COMPLEX*16 array, dimension (LDT,K)
*> The upper triangular factors of the block reflectors
-*> as returned by DGELQT, stored as a MB-by-M matrix.
+*> as returned by DGELQT, stored as a MB-by-K matrix.
*> \endverbatim
*>
*> \param[in] LDT
@@ -130,7 +130,7 @@
*> \verbatim
*> C is COMPLEX*16 array, dimension (LDC,N)
*> On entry, the M-by-N matrix C.
-*> On exit, C is overwritten by Q C, Q**C C, C Q**C or C Q.
+*> On exit, C is overwritten by Q C, Q**H C, C Q**H or C Q.
*> \endverbatim
*>
*> \param[in] LDC
diff --git a/SRC/zgeqrt.f b/SRC/zgeqrt.f
index 4f872c5b..910f803e 100644
--- a/SRC/zgeqrt.f
+++ b/SRC/zgeqrt.f
@@ -133,7 +133,7 @@
*> block is of order NB except for the last block, which is of order
*> IB = K - (B-1)*NB. For each of the B blocks, a upper triangular block
*> reflector factor is computed: T1, T2, ..., TB. The NB-by-NB (and IB-by-IB
-*> for the last block) T's are stored in the NB-by-N matrix T as
+*> for the last block) T's are stored in the NB-by-K matrix T as
*>
*> T = (T1 T2 ... TB).
*> \endverbatim
diff --git a/SRC/zgetsls.f b/SRC/zgetsls.f
index 40ad10e8..e9ff84fd 100644
--- a/SRC/zgetsls.f
+++ b/SRC/zgetsls.f
@@ -53,7 +53,7 @@
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': the linear system involves A;
-*> = 'C': the linear system involves A**C.
+*> = 'C': the linear system involves A**H.
*> \endverbatim
*>
*> \param[in] M
diff --git a/SRC/zhbev_2stage.f b/SRC/zhbev_2stage.f
index e30162dc..bb0faefd 100644
--- a/SRC/zhbev_2stage.f
+++ b/SRC/zhbev_2stage.f
@@ -247,7 +247,7 @@
EXTERNAL LSAME, DLAMCH, ZLANHB, ILAENV
* ..
* .. External Subroutines ..
- EXTERNAL DSCAL, DSTERF, XERBLA, ZLASCL, ZSTEQR
+ EXTERNAL DSCAL, DSTERF, XERBLA, ZLASCL, ZSTEQR,
$ ZHETRD_2STAGE
* ..
* .. Intrinsic Functions ..
diff --git a/SRC/zhetrs_aa.f b/SRC/zhetrs_aa.f
index 044bf4cf..af8e6762 100644
--- a/SRC/zhetrs_aa.f
+++ b/SRC/zhetrs_aa.f
@@ -67,7 +67,7 @@
*> of the matrix B. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is COMPLEX*16 array, dimension (LDA,N)
*> Details of factors computed by ZHETRF_AA.
diff --git a/SRC/zlamswlq.f b/SRC/zlamswlq.f
index 8068114b..9cd529bf 100644
--- a/SRC/zlamswlq.f
+++ b/SRC/zlamswlq.f
@@ -23,7 +23,7 @@
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q * C C * Q
-*> TRANS = 'T': Q**T * C C * Q**T
+*> TRANS = 'C': Q**H * C C * Q**H
*> where Q is a real orthogonal matrix defined as the product of blocked
*> elementary reflectors computed by short wide LQ
*> factorization (ZLASWLQ)
@@ -35,21 +35,21 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**T from the Left;
-*> = 'R': apply Q or Q**T from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'T': Transpose, apply Q**T.
+*> = 'C': Conjugate Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
*> \verbatim
*> M is INTEGER
-*> The number of rows of the matrix A. M >=0.
+*> The number of rows of the matrix C. M >=0.
*> \endverbatim
*>
*> \param[in] N
@@ -88,12 +88,14 @@
*>
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
-*> A is COMPLEX*16 array, dimension (LDA,K)
+*> A is COMPLEX*16 array, dimension
+*> (LDA,M) if SIDE = 'L',
+*> (LDA,N) if SIDE = 'R'
*> The i-th row must contain the vector which defines the blocked
*> elementary reflector H(i), for i = 1,2,...,k, as returned by
-*> DLASWLQ in the first k rows of its array argument A.
+*> ZLASWLQ in the first k rows of its array argument A.
*> \endverbatim
*>
*> \param[in] LDA
@@ -123,7 +125,7 @@
*> \verbatim
*> C is COMPLEX*16 array, dimension (LDC,N)
*> On entry, the M-by-N matrix C.
-*> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
+*> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
*> \endverbatim
*>
*> \param[in] LDC
@@ -207,7 +209,7 @@
*
* .. Scalar Arguments ..
CHARACTER SIDE, TRANS
- INTEGER INFO, LDA, M, N, K, MB, NB, LDT, LWORK, LDC, LW
+ INTEGER INFO, LDA, M, N, K, MB, NB, LDT, LWORK, LDC
* ..
* .. Array Arguments ..
COMPLEX*16 A( LDA, * ), WORK( * ), C(LDC, * ),
@@ -219,7 +221,7 @@
* ..
* .. Local Scalars ..
LOGICAL LEFT, RIGHT, TRAN, NOTRAN, LQUERY
- INTEGER I, II, KK, CTR
+ INTEGER I, II, KK, LW, CTR
* ..
* .. External Functions ..
LOGICAL LSAME
diff --git a/SRC/zlamtsqr.f b/SRC/zlamtsqr.f
index 855083a6..79370017 100644
--- a/SRC/zlamtsqr.f
+++ b/SRC/zlamtsqr.f
@@ -23,7 +23,7 @@
*>
*> SIDE = 'L' SIDE = 'R'
*> TRANS = 'N': Q * C C * Q
-*> TRANS = 'C': Q**C * C C * Q**C
+*> TRANS = 'C': Q**H * C C * Q**H
*> where Q is a real orthogonal matrix defined as the product
*> of blocked elementary reflectors computed by tall skinny
*> QR factorization (ZLATSQR)
@@ -35,15 +35,15 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**T from the Left;
-*> = 'R': apply Q or Q**T from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'C': Conjugate Transpose, apply Q**C.
+*> = 'C': Conjugate Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
@@ -81,7 +81,7 @@
*> N >= NB >= 1.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is COMPLEX*16 array, dimension (LDA,K)
*> The i-th column must contain the vector which defines the
@@ -117,7 +117,7 @@
*> \verbatim
*> C is COMPLEX*16 array, dimension (LDC,N)
*> On entry, the M-by-N matrix C.
-*> On exit, C is overwritten by Q*C or Q**T*C or C*Q**T or C*Q.
+*> On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
*> \endverbatim
*>
*> \param[in] LDC
diff --git a/SRC/zlaswlq.f b/SRC/zlaswlq.f
index cd7bcc3a..96f86f18 100644
--- a/SRC/zlaswlq.f
+++ b/SRC/zlaswlq.f
@@ -55,7 +55,7 @@
*> \verbatim
*> A is COMPLEX*16 array, dimension (LDA,N)
*> On entry, the M-by-N matrix A.
-*> On exit, the elements on and bleow the diagonal
+*> On exit, the elements on and below the diagonal
*> of the array contain the N-by-N lower triangular matrix L;
*> the elements above the diagonal represent Q by the rows
*> of blocked V (see Further Details).
diff --git a/SRC/zlaswp.f b/SRC/zlaswp.f
index 81ceba2c..1333e26f 100644
--- a/SRC/zlaswp.f
+++ b/SRC/zlaswp.f
@@ -79,14 +79,15 @@
*> \verbatim
*> IPIV is INTEGER array, dimension (K1+(K2-K1)*abs(INCX))
*> The vector of pivot indices. Only the elements in positions
-*> K1 through K1+(K2-K1)*INCX of IPIV are accessed.
-*> IPIV(K) = L implies rows K and L are to be interchanged.
+*> K1 through K1+(K2-K1)*abs(INCX) of IPIV are accessed.
+*> IPIV(K1+(K-K1)*abs(INCX)) = L implies rows K and L are to be
+*> interchanged.
*> \endverbatim
*>
*> \param[in] INCX
*> \verbatim
*> INCX is INTEGER
-*> The increment between successive values of IPIV. If IPIV
+*> The increment between successive values of IPIV. If INCX
*> is negative, the pivots are applied in reverse order.
*> \endverbatim
*
@@ -135,7 +136,8 @@
* ..
* .. Executable Statements ..
*
-* Interchange row I with row IPIV(I) for each of rows K1 through K2.
+* Interchange row I with row IPIV(K1+(I-K1)*abs(INCX)) for each of rows
+* K1 through K2.
*
IF( INCX.GT.0 ) THEN
IX0 = K1
diff --git a/SRC/zsytrs_aa.f b/SRC/zsytrs_aa.f
index b3c9b9ec..fc7f31e6 100644
--- a/SRC/zsytrs_aa.f
+++ b/SRC/zsytrs_aa.f
@@ -66,7 +66,7 @@
*> of the matrix B. NRHS >= 0.
*> \endverbatim
*>
-*> \param[in,out] A
+*> \param[in] A
*> \verbatim
*> A is COMPLEX*16 array, dimension (LDA,N)
*> Details of factors computed by ZSYTRF_AA.
diff --git a/SRC/ztplqt.f b/SRC/ztplqt.f
index 28740208..a9a035ef 100644
--- a/SRC/ztplqt.f
+++ b/SRC/ztplqt.f
@@ -73,8 +73,8 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is COMPLEX*16 array, dimension (LDA,N)
-*> On entry, the lower triangular N-by-N matrix A.
+*> A is COMPLEX*16 array, dimension (LDA,M)
+*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
*> \endverbatim
@@ -82,7 +82,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -146,26 +146,26 @@
*> C = [ A ] [ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 on left of a M-by-L
*> upper trapezoidal matrix B2:
*> [ B ] = [ B1 ] [ B2 ]
*> [ B1 ] <- M-by-(N-L) rectangular
-*> [ B2 ] <- M-by-L upper trapezoidal.
+*> [ B2 ] <- M-by-L lower trapezoidal.
*>
*> The lower trapezoidal matrix B2 consists of the first L columns of a
-*> N-by-N lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
+*> M-by-M lower triangular matrix, where 0 <= L <= MIN(M,N). If L=0,
*> B is rectangular M-by-N; if M=L=N, B is lower triangular.
*>
*> The matrix W stores the elementary reflectors H(i) in the i-th row
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*> [ C ] = [ A ] [ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*> [ W ] = [ I ] [ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/ztplqt2.f b/SRC/ztplqt2.f
index 733f9dcc..a1d96dba 100644
--- a/SRC/ztplqt2.f
+++ b/SRC/ztplqt2.f
@@ -65,7 +65,7 @@
*>
*> \param[in,out] A
*> \verbatim
-*> A is COMPLEX*16 array, dimension (LDA,N)
+*> A is COMPLEX*16 array, dimension (LDA,M)
*> On entry, the lower triangular M-by-M matrix A.
*> On exit, the elements on and below the diagonal of the array
*> contain the lower triangular matrix L.
@@ -74,7 +74,7 @@
*> \param[in] LDA
*> \verbatim
*> LDA is INTEGER
-*> The leading dimension of the array A. LDA >= max(1,N).
+*> The leading dimension of the array A. LDA >= max(1,M).
*> \endverbatim
*>
*> \param[in,out] B
@@ -133,7 +133,7 @@
*> C = [ A ][ B ]
*>
*>
-*> where A is an lower triangular N-by-N matrix, and B is M-by-N pentagonal
+*> where A is an lower triangular M-by-M matrix, and B is M-by-N pentagonal
*> matrix consisting of a M-by-(N-L) rectangular matrix B1 left of a M-by-L
*> upper trapezoidal matrix B2:
*>
@@ -149,13 +149,13 @@
*> above the diagonal (of A) in the M-by-(M+N) input matrix C
*>
*> C = [ A ][ B ]
-*> [ A ] <- lower triangular N-by-N
+*> [ A ] <- lower triangular M-by-M
*> [ B ] <- M-by-N pentagonal
*>
*> so that W can be represented as
*>
*> W = [ I ][ V ]
-*> [ I ] <- identity, N-by-N
+*> [ I ] <- identity, M-by-M
*> [ V ] <- M-by-N, same form as B.
*>
*> Thus, all of information needed for W is contained on exit in B, which
diff --git a/SRC/ztpmlqt.f b/SRC/ztpmlqt.f
index f9540e11..e6c611e0 100644
--- a/SRC/ztpmlqt.f
+++ b/SRC/ztpmlqt.f
@@ -6,7 +6,7 @@
* http://www.netlib.org/lapack/explore-html/
*
*> \htmlonly
-*> Download DTPMQRT + dependencies
+*> Download ZTPMLQT + dependencies
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/ztpmlqt.f">
*> [TGZ]</a>
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/ztpmlqt.f">
@@ -36,9 +36,9 @@
*>
*> \verbatim
*>
-*> ZTPMQRT applies a complex orthogonal matrix Q obtained from a
-*> "triangular-pentagonal" real block reflector H to a general
-*> real matrix C, which consists of two blocks A and B.
+*> ZTPMLQT applies a complex orthogonal matrix Q obtained from a
+*> "triangular-pentagonal" complex block reflector H to a general
+*> complex matrix C, which consists of two blocks A and B.
*> \endverbatim
*
* Arguments:
@@ -47,15 +47,15 @@
*> \param[in] SIDE
*> \verbatim
*> SIDE is CHARACTER*1
-*> = 'L': apply Q or Q**C from the Left;
-*> = 'R': apply Q or Q**C from the Right.
+*> = 'L': apply Q or Q**H from the Left;
+*> = 'R': apply Q or Q**H from the Right.
*> \endverbatim
*>
*> \param[in] TRANS
*> \verbatim
*> TRANS is CHARACTER*1
*> = 'N': No transpose, apply Q;
-*> = 'C': Transpose, apply Q**C.
+*> = 'C': Transpose, apply Q**H.
*> \endverbatim
*>
*> \param[in] M
@@ -128,7 +128,7 @@
*> (LDA,K) if SIDE = 'R'
*> On entry, the K-by-N or M-by-K matrix A.
*> On exit, A is overwritten by the corresponding block of
-*> Q*C or Q**C*C or C*Q or C*Q**C. See Further Details.
+*> Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
*> \endverbatim
*>
*> \param[in] LDA
@@ -144,7 +144,7 @@
*> B is COMPLEX*16 array, dimension (LDB,N)
*> On entry, the M-by-N matrix B.
*> On exit, B is overwritten by the corresponding block of
-*> Q*C or Q**C*C or C*Q or C*Q**C. See Further Details.
+*> Q*C or Q**H*C or C*Q or C*Q**H. See Further Details.
*> \endverbatim
*>
*> \param[in] LDB
@@ -205,11 +205,11 @@
*>
*> If TRANS='N' and SIDE='L', C is on exit replaced with Q * C.
*>
-*> If TRANS='C' and SIDE='L', C is on exit replaced with Q**C * C.
+*> If TRANS='C' and SIDE='L', C is on exit replaced with Q**H * C.
*>
*> If TRANS='N' and SIDE='R', C is on exit replaced with C * Q.
*>
-*> If TRANS='C' and SIDE='R', C is on exit replaced with C * Q**C.
+*> If TRANS='C' and SIDE='R', C is on exit replaced with C * Q**H.
*> \endverbatim
*>
* =====================================================================
diff --git a/SRC/ztrevc3.f b/SRC/ztrevc3.f
index 9ab8b42b..ef833117 100644
--- a/SRC/ztrevc3.f
+++ b/SRC/ztrevc3.f
@@ -287,7 +287,7 @@
EXTERNAL LSAME, ILAENV, IZAMAX, DLAMCH, DZASUM
* ..
* .. External Subroutines ..
- EXTERNAL XERBLA, ZCOPY, ZDSCAL, ZGEMV, ZLATRS
+ EXTERNAL XERBLA, ZCOPY, ZDSCAL, ZGEMV, ZLATRS,
$ ZGEMM, DLABAD, ZLASET
* ..
* .. Intrinsic Functions ..