summaryrefslogtreecommitdiff
path: root/SRC
diff options
context:
space:
mode:
Diffstat (limited to 'SRC')
-rw-r--r--SRC/cgbrfsx.f8
-rw-r--r--SRC/cgbsvxx.f12
-rw-r--r--SRC/cgebak.f1
-rw-r--r--SRC/cgebal.f1
-rw-r--r--SRC/cgeevx.f1
-rw-r--r--SRC/cgegv.f4
-rw-r--r--SRC/cgeqp3.f6
-rw-r--r--SRC/cgeqrt.f2
-rw-r--r--SRC/cgerfsx.f8
-rw-r--r--SRC/cgesvxx.f12
-rw-r--r--SRC/cggbak.f1
-rw-r--r--SRC/cggbal.f1
-rw-r--r--SRC/cgges.f1
-rw-r--r--SRC/cggesx.f1
-rw-r--r--SRC/cggev.f1
-rw-r--r--SRC/cggevx.f4
-rw-r--r--SRC/chbevx.f2
-rw-r--r--SRC/cheevr.f8
-rw-r--r--SRC/cheevx.f2
-rw-r--r--SRC/cherfsx.f8
-rw-r--r--SRC/chesvxx.f14
-rw-r--r--SRC/chgeqz.f1
-rw-r--r--SRC/chpevx.f2
-rw-r--r--SRC/chseqr.f14
-rw-r--r--SRC/cla_heamv.f2
-rw-r--r--SRC/cla_lin_berr.f3
-rw-r--r--SRC/cla_syamv.f2
-rw-r--r--SRC/cla_wwaddw.f6
-rw-r--r--SRC/clacrt.f1
-rw-r--r--SRC/cladiv.f1
-rw-r--r--SRC/claesy.f1
-rw-r--r--SRC/claev2.f1
-rw-r--r--SRC/clags2.f7
-rw-r--r--SRC/clahqr.f14
-rw-r--r--SRC/clanhf.f2
-rw-r--r--SRC/claqr0.f16
-rw-r--r--SRC/claqr1.f12
-rw-r--r--SRC/claqr2.f19
-rw-r--r--SRC/claqr3.f18
-rw-r--r--SRC/claqr4.f22
-rw-r--r--SRC/claqr5.f17
-rw-r--r--SRC/clargv.f2
-rw-r--r--SRC/clarrv.f19
-rw-r--r--SRC/clatbs.f2
-rw-r--r--SRC/clatps.f2
-rw-r--r--SRC/clatrs.f2
-rw-r--r--SRC/cporfsx.f8
-rw-r--r--SRC/cposvxx.f12
-rw-r--r--SRC/csyconv.f3
-rw-r--r--SRC/csyrfsx.f8
-rw-r--r--SRC/csysvxx.f12
-rw-r--r--SRC/ctgexc.f1
-rw-r--r--SRC/dgbrfsx.f8
-rw-r--r--SRC/dgbsvxx.f14
-rw-r--r--SRC/dgebak.f1
-rw-r--r--SRC/dgebal.f1
-rw-r--r--SRC/dgees.f1
-rw-r--r--SRC/dgeesx.f1
-rw-r--r--SRC/dgeev.f1
-rw-r--r--SRC/dgeevx.f2
-rw-r--r--SRC/dgegv.f3
-rw-r--r--SRC/dgeqp3.f6
-rwxr-xr-xSRC/dgeqrt.f4
-rw-r--r--SRC/dgerfsx.f8
-rw-r--r--SRC/dgesvj.f105
-rw-r--r--SRC/dgesvxx.f16
-rw-r--r--SRC/dggbak.f1
-rw-r--r--SRC/dggbal.f1
-rw-r--r--SRC/dgges.f2
-rw-r--r--SRC/dggesx.f2
-rw-r--r--SRC/dggev.f2
-rw-r--r--SRC/dggevx.f3
-rw-r--r--SRC/dhgeqz.f1
-rw-r--r--SRC/dhseqr.f14
-rw-r--r--SRC/dla_lin_berr.f2
-rw-r--r--SRC/dla_syamv.f6
-rw-r--r--SRC/dla_wwaddw.f6
-rw-r--r--SRC/dlacn2.f2
-rw-r--r--SRC/dladiv.f4
-rw-r--r--SRC/dlaebz.f5
-rw-r--r--SRC/dlaed9.f1
-rw-r--r--SRC/dlaein.f2
-rw-r--r--SRC/dlaev2.f1
-rw-r--r--SRC/dlags2.f7
-rw-r--r--SRC/dlagv2.f2
-rw-r--r--SRC/dlahqr.f15
-rw-r--r--SRC/dlamrg.f2
-rw-r--r--SRC/dlanv2.f7
-rw-r--r--SRC/dlapy2.f1
-rw-r--r--SRC/dlapy3.f2
-rw-r--r--SRC/dlaqr0.f19
-rw-r--r--SRC/dlaqr1.f21
-rw-r--r--SRC/dlaqr2.f19
-rw-r--r--SRC/dlaqr3.f18
-rw-r--r--SRC/dlaqr4.f22
-rw-r--r--SRC/dlaqr5.f18
-rw-r--r--SRC/dlarra.f1
-rw-r--r--SRC/dlarrb.f1
-rw-r--r--SRC/dlarrc.f2
-rw-r--r--SRC/dlarrd.f3
-rw-r--r--SRC/dlarre.f3
-rw-r--r--SRC/dlarrk.f1
-rw-r--r--SRC/dlarrv.f3
-rw-r--r--SRC/dlascl.f1
-rw-r--r--SRC/dlasq2.f1
-rw-r--r--SRC/dlasq4.f1
-rw-r--r--SRC/dlasv2.f2
-rw-r--r--SRC/dlatbs.f2
-rw-r--r--SRC/dlatps.f2
-rw-r--r--SRC/dlatrs.f2
-rw-r--r--SRC/dporfsx.f8
-rw-r--r--SRC/dposvxx.f12
-rw-r--r--SRC/dsbevx.f2
-rw-r--r--SRC/dspevx.f2
-rw-r--r--SRC/dstevr.f8
-rw-r--r--SRC/dstevx.f2
-rw-r--r--SRC/dsyconv.f2
-rw-r--r--SRC/dsyevr.f8
-rw-r--r--SRC/dsyevx.f2
-rw-r--r--SRC/dsygvx.f2
-rw-r--r--SRC/dsyrfsx.f8
-rw-r--r--SRC/dsysvxx.f12
-rw-r--r--SRC/dtgexc.f1
-rw-r--r--SRC/dtrsyl.f2
-rw-r--r--SRC/ilaclr.f2
-rw-r--r--SRC/iladiag.f1
-rw-r--r--SRC/ilaenv.f3
-rw-r--r--SRC/ilaprec.f1
-rw-r--r--SRC/ilatrans.f1
-rw-r--r--SRC/ilauplo.f1
-rw-r--r--SRC/ilaver.f4
-rw-r--r--SRC/iparmq.f3
-rw-r--r--SRC/lsamen.f1
-rw-r--r--SRC/sgbrfsx.f8
-rw-r--r--SRC/sgbsvxx.f12
-rw-r--r--SRC/sgebak.f1
-rw-r--r--SRC/sgebal.f1
-rw-r--r--SRC/sgees.f1
-rw-r--r--SRC/sgeesx.f1
-rw-r--r--SRC/sgeev.f1
-rw-r--r--SRC/sgeevx.f2
-rw-r--r--SRC/sgegv.f3
-rw-r--r--SRC/sgeqp3.f4
-rw-r--r--SRC/sgeqrt.f4
-rw-r--r--SRC/sgerfsx.f8
-rw-r--r--SRC/sgesvxx.f12
-rw-r--r--SRC/sggbak.f1
-rw-r--r--SRC/sggbal.f1
-rw-r--r--SRC/sgges.f2
-rw-r--r--SRC/sggesx.f2
-rw-r--r--SRC/sggev.f2
-rw-r--r--SRC/sggevx.f3
-rw-r--r--SRC/shgeqz.f1
-rw-r--r--SRC/shseqr.f14
-rw-r--r--SRC/sla_lin_berr.f2
-rw-r--r--SRC/sla_syamv.f2
-rw-r--r--SRC/sla_wwaddw.f6
-rw-r--r--SRC/slacn2.f2
-rw-r--r--SRC/sladiv.f4
-rw-r--r--SRC/slaebz.f5
-rw-r--r--SRC/slaed9.f1
-rw-r--r--SRC/slaein.f2
-rw-r--r--SRC/slaev2.f1
-rw-r--r--SRC/slags2.f7
-rw-r--r--SRC/slagv2.f2
-rw-r--r--SRC/slahqr.f15
-rw-r--r--SRC/slamrg.f2
-rw-r--r--SRC/slaneg.f4
-rw-r--r--SRC/slanv2.f7
-rw-r--r--SRC/slapy2.f1
-rw-r--r--SRC/slapy3.f2
-rw-r--r--SRC/slaqr0.f18
-rw-r--r--SRC/slaqr1.f21
-rw-r--r--SRC/slaqr2.f19
-rw-r--r--SRC/slaqr3.f18
-rw-r--r--SRC/slaqr4.f23
-rw-r--r--SRC/slaqr5.f18
-rw-r--r--SRC/slarra.f6
-rw-r--r--SRC/slarrb.f13
-rw-r--r--SRC/slarrc.f2
-rw-r--r--SRC/slarrd.f17
-rw-r--r--SRC/slarre.f22
-rw-r--r--SRC/slarrf.f4
-rw-r--r--SRC/slarrj.f10
-rw-r--r--SRC/slarrk.f5
-rw-r--r--SRC/slarrr.f2
-rw-r--r--SRC/slarrv.f5
-rw-r--r--SRC/slascl.f1
-rw-r--r--SRC/slasv2.f2
-rw-r--r--SRC/sporfsx.f8
-rw-r--r--SRC/sposvxx.f12
-rw-r--r--SRC/ssbevx.f2
-rw-r--r--SRC/sspevx.f2
-rw-r--r--SRC/sstevr.f8
-rw-r--r--SRC/sstevx.f2
-rw-r--r--SRC/ssyconv.f3
-rw-r--r--SRC/ssyevr.f8
-rw-r--r--SRC/ssyevx.f2
-rw-r--r--SRC/ssygvx.f2
-rw-r--r--SRC/ssyrfsx.f8
-rw-r--r--SRC/ssysvxx.f12
-rw-r--r--SRC/stgexc.f1
-rw-r--r--SRC/zgbrfsx.f8
-rw-r--r--SRC/zgbsvxx.f14
-rw-r--r--SRC/zgebak.f1
-rw-r--r--SRC/zgebal.f1
-rw-r--r--SRC/zgeevx.f1
-rw-r--r--SRC/zgegv.f3
-rw-r--r--SRC/zgeqp3.f6
-rw-r--r--SRC/zgeqrt.f4
-rw-r--r--SRC/zgerfsx.f8
-rw-r--r--SRC/zgesvxx.f12
-rw-r--r--SRC/zggbak.f1
-rw-r--r--SRC/zggbal.f1
-rw-r--r--SRC/zgges.f1
-rw-r--r--SRC/zggesx.f1
-rw-r--r--SRC/zggev.f1
-rw-r--r--SRC/zggevx.f4
-rw-r--r--SRC/zhbevx.f2
-rw-r--r--SRC/zheevr.f2
-rw-r--r--SRC/zheevx.f2
-rw-r--r--SRC/zherfsx.f8
-rw-r--r--SRC/zhesvxx.f12
-rw-r--r--SRC/zhgeqz.f1
-rw-r--r--SRC/zhpevx.f2
-rw-r--r--SRC/zhseqr.f14
-rw-r--r--SRC/zla_heamv.f8
-rw-r--r--SRC/zla_lin_berr.f3
-rw-r--r--SRC/zla_syamv.f8
-rw-r--r--SRC/zla_wwaddw.f6
-rw-r--r--SRC/zlacn2.f2
-rw-r--r--SRC/zlacon.f2
-rw-r--r--SRC/zlacrt.f1
-rw-r--r--SRC/zladiv.f1
-rw-r--r--SRC/zlaesy.f1
-rw-r--r--SRC/zlaev2.f1
-rw-r--r--SRC/zlags2.f7
-rw-r--r--SRC/zlahqr.f16
-rw-r--r--SRC/zlaqr0.f16
-rw-r--r--SRC/zlaqr1.f11
-rw-r--r--SRC/zlaqr2.f21
-rw-r--r--SRC/zlaqr3.f19
-rw-r--r--SRC/zlaqr4.f21
-rw-r--r--SRC/zlaqr5.f16
-rw-r--r--SRC/zlarf.f14
-rw-r--r--SRC/zlargv.f2
-rw-r--r--SRC/zlarrv.f3
-rw-r--r--SRC/zlascl.f1
-rw-r--r--SRC/zlatbs.f2
-rw-r--r--SRC/zlatps.f2
-rw-r--r--SRC/zlatrs.f2
-rw-r--r--SRC/zporfsx.f8
-rw-r--r--SRC/zposvxx.f12
-rw-r--r--SRC/zsyconv.f3
-rw-r--r--SRC/zsyrfsx.f8
-rw-r--r--SRC/zsysvxx.f12
-rw-r--r--SRC/ztgexc.f1
257 files changed, 1005 insertions, 582 deletions
diff --git a/SRC/cgbrfsx.f b/SRC/cgbrfsx.f
index 0fe4c7ba..537bb620 100644
--- a/SRC/cgbrfsx.f
+++ b/SRC/cgbrfsx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CGBRFSX improves the computed solution to a system of linear
@@ -44,8 +44,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -324,7 +324,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/cgbsvxx.f b/SRC/cgbsvxx.f
index 29272e3e..87549320 100644
--- a/SRC/cgbsvxx.f
+++ b/SRC/cgbsvxx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CGBSVXX uses the LU factorization to compute the solution to a
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what CGBSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -438,7 +438,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/cgebak.f b/SRC/cgebak.f
index 48d87e42..429e4941 100644
--- a/SRC/cgebak.f
+++ b/SRC/cgebak.f
@@ -42,6 +42,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by CGEBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/cgebal.f b/SRC/cgebal.f
index 8a4084a6..762f887d 100644
--- a/SRC/cgebal.f
+++ b/SRC/cgebal.f
@@ -51,6 +51,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N.
diff --git a/SRC/cgeevx.f b/SRC/cgeevx.f
index bdd0c2dd..d7ee57d3 100644
--- a/SRC/cgeevx.f
+++ b/SRC/cgeevx.f
@@ -130,6 +130,7 @@
* JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values determined when A was
* balanced. The balanced A(i,j) = 0 if I > J and
diff --git a/SRC/cgegv.f b/SRC/cgegv.f
index 080524e5..f0cfb5e7 100644
--- a/SRC/cgegv.f
+++ b/SRC/cgegv.f
@@ -45,8 +45,7 @@
* u**H*A = lambda*u**H*B or mu*v**H*A = v**H*B
* are left eigenvectors of (A,B).
*
-* Note: this routine performs "full balancing" on A and B -- see
-* "Further Details", below.
+* Note: this routine performs "full balancing" on A and B
*
* Arguments
* =========
@@ -100,7 +99,6 @@
* one of the forms lambda = alpha/beta or mu = beta/alpha.
* Since either lambda or mu may overflow, they should not,
* in general, be computed.
-
*
* VL (output) COMPLEX array, dimension (LDVL,N)
* If JOBVL = 'V', the left eigenvectors u(j) are stored
diff --git a/SRC/cgeqp3.f b/SRC/cgeqp3.f
index bab52eeb..5ffec77f 100644
--- a/SRC/cgeqp3.f
+++ b/SRC/cgeqp3.f
@@ -114,7 +114,7 @@
* .. Executable Statements ..
*
* Test input arguments
-* ====================
+* ====================
*
INFO = 0
LQUERY = ( LWORK.EQ.-1 )
@@ -176,7 +176,7 @@
NFXD = NFXD - 1
*
* Factorize fixed columns
-* =======================
+* =======================
*
* Compute the QR factorization of fixed columns and update
* remaining columns.
@@ -198,7 +198,7 @@
END IF
*
* Factorize free columns
-* ======================
+* ======================
*
IF( NFXD.LT.MINMN ) THEN
*
diff --git a/SRC/cgeqrt.f b/SRC/cgeqrt.f
index 805d9eb2..75b7ec7a 100644
--- a/SRC/cgeqrt.f
+++ b/SRC/cgeqrt.f
@@ -36,7 +36,7 @@
* On exit, the elements on and above the diagonal of the array
* contain the min(M,N)-by-N upper trapezoidal matrix R (R is
* upper triangular if M >= N); the elements below the diagonal
-* are the columns of V. See below for further details.
+* are the columns of V.
*
* LDA (input) INTEGER
* The leading dimension of the array A. LDA >= max(1,M).
diff --git a/SRC/cgerfsx.f b/SRC/cgerfsx.f
index 7ffc56a6..a4195497 100644
--- a/SRC/cgerfsx.f
+++ b/SRC/cgerfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CGERFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -305,7 +305,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/cgesvxx.f b/SRC/cgesvxx.f
index 43c24e84..36e7ac43 100644
--- a/SRC/cgesvxx.f
+++ b/SRC/cgesvxx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CGESVXX uses the LU factorization to compute the solution to a
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what CGESVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -424,7 +424,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/cggbak.f b/SRC/cggbak.f
index 5cd9ed63..86818b1b 100644
--- a/SRC/cggbak.f
+++ b/SRC/cggbak.f
@@ -43,6 +43,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by CGGBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/cggbal.f b/SRC/cggbal.f
index 6c1eb0a3..96df275d 100644
--- a/SRC/cggbal.f
+++ b/SRC/cggbal.f
@@ -60,6 +60,7 @@
* The leading dimension of the array B. LDB >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
diff --git a/SRC/cgges.f b/SRC/cgges.f
index 51befd81..570f095f 100644
--- a/SRC/cgges.f
+++ b/SRC/cgges.f
@@ -109,6 +109,7 @@
* for which SELCTG is true.
*
* ALPHA (output) COMPLEX array, dimension (N)
+*
* BETA (output) COMPLEX array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
* generalized eigenvalues. ALPHA(j), j=1,...,N and BETA(j),
diff --git a/SRC/cggesx.f b/SRC/cggesx.f
index 647ec3be..9ac26cb8 100644
--- a/SRC/cggesx.f
+++ b/SRC/cggesx.f
@@ -118,6 +118,7 @@
* for which SELCTG is true.
*
* ALPHA (output) COMPLEX array, dimension (N)
+*
* BETA (output) COMPLEX array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
* generalized eigenvalues. ALPHA(j) and BETA(j),j=1,...,N are
diff --git a/SRC/cggev.f b/SRC/cggev.f
index 9d5437d3..3ce1d101 100644
--- a/SRC/cggev.f
+++ b/SRC/cggev.f
@@ -71,6 +71,7 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHA (output) COMPLEX array, dimension (N)
+*
* BETA (output) COMPLEX array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
* generalized eigenvalues.
diff --git a/SRC/cggevx.f b/SRC/cggevx.f
index 26e43d8e..245fbcfd 100644
--- a/SRC/cggevx.f
+++ b/SRC/cggevx.f
@@ -102,6 +102,7 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHA (output) COMPLEX array, dimension (N)
+*
* BETA (output) COMPLEX array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the generalized
* eigenvalues.
@@ -138,6 +139,7 @@
* if JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
@@ -245,6 +247,8 @@
* For further explanation of the reciprocal condition numbers RCONDE
* and RCONDV, see section 4.11 of LAPACK User's Guide.
*
+* =====================================================================
+*
* .. Parameters ..
REAL ZERO, ONE
PARAMETER ( ZERO = 0.0E+0, ONE = 1.0E+0 )
diff --git a/SRC/chbevx.f b/SRC/chbevx.f
index 6a9f51f5..2ab4f0ee 100644
--- a/SRC/chbevx.f
+++ b/SRC/chbevx.f
@@ -75,12 +75,14 @@
* LDQ >= max(1,N).
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/cheevr.f b/SRC/cheevr.f
index 7b5e994a..5dc17573 100644
--- a/SRC/cheevr.f
+++ b/SRC/cheevr.f
@@ -92,8 +92,8 @@
* = 'V': all eigenvalues in the half-open interval (VL,VU]
* will be found.
* = 'I': the IL-th through IU-th eigenvalues will be found.
-********** For RANGE = 'V' or 'I' and IU - IL < N - 1, SSTEBZ and
-********** CSTEIN are called
+* For RANGE = 'V' or 'I' and IU - IL < N - 1, SSTEBZ and
+* CSTEIN are called
*
* UPLO (input) CHARACTER*1
* = 'U': Upper triangle of A is stored;
@@ -116,12 +116,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
@@ -183,7 +185,7 @@
* indicating the nonzero elements in Z. The i-th eigenvector
* is nonzero only in elements ISUPPZ( 2*i-1 ) through
* ISUPPZ( 2*i ).
-********** Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
+* Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
*
* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
diff --git a/SRC/cheevx.f b/SRC/cheevx.f
index cc488ffd..d99c5026 100644
--- a/SRC/cheevx.f
+++ b/SRC/cheevx.f
@@ -61,12 +61,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/cherfsx.f b/SRC/cherfsx.f
index 55052a81..e74e0743 100644
--- a/SRC/cherfsx.f
+++ b/SRC/cherfsx.f
@@ -27,7 +27,7 @@
$ ERR_BNDS_NORM( NRHS, * ),
$ ERR_BNDS_COMP( NRHS, * )
*
-* Purpose
+* Purpose
* =======
*
* CHERFSX improves the computed solution to a system of linear
@@ -42,8 +42,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -295,7 +295,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/chesvxx.f b/SRC/chesvxx.f
index 1ac187fb..043d033a 100644
--- a/SRC/chesvxx.f
+++ b/SRC/chesvxx.f
@@ -28,8 +28,8 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* CHESVXX uses the diagonal pivoting factorization to compute the
* solution to a complex system of linear equations A * X = B, where
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what CHESVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -94,8 +94,8 @@
* diag(R) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -390,7 +390,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/chgeqz.f b/SRC/chgeqz.f
index 47d0b3f6..674dad02 100644
--- a/SRC/chgeqz.f
+++ b/SRC/chgeqz.f
@@ -89,6 +89,7 @@
* The order of the matrices H, T, Q, and Z. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* ILO and IHI mark the rows and columns of H which are in
* Hessenberg form. It is assumed that A is already upper
diff --git a/SRC/chpevx.f b/SRC/chpevx.f
index 1fbf9ab6..3d0fa42d 100644
--- a/SRC/chpevx.f
+++ b/SRC/chpevx.f
@@ -61,12 +61,14 @@
* corresponding elements of A.
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/chseqr.f b/SRC/chseqr.f
index acb922b2..da7d924d 100644
--- a/SRC/chseqr.f
+++ b/SRC/chseqr.f
@@ -12,7 +12,7 @@
* .. Array Arguments ..
COMPLEX H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
* ..
-* Purpose
+* Purpose
* =======
*
* CHSEQR computes the eigenvalues of a Hessenberg matrix H
@@ -25,8 +25,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* JOB (input) CHARACTER*1
* = 'E': compute eigenvalues only;
@@ -147,7 +147,7 @@
* If INFO .GT. 0 and COMPZ = 'N', then Z is not
* accessed.
*
-* ================================================================
+* ================================================================
* Default values supplied by
* ILAENV(ISPEC,'CHSEQR',JOB(:1)//COMPZ(:1),N,ILO,IHI,LWORK).
* It is suggested that these defaults be adjusted in order
@@ -199,12 +199,12 @@
* for ISPEC=16 is 0. Otherwise the default for
* ISPEC=16 is 2.
*
-* ================================================================
+* ================================================================
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -215,7 +215,7 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/cla_heamv.f b/SRC/cla_heamv.f
index 5fbc2183..69d3b61e 100644
--- a/SRC/cla_heamv.f
+++ b/SRC/cla_heamv.f
@@ -64,7 +64,7 @@
* On entry, ALPHA specifies the scalar alpha.
* Unchanged on exit.
*
-* A - COMPLEX array of DIMENSION ( LDA, n ).
+* A (input) COMPLEX array of DIMENSION ( LDA, n ).
* Before entry, the leading m by n part of the array A must
* contain the matrix of coefficients.
* Unchanged on exit.
diff --git a/SRC/cla_lin_berr.f b/SRC/cla_lin_berr.f
index cbe80a24..427dbc51 100644
--- a/SRC/cla_lin_berr.f
+++ b/SRC/cla_lin_berr.f
@@ -27,6 +27,9 @@
* where abs(Z) is the componentwise absolute value of the matrix
* or vector Z.
*
+* Arguments
+* =========
+*
* N (input) INTEGER
* The number of linear equations, i.e., the order of the
* matrix A. N >= 0.
diff --git a/SRC/cla_syamv.f b/SRC/cla_syamv.f
index 15d58409..85f630fe 100644
--- a/SRC/cla_syamv.f
+++ b/SRC/cla_syamv.f
@@ -65,7 +65,7 @@
* On entry, ALPHA specifies the scalar alpha.
* Unchanged on exit.
*
-* A - COMPLEX array of DIMENSION ( LDA, n ).
+* A (input) COMPLEX array of DIMENSION ( LDA, n ).
* Before entry, the leading m by n part of the array A must
* contain the matrix of coefficients.
* Unchanged on exit.
diff --git a/SRC/cla_wwaddw.f b/SRC/cla_wwaddw.f
index 605dd85c..b3dc461a 100644
--- a/SRC/cla_wwaddw.f
+++ b/SRC/cla_wwaddw.f
@@ -17,7 +17,7 @@
COMPLEX X( * ), Y( * ), W( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CLA_WWADDW adds a vector W into a doubled-single vector (X, Y).
@@ -25,8 +25,8 @@
* This works for all extant IBM's hex and binary floating point
* arithmetics, but not for decimal.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* N (input) INTEGER
* The length of vectors X, Y, and W.
diff --git a/SRC/clacrt.f b/SRC/clacrt.f
index 1c02f15c..213071e6 100644
--- a/SRC/clacrt.f
+++ b/SRC/clacrt.f
@@ -44,6 +44,7 @@
* The increment between successive values of CY. INCY <> 0.
*
* C (input) COMPLEX
+*
* S (input) COMPLEX
* C and S define the matrix
* [ C S ].
diff --git a/SRC/cladiv.f b/SRC/cladiv.f
index 00e79c76..d77e5a4c 100644
--- a/SRC/cladiv.f
+++ b/SRC/cladiv.f
@@ -20,6 +20,7 @@
* =========
*
* X (input) COMPLEX
+*
* Y (input) COMPLEX
* The complex scalars X and Y.
*
diff --git a/SRC/claesy.f b/SRC/claesy.f
index 6aaf5149..3156aac7 100644
--- a/SRC/claesy.f
+++ b/SRC/claesy.f
@@ -52,6 +52,7 @@
* value THRESH (set below).
*
* CS1 (output) COMPLEX
+*
* SN1 (output) COMPLEX
* If EVSCAL .NE. 0, ( CS1, SN1 ) is the unit right eigenvector
* for RT1.
diff --git a/SRC/claev2.f b/SRC/claev2.f
index 1c2163ca..0749bcdf 100644
--- a/SRC/claev2.f
+++ b/SRC/claev2.f
@@ -43,6 +43,7 @@
* The eigenvalue of smaller absolute value.
*
* CS1 (output) REAL
+*
* SN1 (output) COMPLEX
* The vector (CS1, SN1) is a unit right eigenvector for RT1.
*
diff --git a/SRC/clags2.f b/SRC/clags2.f
index 4258c720..0fa4d958 100644
--- a/SRC/clags2.f
+++ b/SRC/clags2.f
@@ -54,26 +54,33 @@
* = .FALSE.: the input matrices A and B are lower triangular.
*
* A1 (input) REAL
+*
* A2 (input) COMPLEX
+*
* A3 (input) REAL
* On entry, A1, A2 and A3 are elements of the input 2-by-2
* upper (lower) triangular matrix A.
*
* B1 (input) REAL
+*
* B2 (input) COMPLEX
+*
* B3 (input) REAL
* On entry, B1, B2 and B3 are elements of the input 2-by-2
* upper (lower) triangular matrix B.
*
* CSU (output) REAL
+*
* SNU (output) COMPLEX
* The desired unitary matrix U.
*
* CSV (output) REAL
+*
* SNV (output) COMPLEX
* The desired unitary matrix V.
*
* CSQ (output) REAL
+*
* SNQ (output) COMPLEX
* The desired unitary matrix Q.
*
diff --git a/SRC/clahqr.f b/SRC/clahqr.f
index b3549527..52d2d405 100644
--- a/SRC/clahqr.f
+++ b/SRC/clahqr.f
@@ -13,7 +13,7 @@
COMPLEX H( LDH, * ), W( * ), Z( LDZ, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CLAHQR is an auxiliary routine called by CHSEQR to update the
@@ -21,8 +21,8 @@
* dealing with the Hessenberg submatrix in rows and columns ILO to
* IHI.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -36,6 +36,7 @@
* The order of the matrix H. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows and
* columns IHI+1:N, and that H(ILO,ILO-1) = 0 (unless ILO = 1).
@@ -62,6 +63,7 @@
* of the Schur form returned in H, with W(i) = H(i,i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -102,8 +104,8 @@
* where U is the orthogonal matrix in (*)
* (regardless of the value of WANTT.)
*
-* Further Details
-* ===============
+* Further Details
+* ===============
*
* 02-96 Based on modifications by
* David Day, Sandia National Laboratory, USA
@@ -115,7 +117,7 @@
* (2) adopts the more conservative Ahues & Tisseur stopping
* criterion (LAWN 122, 1997).
*
-* =========================================================
+* =========================================================
*
* .. Parameters ..
INTEGER ITMAX
diff --git a/SRC/clanhf.f b/SRC/clanhf.f
index 6d0544cc..5b27c725 100644
--- a/SRC/clanhf.f
+++ b/SRC/clanhf.f
@@ -69,7 +69,7 @@
* The order of the matrix A. N >= 0. When N = 0, CLANHF is
* set to zero.
*
-* A (input) COMPLEX*16 array, dimension ( N*(N+1)/2 );
+* A (input) COMPLEX*16 array, dimension ( N*(N+1)/2 );
* On entry, the matrix A in RFP Format.
* RFP Format is described by TRANSR, UPLO and N as follows:
* If TRANSR='N' then RFP A is (0:N,0:K-1) when N is even;
diff --git a/SRC/claqr0.f b/SRC/claqr0.f
index 4ea7417b..0d09d548 100644
--- a/SRC/claqr0.f
+++ b/SRC/claqr0.f
@@ -13,8 +13,8 @@
COMPLEX H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* CLAQR0 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
@@ -26,8 +26,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -41,6 +41,7 @@
* The order of the matrix H. N .GE. 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows
* and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
@@ -134,12 +135,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -150,7 +152,7 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/claqr1.f b/SRC/claqr1.f
index c51bcb67..a9224b78 100644
--- a/SRC/claqr1.f
+++ b/SRC/claqr1.f
@@ -12,6 +12,9 @@
COMPLEX H( LDH, * ), V( * )
* ..
*
+* Purpose
+* =======
+*
* Given a 2-by-2 or 3-by-3 matrix H, CLAQR1 sets v to a
* scalar multiple of the first column of the product
*
@@ -22,6 +25,8 @@
* This is useful for starting double implicit shift bulges
* in the QR algorithm.
*
+* Arguments
+* =========
*
* N (input) integer
* Order of the matrix H. N must be either 2 or 3.
@@ -34,18 +39,21 @@
* the calling procedure. LDH.GE.N
*
* S1 (input) COMPLEX
+*
* S2 S1 and S2 are the shifts defining K in (*) above.
*
* V (output) COMPLEX array of dimension N
* A scalar multiple of the first column of the
* matrix K in (*).
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
*
* .. Parameters ..
COMPLEX ZERO
diff --git a/SRC/claqr2.f b/SRC/claqr2.f
index a0e58056..d7d27e09 100644
--- a/SRC/claqr2.f
+++ b/SRC/claqr2.f
@@ -16,11 +16,12 @@
$ WORK( * ), WV( LDWV, * ), Z( LDZ, * )
* ..
*
-* This subroutine is identical to CLAQR3 except that it avoids
-* recursion by calling CLAHQR instead of CLAQR4.
+* Purpose
+* =======
*
+* CLAQR2 is identical to CLAQR3 except that it avoids
+* recursion by calling CLAHQR instead of CLAQR4.
*
-* ******************************************************************
* Aggressive early deflation:
*
* This subroutine accepts as input an upper Hessenberg matrix
@@ -32,7 +33,9 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the triangular Schur factor may be
@@ -77,6 +80,7 @@
* subroutine. N .LE. LDH
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
@@ -147,12 +151,15 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
COMPLEX ZERO, ONE
PARAMETER ( ZERO = ( 0.0e0, 0.0e0 ),
diff --git a/SRC/claqr3.f b/SRC/claqr3.f
index 52ab9398..9412bbd6 100644
--- a/SRC/claqr3.f
+++ b/SRC/claqr3.f
@@ -16,10 +16,12 @@
$ WORK( * ), WV( LDWV, * ), Z( LDZ, * )
* ..
*
-* ******************************************************************
+* Purpose
+* =======
+*
* Aggressive early deflation:
*
-* This subroutine accepts as input an upper Hessenberg matrix
+* CLAQR3 accepts as input an upper Hessenberg matrix
* H and performs an unitary similarity transformation
* designed to detect and deflate fully converged eigenvalues from
* a trailing principal submatrix. On output H has been over-
@@ -28,7 +30,9 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the triangular Schur factor may be
@@ -73,6 +77,7 @@
* subroutine. N .LE. LDH
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
@@ -143,12 +148,15 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
COMPLEX ZERO, ONE
PARAMETER ( ZERO = ( 0.0e0, 0.0e0 ),
diff --git a/SRC/claqr4.f b/SRC/claqr4.f
index 7d4282e4..091be868 100644
--- a/SRC/claqr4.f
+++ b/SRC/claqr4.f
@@ -13,16 +13,17 @@
COMPLEX H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
* ..
*
-* This subroutine implements one level of recursion for CLAQR0.
+*
+* Purpose
+* =======
+*
+* CLAQR4 implements one level of recursion for CLAQR0.
* It is a complete implementation of the small bulge multi-shift
* QR algorithm. It may be called by CLAQR0 and, for large enough
* deflation window size, it may be called by CLAQR3. This
* subroutine is identical to CLAQR0 except that it calls CLAQR2
* instead of CLAQR3.
*
-* Purpose
-* =======
-*
* CLAQR4 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
* H = Z T Z**H, where T is an upper triangular matrix (the
@@ -33,8 +34,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -48,6 +49,7 @@
* The order of the matrix H. N .GE. 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows
* and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
@@ -141,12 +143,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -157,7 +160,8 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/claqr5.f b/SRC/claqr5.f
index 5ea34429..7199183a 100644
--- a/SRC/claqr5.f
+++ b/SRC/claqr5.f
@@ -16,9 +16,15 @@
$ WH( LDWH, * ), WV( LDWV, * ), Z( LDZ, * )
* ..
*
-* This auxiliary subroutine called by CLAQR0 performs a
+* Purpose
+* =======
+*
+* CLAQR5 called by CLAQR0 performs a
* single small-bulge multi-shift QR sweep.
*
+* Arguments
+* =========
+*
* WANTT (input) logical scalar
* WANTT = .true. if the triangular Schur factor
* is being computed. WANTT is set to .false. otherwise.
@@ -45,6 +51,7 @@
* subroutine operates.
*
* KTOP (input) integer scalar
+*
* KBOT (input) integer scalar
* These are the first and last rows and columns of an
* isolated diagonal block upon which the QR sweep is to be
@@ -72,6 +79,7 @@
* calling procedure. LDH.GE.MAX(1,N).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N
@@ -120,12 +128,13 @@
* LDWV is the leading dimension of WV as declared in the
* in the calling subroutine. LDWV.GE.NV.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* Reference:
*
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
@@ -133,7 +142,7 @@
* Level 3 Performance, SIAM Journal of Matrix Analysis,
* volume 23, pages 929--947, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
COMPLEX ZERO, ONE
PARAMETER ( ZERO = ( 0.0e0, 0.0e0 ),
diff --git a/SRC/clargv.f b/SRC/clargv.f
index c4bad275..97ff56ad 100644
--- a/SRC/clargv.f
+++ b/SRC/clargv.f
@@ -57,7 +57,7 @@
* The increment between elements of C. INCC > 0.
*
* Further Details
-* ======= =======
+* ===============
*
* 6-6-96 - Modified with a new algorithm by W. Kahan and J. Demmel
*
diff --git a/SRC/clarrv.f b/SRC/clarrv.f
index ceeb8bf9..7b711617 100644
--- a/SRC/clarrv.f
+++ b/SRC/clarrv.f
@@ -35,16 +35,17 @@
* The order of the matrix. N >= 0.
*
* VL (input) REAL
+*
* VU (input) REAL
* Lower and upper bounds of the interval that contains the desired
* eigenvalues. VL < VU. Needed to compute gaps on the left or right
* end of the extremal eigenvalues in the desired RANGE.
*
-* D (input/output) REAL array, dimension (N)
+* D (input/output) REAL array, dimension (N)
* On entry, the N diagonal elements of the diagonal matrix D.
* On exit, D may be overwritten.
*
-* L (input/output) REAL array, dimension (N)
+* L (input/output) REAL array, dimension (N)
* On entry, the (N-1) subdiagonal elements of the unit
* bidiagonal matrix L are in elements 1 to N-1 of L
* (if the matrix is not splitted.) At the end of each block
@@ -64,6 +65,7 @@
* The total number of input eigenvalues. 0 <= M <= N.
*
* DOL (input) INTEGER
+*
* DOU (input) INTEGER
* If the user wants to compute only selected eigenvectors from all
* the eigenvalues supplied, he can specify an index range DOL:DOU.
@@ -77,12 +79,13 @@
* MINRGP (input) REAL
*
* RTOL1 (input) REAL
+*
* RTOL2 (input) REAL
* Parameters for bisection.
* An interval [LEFT,RIGHT] has converged if
* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )
*
-* W (input/output) REAL array, dimension (N)
+* W (input/output) REAL array, dimension (N)
* The first M elements of W contain the APPROXIMATE eigenvalues for
* which eigenvectors are to be computed. The eigenvalues
* should be grouped by split-off block and ordered from
@@ -92,11 +95,11 @@
* for their block. On exit, W holds the eigenvalues of the
* UNshifted matrix.
*
-* WERR (input/output) REAL array, dimension (N)
+* WERR (input/output) REAL array, dimension (N)
* The first M elements contain the semiwidth of the uncertainty
* interval of the corresponding eigenvalue in W
*
-* WGAP (input/output) REAL array, dimension (N)
+* WGAP (input/output) REAL array, dimension (N)
* The separation from the right neighbor eigenvalue in W.
*
* IBLOCK (input) INTEGER array, dimension (N)
@@ -110,12 +113,12 @@
* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the
* i-th eigenvalue W(i) is the 10-th eigenvalue in the second block.
*
-* GERS (input) REAL array, dimension (2*N)
+* GERS (input) REAL array, dimension (2*N)
* The N Gerschgorin intervals (the i-th Gerschgorin interval
* is (GERS(2*i-1), GERS(2*i)). The Gerschgorin intervals should
* be computed from the original UNshifted matrix.
*
-* Z (output) COMPLEX array, dimension (LDZ, max(1,M) )
+* Z (output)COMPLEX array, dimension (LDZ, max(1,M) )
* If INFO = 0, the first M columns of Z contain the
* orthonormal eigenvectors of the matrix T
* corresponding to the input eigenvalues, with the i-th
@@ -133,7 +136,7 @@
* is nonzero only in elements ISUPPZ( 2*I-1 ) through
* ISUPPZ( 2*I ).
*
-* WORK (workspace) REAL array, dimension (12*N)
+* WORK (workspace) REAL array, dimension (12*N)
*
* IWORK (workspace) INTEGER array, dimension (7*N)
*
diff --git a/SRC/clatbs.f b/SRC/clatbs.f
index 7af3c258..c03d002d 100644
--- a/SRC/clatbs.f
+++ b/SRC/clatbs.f
@@ -101,7 +101,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, CTBSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/clatps.f b/SRC/clatps.f
index 14c9fa8a..cf91950b 100644
--- a/SRC/clatps.f
+++ b/SRC/clatps.f
@@ -95,7 +95,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, CTPSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/clatrs.f b/SRC/clatrs.f
index b54f07c1..cc398ed8 100644
--- a/SRC/clatrs.f
+++ b/SRC/clatrs.f
@@ -100,7 +100,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, CTRSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/cporfsx.f b/SRC/cporfsx.f
index a39abc56..c2e4c606 100644
--- a/SRC/cporfsx.f
+++ b/SRC/cporfsx.f
@@ -27,7 +27,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CPORFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -290,7 +290,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/cposvxx.f b/SRC/cposvxx.f
index e259d55d..74881816 100644
--- a/SRC/cposvxx.f
+++ b/SRC/cposvxx.f
@@ -27,7 +27,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CPOSVXX uses the Cholesky factorization A = U**T*U or A = L*L**T
@@ -50,8 +50,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what CPOSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -90,8 +90,8 @@
* diag(S) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -384,7 +384,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/csyconv.f b/SRC/csyconv.f
index ce8cf4f5..a3900d2c 100644
--- a/SRC/csyconv.f
+++ b/SRC/csyconv.f
@@ -1,7 +1,6 @@
SUBROUTINE CSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
*
* -- LAPACK PROTOTYPE routine (version 3.2.2) --
-*
* -- Written by Julie Langou of the Univ. of TN --
* May 2010
*
@@ -32,7 +31,7 @@
* as an upper or lower triangular matrix.
* = 'U': Upper triangular, form is A = U*D*U**T;
* = 'L': Lower triangular, form is A = L*D*L**T.
-*
+*
* WAY (input) CHARACTER*1
* = 'C': Convert
* = 'R': Revert
diff --git a/SRC/csyrfsx.f b/SRC/csyrfsx.f
index 536a5da7..c5d67e22 100644
--- a/SRC/csyrfsx.f
+++ b/SRC/csyrfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CSYRFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -296,7 +296,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/csysvxx.f b/SRC/csysvxx.f
index 75a7c9e7..04a6bf81 100644
--- a/SRC/csysvxx.f
+++ b/SRC/csysvxx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* CSYSVXX uses the diagonal pivoting factorization to compute the
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what CSYSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -94,8 +94,8 @@
* diag(R) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -394,7 +394,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/ctgexc.f b/SRC/ctgexc.f
index 16178baf..1f35a26f 100644
--- a/SRC/ctgexc.f
+++ b/SRC/ctgexc.f
@@ -79,6 +79,7 @@
* If WANTZ = .TRUE., LDZ >= N.
*
* IFST (input) INTEGER
+*
* ILST (input/output) INTEGER
* Specify the reordering of the diagonal blocks of (A, B).
* The block with row index IFST is moved to row ILST, by a
diff --git a/SRC/dgbrfsx.f b/SRC/dgbrfsx.f
index fe452948..e87a835c 100644
--- a/SRC/dgbrfsx.f
+++ b/SRC/dgbrfsx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DGBRFSX improves the computed solution to a system of linear
@@ -44,8 +44,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -324,7 +324,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dgbsvxx.f b/SRC/dgbsvxx.f
index 635b256b..090975e4 100644
--- a/SRC/dgbsvxx.f
+++ b/SRC/dgbsvxx.f
@@ -29,8 +29,8 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* DGBSVXX uses the LU factorization to compute the solution to a
* double precision system of linear equations A * X = B, where A is an
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what DGBSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -435,7 +435,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dgebak.f b/SRC/dgebak.f
index ddc776db..1044bfbb 100644
--- a/SRC/dgebak.f
+++ b/SRC/dgebak.f
@@ -41,6 +41,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by DGEBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/dgebal.f b/SRC/dgebal.f
index e40c4453..0cbe0999 100644
--- a/SRC/dgebal.f
+++ b/SRC/dgebal.f
@@ -50,6 +50,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N.
diff --git a/SRC/dgees.f b/SRC/dgees.f
index e3939cab..7da117fa 100644
--- a/SRC/dgees.f
+++ b/SRC/dgees.f
@@ -86,6 +86,7 @@
* eigenvalue count as 2.)
*
* WR (output) DOUBLE PRECISION array, dimension (N)
+*
* WI (output) DOUBLE PRECISION array, dimension (N)
* WR and WI contain the real and imaginary parts,
* respectively, of the computed eigenvalues in the same order
diff --git a/SRC/dgeesx.f b/SRC/dgeesx.f
index cb1e1804..8852f1b8 100644
--- a/SRC/dgeesx.f
+++ b/SRC/dgeesx.f
@@ -103,6 +103,7 @@
* eigenvalue count as 2.)
*
* WR (output) DOUBLE PRECISION array, dimension (N)
+*
* WI (output) DOUBLE PRECISION array, dimension (N)
* WR and WI contain the real and imaginary parts, respectively,
* of the computed eigenvalues, in the same order that they
diff --git a/SRC/dgeev.f b/SRC/dgeev.f
index 76c84512..e2129fe4 100644
--- a/SRC/dgeev.f
+++ b/SRC/dgeev.f
@@ -53,6 +53,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* WR (output) DOUBLE PRECISION array, dimension (N)
+*
* WI (output) DOUBLE PRECISION array, dimension (N)
* WR and WI contain the real and imaginary parts,
* respectively, of the computed eigenvalues. Complex
diff --git a/SRC/dgeevx.f b/SRC/dgeevx.f
index 484f5fbc..483c5a14 100644
--- a/SRC/dgeevx.f
+++ b/SRC/dgeevx.f
@@ -105,6 +105,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* WR (output) DOUBLE PRECISION array, dimension (N)
+*
* WI (output) DOUBLE PRECISION array, dimension (N)
* WR and WI contain the real and imaginary parts,
* respectively, of the computed eigenvalues. Complex
@@ -143,6 +144,7 @@
* JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values determined when A was
* balanced. The balanced A(i,j) = 0 if I > J and
diff --git a/SRC/dgegv.f b/SRC/dgegv.f
index 9abb961f..8c766a4e 100644
--- a/SRC/dgegv.f
+++ b/SRC/dgegv.f
@@ -48,8 +48,7 @@
*
* are left eigenvectors of (A,B).
*
-* Note: this routine performs "full balancing" on A and B -- see
-* "Further Details", below.
+* Note: this routine performs "full balancing" on A and B
*
* Arguments
* =========
diff --git a/SRC/dgeqp3.f b/SRC/dgeqp3.f
index e3abab5d..15a9c526 100644
--- a/SRC/dgeqp3.f
+++ b/SRC/dgeqp3.f
@@ -110,7 +110,7 @@
* .. Executable Statements ..
*
* Test input arguments
-* ====================
+* ====================
*
INFO = 0
LQUERY = ( LWORK.EQ.-1 )
@@ -172,7 +172,7 @@
NFXD = NFXD - 1
*
* Factorize fixed columns
-* =======================
+* =======================
*
* Compute the QR factorization of fixed columns and update
* remaining columns.
@@ -192,7 +192,7 @@
END IF
*
* Factorize free columns
-* ======================
+* ======================
*
IF( NFXD.LT.MINMN ) THEN
*
diff --git a/SRC/dgeqrt.f b/SRC/dgeqrt.f
index 47816bd3..097b5f80 100755
--- a/SRC/dgeqrt.f
+++ b/SRC/dgeqrt.f
@@ -36,7 +36,7 @@
* On exit, the elements on and above the diagonal of the array
* contain the min(M,N)-by-N upper trapezoidal matrix R (R is
* upper triangular if M >= N); the elements below the diagonal
-* are the columns of V. See below for further details.
+* are the columns of V.
*
* LDA (input) INTEGER
* The leading dimension of the array A. LDA >= max(1,M).
@@ -45,7 +45,7 @@
* The upper triangular block reflectors stored in compact form
* as a sequence of upper triangular blocks. See below
* for further details.
-*
+*
* LDT (input) INTEGER
* The leading dimension of the array T. LDT >= NB.
*
diff --git a/SRC/dgerfsx.f b/SRC/dgerfsx.f
index bb03479a..a33c5bfa 100644
--- a/SRC/dgerfsx.f
+++ b/SRC/dgerfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DGERFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -305,7 +305,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dgesvj.f b/SRC/dgesvj.f
index 5b40d0f2..03ac060e 100644
--- a/SRC/dgesvj.f
+++ b/SRC/dgesvj.f
@@ -39,57 +39,6 @@
* of SIGMA are the singular values of A. The columns of U and V are the
* left and the right singular vectors of A, respectively.
*
-* Further Details
-* ~~~~~~~~~~~~~~~
-* The orthogonal N-by-N matrix V is obtained as a product of Jacobi plane
-* rotations. The rotations are implemented as fast scaled rotations of
-* Anda and Park [1]. In the case of underflow of the Jacobi angle, a
-* modified Jacobi transformation of Drmac [4] is used. Pivot strategy uses
-* column interchanges of de Rijk [2]. The relative accuracy of the computed
-* singular values and the accuracy of the computed singular vectors (in
-* angle metric) is as guaranteed by the theory of Demmel and Veselic [3].
-* The condition number that determines the accuracy in the full rank case
-* is essentially min_{D=diag} kappa(A*D), where kappa(.) is the
-* spectral condition number. The best performance of this Jacobi SVD
-* procedure is achieved if used in an accelerated version of Drmac and
-* Veselic [5,6], and it is the kernel routine in the SIGMA library [7].
-* Some tunning parameters (marked with [TP]) are available for the
-* implementer.
-* The computational range for the nonzero singular values is the machine
-* number interval ( UNDERFLOW , OVERFLOW ). In extreme cases, even
-* denormalized singular values can be computed with the corresponding
-* gradual loss of accurate digits.
-*
-* Contributors
-* ~~~~~~~~~~~~
-* Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
-*
-* References
-* ~~~~~~~~~~
-* [1] A. A. Anda and H. Park: Fast plane rotations with dynamic scaling.
-* SIAM J. matrix Anal. Appl., Vol. 15 (1994), pp. 162-174.
-* [2] P. P. M. De Rijk: A one-sided Jacobi algorithm for computing the
-* singular value decomposition on a vector computer.
-* SIAM J. Sci. Stat. Comp., Vol. 10 (1998), pp. 359-371.
-* [3] J. Demmel and K. Veselic: Jacobi method is more accurate than QR.
-* [4] Z. Drmac: Implementation of Jacobi rotations for accurate singular
-* value computation in floating point arithmetic.
-* SIAM J. Sci. Comp., Vol. 18 (1997), pp. 1200-1222.
-* [5] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm I.
-* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1322-1342.
-* LAPACK Working note 169.
-* [6] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm II.
-* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1343-1362.
-* LAPACK Working note 170.
-* [7] Z. Drmac: SIGMA - mathematical software library for accurate SVD, PSV,
-* QSVD, (H,K)-SVD computations.
-* Department of Mathematics, University of Zagreb, 2008.
-*
-* Bugs, Examples and Comments
-* ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* Please report all bugs and send interesting test examples and comments to
-* drmac@math.hr. Thank you.
-*
* Arguments
* =========
*
@@ -251,6 +200,60 @@
* of sweeps. The output may still be useful. See the
* description of WORK.
*
+* Further Details
+* ===============
+*
+* The orthogonal N-by-N matrix V is obtained as a product of Jacobi plane
+* rotations. The rotations are implemented as fast scaled rotations of
+* Anda and Park [1]. In the case of underflow of the Jacobi angle, a
+* modified Jacobi transformation of Drmac [4] is used. Pivot strategy uses
+* column interchanges of de Rijk [2]. The relative accuracy of the computed
+* singular values and the accuracy of the computed singular vectors (in
+* angle metric) is as guaranteed by the theory of Demmel and Veselic [3].
+* The condition number that determines the accuracy in the full rank case
+* is essentially min_{D=diag} kappa(A*D), where kappa(.) is the
+* spectral condition number. The best performance of this Jacobi SVD
+* procedure is achieved if used in an accelerated version of Drmac and
+* Veselic [5,6], and it is the kernel routine in the SIGMA library [7].
+* Some tunning parameters (marked with [TP]) are available for the
+* implementer.
+* The computational range for the nonzero singular values is the machine
+* number interval ( UNDERFLOW , OVERFLOW ). In extreme cases, even
+* denormalized singular values can be computed with the corresponding
+* gradual loss of accurate digits.
+*
+* Contributors
+* ============
+*
+* Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
+*
+* References
+* ==========
+*
+* [1] A. A. Anda and H. Park: Fast plane rotations with dynamic scaling.
+* SIAM J. matrix Anal. Appl., Vol. 15 (1994), pp. 162-174.
+* [2] P. P. M. De Rijk: A one-sided Jacobi algorithm for computing the
+* singular value decomposition on a vector computer.
+* SIAM J. Sci. Stat. Comp., Vol. 10 (1998), pp. 359-371.
+* [3] J. Demmel and K. Veselic: Jacobi method is more accurate than QR.
+* [4] Z. Drmac: Implementation of Jacobi rotations for accurate singular
+* value computation in floating point arithmetic.
+* SIAM J. Sci. Comp., Vol. 18 (1997), pp. 1200-1222.
+* [5] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm I.
+* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1322-1342.
+* LAPACK Working note 169.
+* [6] Z. Drmac and K. Veselic: New fast and accurate Jacobi SVD algorithm II.
+* SIAM J. Matrix Anal. Appl. Vol. 35, No. 2 (2008), pp. 1343-1362.
+* LAPACK Working note 170.
+* [7] Z. Drmac: SIGMA - mathematical software library for accurate SVD, PSV,
+* QSVD, (H,K)-SVD computations.
+* Department of Mathematics, University of Zagreb, 2008.
+*
+* Bugs, Examples and Comments
+* ===========================
+* Please report all bugs and send interesting test examples and comments to
+* drmac@math.hr. Thank you.
+*
* =====================================================================
*
* .. Local Parameters ..
diff --git a/SRC/dgesvxx.f b/SRC/dgesvxx.f
index 0c6e3990..bf582158 100644
--- a/SRC/dgesvxx.f
+++ b/SRC/dgesvxx.f
@@ -4,7 +4,7 @@
$ ERR_BNDS_COMP, NPARAMS, PARAMS, WORK, IWORK,
$ INFO )
*
-* -- LAPACK driver routine (version 3.2.2) --
+* -- LAPACK driver routine (version 3.2.2) --
* -- Contributed by James Demmel, Deaglan Halligan, Yozo Hida and --
* -- Jason Riedy of Univ. of California Berkeley. --
* -- June 2010 --
@@ -29,8 +29,8 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* DGESVXX uses the LU factorization to compute the solution to a
* double precision system of linear equations A * X = B, where A is an
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what DGESVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -421,7 +421,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* =====================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dggbak.f b/SRC/dggbak.f
index 5718d5bb..6523d79d 100644
--- a/SRC/dggbak.f
+++ b/SRC/dggbak.f
@@ -42,6 +42,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by DGGBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/dggbal.f b/SRC/dggbal.f
index 3a2bf2b6..caf85277 100644
--- a/SRC/dggbal.f
+++ b/SRC/dggbal.f
@@ -60,6 +60,7 @@
* The leading dimension of the array B. LDB >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
diff --git a/SRC/dgges.f b/SRC/dgges.f
index b888177a..60007d28 100644
--- a/SRC/dgges.f
+++ b/SRC/dgges.f
@@ -117,7 +117,9 @@
* SELCTG is true for either eigenvalue count as 2.)
*
* ALPHAR (output) DOUBLE PRECISION array, dimension (N)
+*
* ALPHAI (output) DOUBLE PRECISION array, dimension (N)
+*
* BETA (output) DOUBLE PRECISION array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. ALPHAR(j) + ALPHAI(j)*i,
diff --git a/SRC/dggesx.f b/SRC/dggesx.f
index 7b334345..328013fd 100644
--- a/SRC/dggesx.f
+++ b/SRC/dggesx.f
@@ -130,7 +130,9 @@
* SELCTG is true for either eigenvalue count as 2.)
*
* ALPHAR (output) DOUBLE PRECISION array, dimension (N)
+*
* ALPHAI (output) DOUBLE PRECISION array, dimension (N)
+*
* BETA (output) DOUBLE PRECISION array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. ALPHAR(j) + ALPHAI(j)*i
diff --git a/SRC/dggev.f b/SRC/dggev.f
index 6e5451f1..607cfa84 100644
--- a/SRC/dggev.f
+++ b/SRC/dggev.f
@@ -71,7 +71,9 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHAR (output) DOUBLE PRECISION array, dimension (N)
+*
* ALPHAI (output) DOUBLE PRECISION array, dimension (N)
+*
* BETA (output) DOUBLE PRECISION array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. If ALPHAI(j) is zero, then
diff --git a/SRC/dggevx.f b/SRC/dggevx.f
index 88c60f96..9a501a33 100644
--- a/SRC/dggevx.f
+++ b/SRC/dggevx.f
@@ -105,7 +105,9 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHAR (output) DOUBLE PRECISION array, dimension (N)
+*
* ALPHAI (output) DOUBLE PRECISION array, dimension (N)
+*
* BETA (output) DOUBLE PRECISION array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. If ALPHAI(j) is zero, then
@@ -151,6 +153,7 @@
* if JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
diff --git a/SRC/dhgeqz.f b/SRC/dhgeqz.f
index a67bfbb0..be409c56 100644
--- a/SRC/dhgeqz.f
+++ b/SRC/dhgeqz.f
@@ -100,6 +100,7 @@
* The order of the matrices H, T, Q, and Z. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* ILO and IHI mark the rows and columns of H which are in
* Hessenberg form. It is assumed that A is already upper
diff --git a/SRC/dhseqr.f b/SRC/dhseqr.f
index d50dfe73..08447dc1 100644
--- a/SRC/dhseqr.f
+++ b/SRC/dhseqr.f
@@ -13,7 +13,7 @@
DOUBLE PRECISION H( LDH, * ), WI( * ), WORK( * ), WR( * ),
$ Z( LDZ, * )
* ..
-* Purpose
+* Purpose
* =======
*
* DHSEQR computes the eigenvalues of a Hessenberg matrix H
@@ -26,8 +26,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* JOB (input) CHARACTER*1
* = 'E': compute eigenvalues only;
@@ -159,7 +159,7 @@
* If INFO .GT. 0 and COMPZ = 'N', then Z is not
* accessed.
*
-* ================================================================
+* ================================================================
* Default values supplied by
* ILAENV(ISPEC,'DHSEQR',JOB(:1)//COMPZ(:1),N,ILO,IHI,LWORK).
* It is suggested that these defaults be adjusted in order
@@ -211,12 +211,12 @@
* for ISPEC=16 is 0. Otherwise the default for
* ISPEC=16 is 2.
*
-* ================================================================
+* ================================================================
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -227,7 +227,7 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/dla_lin_berr.f b/SRC/dla_lin_berr.f
index 3819865f..b0893524 100644
--- a/SRC/dla_lin_berr.f
+++ b/SRC/dla_lin_berr.f
@@ -28,7 +28,7 @@
* or vector Z.
*
* Arguments
-* ==========
+* =========
*
* N (input) INTEGER
* The number of linear equations, i.e., the order of the
diff --git a/SRC/dla_syamv.f b/SRC/dla_syamv.f
index 1dbb27ff..8c48a252 100644
--- a/SRC/dla_syamv.f
+++ b/SRC/dla_syamv.f
@@ -59,11 +59,11 @@
* N must be at least zero.
* Unchanged on exit.
*
-* ALPHA - DOUBLE PRECISION .
+* ALPHA (input) DOUBLE PRECISION .
* On entry, ALPHA specifies the scalar alpha.
* Unchanged on exit.
*
-* A - DOUBLE PRECISION array of DIMENSION ( LDA, n ).
+* A (input) DOUBLE PRECISION array of DIMENSION ( LDA, n ).
* Before entry, the leading m by n part of the array A must
* contain the matrix of coefficients.
* Unchanged on exit.
@@ -85,7 +85,7 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
-* BETA - DOUBLE PRECISION .
+* BETA (input) DOUBLE PRECISION .
* On entry, BETA specifies the scalar beta. When BETA is
* supplied as zero then Y need not be set on input.
* Unchanged on exit.
diff --git a/SRC/dla_wwaddw.f b/SRC/dla_wwaddw.f
index 6b05bfe7..0eb61da9 100644
--- a/SRC/dla_wwaddw.f
+++ b/SRC/dla_wwaddw.f
@@ -17,7 +17,7 @@
DOUBLE PRECISION X( * ), Y( * ), W( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DLA_WWADDW adds a vector W into a doubled-single vector (X, Y).
@@ -25,8 +25,8 @@
* This works for all extant IBM's hex and binary floating point
* arithmetics, but not for decimal.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* N (input) INTEGER
* The length of vectors X, Y, and W.
diff --git a/SRC/dlacn2.f b/SRC/dlacn2.f
index f3e09d3d..7550f1dc 100644
--- a/SRC/dlacn2.f
+++ b/SRC/dlacn2.f
@@ -54,7 +54,7 @@
* ISAVE is used to save variables between calls to DLACN2
*
* Further Details
-* ======= =======
+* ===============
*
* Contributed by Nick Higham, University of Manchester.
* Originally named SONEST, dated March 16, 1988.
diff --git a/SRC/dladiv.f b/SRC/dladiv.f
index 7a96bfc3..3ff46eba 100644
--- a/SRC/dladiv.f
+++ b/SRC/dladiv.f
@@ -25,12 +25,16 @@
* =========
*
* A (input) DOUBLE PRECISION
+*
* B (input) DOUBLE PRECISION
+*
* C (input) DOUBLE PRECISION
+*
* D (input) DOUBLE PRECISION
* The scalars a, b, c, and d in the above expression.
*
* P (output) DOUBLE PRECISION
+*
* Q (output) DOUBLE PRECISION
* The scalars p and q in the above expression.
*
diff --git a/SRC/dlaebz.f b/SRC/dlaebz.f
index 13c458ab..4226ae06 100644
--- a/SRC/dlaebz.f
+++ b/SRC/dlaebz.f
@@ -110,8 +110,9 @@
*
* PIVMIN (input) DOUBLE PRECISION
* The minimum absolute value of a "pivot" in the Sturm
-* sequence loop. This *must* be at least max |e(j)**2| *
-* safe_min and at least safe_min, where safe_min is at least
+* sequence loop.
+* This must be at least max |e(j)**2|*safe_min and at
+* least safe_min, where safe_min is at least
* the smallest number that can divide one without overflow.
*
* D (input) DOUBLE PRECISION array, dimension (N)
diff --git a/SRC/dlaed9.f b/SRC/dlaed9.f
index e9eb7baf..cdf22900 100644
--- a/SRC/dlaed9.f
+++ b/SRC/dlaed9.f
@@ -31,6 +31,7 @@
* DLAED4. K >= 0.
*
* KSTART (input) INTEGER
+*
* KSTOP (input) INTEGER
* The updated eigenvalues Lambda(I), KSTART <= I <= KSTOP
* are to be computed. 1 <= KSTART <= KSTOP <= K.
diff --git a/SRC/dlaein.f b/SRC/dlaein.f
index f4c34eab..f99daac9 100644
--- a/SRC/dlaein.f
+++ b/SRC/dlaein.f
@@ -44,11 +44,13 @@
* The leading dimension of the array H. LDH >= max(1,N).
*
* WR (input) DOUBLE PRECISION
+*
* WI (input) DOUBLE PRECISION
* The real and imaginary parts of the eigenvalue of H whose
* corresponding right or left eigenvector is to be computed.
*
* VR (input/output) DOUBLE PRECISION array, dimension (N)
+*
* VI (input/output) DOUBLE PRECISION array, dimension (N)
* On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain
* a real starting vector for inverse iteration using the real
diff --git a/SRC/dlaev2.f b/SRC/dlaev2.f
index 23f85b30..c84b09c8 100644
--- a/SRC/dlaev2.f
+++ b/SRC/dlaev2.f
@@ -42,6 +42,7 @@
* The eigenvalue of smaller absolute value.
*
* CS1 (output) DOUBLE PRECISION
+*
* SN1 (output) DOUBLE PRECISION
* The vector (CS1, SN1) is a unit right eigenvector for RT1.
*
diff --git a/SRC/dlags2.f b/SRC/dlags2.f
index 732df8e4..1116e551 100644
--- a/SRC/dlags2.f
+++ b/SRC/dlags2.f
@@ -48,26 +48,33 @@
* = .FALSE.: the input matrices A and B are lower triangular.
*
* A1 (input) DOUBLE PRECISION
+*
* A2 (input) DOUBLE PRECISION
+*
* A3 (input) DOUBLE PRECISION
* On entry, A1, A2 and A3 are elements of the input 2-by-2
* upper (lower) triangular matrix A.
*
* B1 (input) DOUBLE PRECISION
+*
* B2 (input) DOUBLE PRECISION
+*
* B3 (input) DOUBLE PRECISION
* On entry, B1, B2 and B3 are elements of the input 2-by-2
* upper (lower) triangular matrix B.
*
* CSU (output) DOUBLE PRECISION
+*
* SNU (output) DOUBLE PRECISION
* The desired orthogonal matrix U.
*
* CSV (output) DOUBLE PRECISION
+*
* SNV (output) DOUBLE PRECISION
* The desired orthogonal matrix V.
*
* CSQ (output) DOUBLE PRECISION
+*
* SNQ (output) DOUBLE PRECISION
* The desired orthogonal matrix Q.
*
diff --git a/SRC/dlagv2.f b/SRC/dlagv2.f
index 1e00144a..2952e71c 100644
--- a/SRC/dlagv2.f
+++ b/SRC/dlagv2.f
@@ -64,7 +64,9 @@
* THe leading dimension of the array B. LDB >= 2.
*
* ALPHAR (output) DOUBLE PRECISION array, dimension (2)
+*
* ALPHAI (output) DOUBLE PRECISION array, dimension (2)
+*
* BETA (output) DOUBLE PRECISION array, dimension (2)
* (ALPHAR(k)+i*ALPHAI(k))/BETA(k) are the eigenvalues of the
* pencil (A,B), k=1,2, i = sqrt(-1). Note that BETA(k) may
diff --git a/SRC/dlahqr.f b/SRC/dlahqr.f
index 469133e3..e782ece8 100644
--- a/SRC/dlahqr.f
+++ b/SRC/dlahqr.f
@@ -13,7 +13,7 @@
DOUBLE PRECISION H( LDH, * ), WI( * ), WR( * ), Z( LDZ, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DLAHQR is an auxiliary routine called by DHSEQR to update the
@@ -21,8 +21,8 @@
* dealing with the Hessenberg submatrix in rows and columns ILO to
* IHI.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -36,6 +36,7 @@
* The order of the matrix H. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper quasi-triangular in
* rows and columns IHI+1:N, and that H(ILO,ILO-1) = 0 (unless
@@ -57,6 +58,7 @@
* The leading dimension of the array H. LDH >= max(1,N).
*
* WR (output) DOUBLE PRECISION array, dimension (N)
+*
* WI (output) DOUBLE PRECISION array, dimension (N)
* The real and imaginary parts, respectively, of the computed
* eigenvalues ILO to IHI are stored in the corresponding
@@ -70,6 +72,7 @@
* WI(i) = sqrt(H(i+1,i)*H(i,i+1)) and WI(i+1) = -WI(i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -110,8 +113,8 @@
* where U is the orthogonal matrix in (*)
* (regardless of the value of WANTT.)
*
-* Further Details
-* ===============
+* Further Details
+* ===============
*
* 02-96 Based on modifications by
* David Day, Sandia National Laboratory, USA
@@ -123,7 +126,7 @@
* (2) adopts the more conservative Ahues & Tisseur stopping
* criterion (LAWN 122, 1997).
*
-* =========================================================
+* =========================================================
*
* .. Parameters ..
INTEGER ITMAX
diff --git a/SRC/dlamrg.f b/SRC/dlamrg.f
index e634821f..35fa9f93 100644
--- a/SRC/dlamrg.f
+++ b/SRC/dlamrg.f
@@ -24,6 +24,7 @@
* =========
*
* N1 (input) INTEGER
+*
* N2 (input) INTEGER
* These arguements contain the respective lengths of the two
* sorted lists to be merged.
@@ -34,6 +35,7 @@
* for the final N2 elements.
*
* DTRD1 (input) INTEGER
+*
* DTRD2 (input) INTEGER
* These are the strides to be taken through the array A.
* Allowable strides are 1 and -1. They indicate whether a
diff --git a/SRC/dlanv2.f b/SRC/dlanv2.f
index 0637e222..e94d6cde 100644
--- a/SRC/dlanv2.f
+++ b/SRC/dlanv2.f
@@ -27,21 +27,28 @@
* =========
*
* A (input/output) DOUBLE PRECISION
+*
* B (input/output) DOUBLE PRECISION
+*
* C (input/output) DOUBLE PRECISION
+*
* D (input/output) DOUBLE PRECISION
* On entry, the elements of the input matrix.
* On exit, they are overwritten by the elements of the
* standardised Schur form.
*
* RT1R (output) DOUBLE PRECISION
+*
* RT1I (output) DOUBLE PRECISION
+*
* RT2R (output) DOUBLE PRECISION
+*
* RT2I (output) DOUBLE PRECISION
* The real and imaginary parts of the eigenvalues. If the
* eigenvalues are a complex conjugate pair, RT1I > 0.
*
* CS (output) DOUBLE PRECISION
+*
* SN (output) DOUBLE PRECISION
* Parameters of the rotation matrix.
*
diff --git a/SRC/dlapy2.f b/SRC/dlapy2.f
index c44b267a..c28bf171 100644
--- a/SRC/dlapy2.f
+++ b/SRC/dlapy2.f
@@ -19,6 +19,7 @@
* =========
*
* X (input) DOUBLE PRECISION
+*
* Y (input) DOUBLE PRECISION
* X and Y specify the values x and y.
*
diff --git a/SRC/dlapy3.f b/SRC/dlapy3.f
index 696bffdd..f4f9fb16 100644
--- a/SRC/dlapy3.f
+++ b/SRC/dlapy3.f
@@ -19,7 +19,9 @@
* =========
*
* X (input) DOUBLE PRECISION
+*
* Y (input) DOUBLE PRECISION
+*
* Z (input) DOUBLE PRECISION
* X, Y and Z specify the values x, y and z.
*
diff --git a/SRC/dlaqr0.f b/SRC/dlaqr0.f
index 166a5fbb..1fb9b4fc 100644
--- a/SRC/dlaqr0.f
+++ b/SRC/dlaqr0.f
@@ -14,8 +14,8 @@
$ Z( LDZ, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* DLAQR0 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
@@ -27,8 +27,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -42,6 +42,7 @@
* The order of the matrix H. N .GE. 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows
* and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
@@ -71,6 +72,7 @@
* The leading dimension of the array H. LDH .GE. max(1,N).
*
* WR (output) DOUBLE PRECISION array, dimension (IHI)
+*
* WI (output) DOUBLE PRECISION array, dimension (IHI)
* The real and imaginary parts, respectively, of the computed
* eigenvalues of H(ILO:IHI,ILO:IHI) are stored in WR(ILO:IHI)
@@ -85,6 +87,7 @@
* WI(i+1) = -WI(i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -152,12 +155,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Arguments
+* =========
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -168,7 +172,8 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/dlaqr1.f b/SRC/dlaqr1.f
index ae23573c..b3395df3 100644
--- a/SRC/dlaqr1.f
+++ b/SRC/dlaqr1.f
@@ -12,6 +12,9 @@
DOUBLE PRECISION H( LDH, * ), V( * )
* ..
*
+* Purpose
+* =======
+*
* Given a 2-by-2 or 3-by-3 matrix H, DLAQR1 sets v to a
* scalar multiple of the first column of the product
*
@@ -27,6 +30,8 @@
* This is useful for starting double implicit shift bulges
* in the QR algorithm.
*
+* Arguments
+* =========
*
* N (input) integer
* Order of the matrix H. N must be either 2 or 3.
@@ -39,20 +44,26 @@
* the calling procedure. LDH.GE.N
*
* SR1 (input) DOUBLE PRECISION
-* SI1 The shifts in (*).
-* SR2
-* SI2
+*
+* SI1 (input) DOUBLE PRECISION
+*
+* SR2 (input) DOUBLE PRECISION
+*
+* SI2 (input) DOUBLE PRECISION
+* The shifts in (*).
*
* V (output) DOUBLE PRECISION array of dimension N
* A scalar multiple of the first column of the
* matrix K in (*).
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO
diff --git a/SRC/dlaqr2.f b/SRC/dlaqr2.f
index b5bf0010..115f5379 100644
--- a/SRC/dlaqr2.f
+++ b/SRC/dlaqr2.f
@@ -17,11 +17,12 @@
$ Z( LDZ, * )
* ..
*
-* This subroutine is identical to DLAQR3 except that it avoids
-* recursion by calling DLAHQR instead of DLAQR4.
+* Purpose
+* =======
*
+* DLAQR2 is identical to DLAQR3 except that it avoids
+* recursion by calling DLAHQR instead of DLAQR4.
*
-* ******************************************************************
* Aggressive early deflation:
*
* This subroutine accepts as input an upper Hessenberg matrix
@@ -33,7 +34,9 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the quasi-triangular Schur factor may be
@@ -78,6 +81,7 @@
* subroutine. N .LE. LDH
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
@@ -102,6 +106,7 @@
* subroutine.
*
* SR (output) DOUBLE PRECISION array, dimension (KBOT)
+*
* SI (output) DOUBLE PRECISION array, dimension (KBOT)
* On output, the real and imaginary parts of approximate
* eigenvalues that may be used for shifts are stored in
@@ -152,12 +157,14 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
PARAMETER ( ZERO = 0.0d0, ONE = 1.0d0 )
diff --git a/SRC/dlaqr3.f b/SRC/dlaqr3.f
index d952eea8..a0a0c475 100644
--- a/SRC/dlaqr3.f
+++ b/SRC/dlaqr3.f
@@ -17,10 +17,12 @@
$ Z( LDZ, * )
* ..
*
-* ******************************************************************
+* Purpose
+* =======
+*
* Aggressive early deflation:
*
-* This subroutine accepts as input an upper Hessenberg matrix
+* DLAQR3 accepts as input an upper Hessenberg matrix
* H and performs an orthogonal similarity transformation
* designed to detect and deflate fully converged eigenvalues from
* a trailing principal submatrix. On output H has been over-
@@ -29,7 +31,9 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the quasi-triangular Schur factor may be
@@ -74,6 +78,7 @@
* subroutine. N .LE. LDH
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
@@ -98,6 +103,7 @@
* subroutine.
*
* SR (output) DOUBLE PRECISION array, dimension (KBOT)
+*
* SI (output) DOUBLE PRECISION array, dimension (KBOT)
* On output, the real and imaginary parts of approximate
* eigenvalues that may be used for shifts are stored in
@@ -148,12 +154,14 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
PARAMETER ( ZERO = 0.0d0, ONE = 1.0d0 )
diff --git a/SRC/dlaqr4.f b/SRC/dlaqr4.f
index 31b77d1f..8a42623e 100644
--- a/SRC/dlaqr4.f
+++ b/SRC/dlaqr4.f
@@ -14,16 +14,16 @@
$ Z( LDZ, * )
* ..
*
-* This subroutine implements one level of recursion for DLAQR0.
+* Purpose
+* =======
+*
+* DLAQR4 implements one level of recursion for DLAQR0.
* It is a complete implementation of the small bulge multi-shift
* QR algorithm. It may be called by DLAQR0 and, for large enough
* deflation window size, it may be called by DLAQR3. This
* subroutine is identical to DLAQR0 except that it calls DLAQR2
* instead of DLAQR3.
*
-* Purpose
-* =======
-*
* DLAQR4 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
* H = Z T Z**T, where T is an upper quasi-triangular matrix (the
@@ -34,8 +34,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -49,6 +49,7 @@
* The order of the matrix H. N .GE. 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows
* and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
@@ -78,6 +79,7 @@
* The leading dimension of the array H. LDH .GE. max(1,N).
*
* WR (output) DOUBLE PRECISION array, dimension (IHI)
+*
* WI (output) DOUBLE PRECISION array, dimension (IHI)
* The real and imaginary parts, respectively, of the computed
* eigenvalues of H(ILO:IHI,ILO:IHI) are stored in WR(ILO:IHI)
@@ -92,6 +94,7 @@
* WI(i+1) = -WI(i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -159,12 +162,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -175,7 +179,7 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/dlaqr5.f b/SRC/dlaqr5.f
index 0615eaf8..1560d8bf 100644
--- a/SRC/dlaqr5.f
+++ b/SRC/dlaqr5.f
@@ -18,9 +18,15 @@
$ Z( LDZ, * )
* ..
*
-* This auxiliary subroutine called by DLAQR0 performs a
+* Purpose
+* =======
+*
+* DLAQR5, called by DLAQR0, performs a
* single small-bulge multi-shift QR sweep.
*
+* Arguments
+* =========
+*
* WANTT (input) logical scalar
* WANTT = .true. if the quasi-triangular Schur factor
* is being computed. WANTT is set to .false. otherwise.
@@ -47,6 +53,7 @@
* subroutine operates.
*
* KTOP (input) integer scalar
+*
* KBOT (input) integer scalar
* These are the first and last rows and columns of an
* isolated diagonal block upon which the QR sweep is to be
@@ -60,6 +67,7 @@
* must be positive and even.
*
* SR (input/output) DOUBLE PRECISION array of size (NSHFTS)
+*
* SI (input/output) DOUBLE PRECISION array of size (NSHFTS)
* SR contains the real parts and SI contains the imaginary
* parts of the NSHFTS shifts of origin that define the
@@ -77,6 +85,7 @@
* calling procedure. LDH.GE.MAX(1,N).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N
@@ -125,12 +134,13 @@
* LDWV is the leading dimension of WV as declared in the
* in the calling subroutine. LDWV.GE.NV.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* Reference:
*
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
@@ -138,7 +148,7 @@
* Level 3 Performance, SIAM Journal of Matrix Analysis,
* volume 23, pages 929--947, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
PARAMETER ( ZERO = 0.0d0, ONE = 1.0d0 )
diff --git a/SRC/dlarra.f b/SRC/dlarra.f
index acebe3a5..3407d088 100644
--- a/SRC/dlarra.f
+++ b/SRC/dlarra.f
@@ -63,7 +63,6 @@
* etc., and the NSPLIT-th consists of rows/columns
* ISPLIT(NSPLIT-1)+1 through ISPLIT(NSPLIT)=N.
*
-*
* INFO (output) INTEGER
* = 0: successful exit
*
diff --git a/SRC/dlarrb.f b/SRC/dlarrb.f
index d879cae2..e4d00d90 100644
--- a/SRC/dlarrb.f
+++ b/SRC/dlarrb.f
@@ -48,6 +48,7 @@
* The index of the last eigenvalue to be computed.
*
* RTOL1 (input) DOUBLE PRECISION
+*
* RTOL2 (input) DOUBLE PRECISION
* Tolerance for the convergence of the bisection intervals.
* An interval [LEFT,RIGHT] has converged if
diff --git a/SRC/dlarrc.f b/SRC/dlarrc.f
index c67c6ed3..933fddc5 100644
--- a/SRC/dlarrc.f
+++ b/SRC/dlarrc.f
@@ -33,6 +33,7 @@
* The order of the matrix. N > 0.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* The lower and upper bounds for the eigenvalues.
*
@@ -52,6 +53,7 @@
* that are in the interval (VL,VU]
*
* LCNT (output) INTEGER
+*
* RCNT (output) INTEGER
* The left and right negcounts of the interval.
*
diff --git a/SRC/dlarrd.f b/SRC/dlarrd.f
index c32103ed..46e8fc48 100644
--- a/SRC/dlarrd.f
+++ b/SRC/dlarrd.f
@@ -63,6 +63,7 @@
* The order of the tridiagonal matrix T. N >= 0.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. Eigenvalues less than or equal
@@ -70,6 +71,7 @@
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
@@ -130,6 +132,7 @@
* in W.
*
* WL (output) DOUBLE PRECISION
+*
* WU (output) DOUBLE PRECISION
* The interval (WL, WU] contains all the wanted eigenvalues.
* If RANGE='V', then WL=VL and WU=VU.
diff --git a/SRC/dlarre.f b/SRC/dlarre.f
index 41cc69fb..699fde94 100644
--- a/SRC/dlarre.f
+++ b/SRC/dlarre.f
@@ -52,6 +52,7 @@
* The order of the matrix. N > 0.
*
* VL (input/output) DOUBLE PRECISION
+*
* VU (input/output) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds for the eigenvalues.
* Eigenvalues less than or equal to VL, or greater than VU,
@@ -60,6 +61,7 @@
* part of the spectrum.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
@@ -86,6 +88,7 @@
* 1 <= I <= NSPLIT, have been set to zero
*
* RTOL1 (input) DOUBLE PRECISION
+*
* RTOL2 (input) DOUBLE PRECISION
* Parameters for bisection.
* An interval [LEFT,RIGHT] has converged if
diff --git a/SRC/dlarrk.f b/SRC/dlarrk.f
index d0a2da59..72f276f5 100644
--- a/SRC/dlarrk.f
+++ b/SRC/dlarrk.f
@@ -41,6 +41,7 @@
* The index of the eigenvalues to be returned.
*
* GL (input) DOUBLE PRECISION
+*
* GU (input) DOUBLE PRECISION
* An upper and a lower bound on the eigenvalue.
*
diff --git a/SRC/dlarrv.f b/SRC/dlarrv.f
index 2d81d6a8..f7585f3c 100644
--- a/SRC/dlarrv.f
+++ b/SRC/dlarrv.f
@@ -35,6 +35,7 @@
* The order of the matrix. N >= 0.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* Lower and upper bounds of the interval that contains the desired
* eigenvalues. VL < VU. Needed to compute gaps on the left or right
@@ -64,6 +65,7 @@
* The total number of input eigenvalues. 0 <= M <= N.
*
* DOL (input) INTEGER
+*
* DOU (input) INTEGER
* If the user wants to compute only selected eigenvectors from all
* the eigenvalues supplied, he can specify an index range DOL:DOU.
@@ -77,6 +79,7 @@
* MINRGP (input) DOUBLE PRECISION
*
* RTOL1 (input) DOUBLE PRECISION
+*
* RTOL2 (input) DOUBLE PRECISION
* Parameters for bisection.
* An interval [LEFT,RIGHT] has converged if
diff --git a/SRC/dlascl.f b/SRC/dlascl.f
index ffbb5715..7cdb8940 100644
--- a/SRC/dlascl.f
+++ b/SRC/dlascl.f
@@ -50,6 +50,7 @@
* 'Q' or 'Z'.
*
* CFROM (input) DOUBLE PRECISION
+*
* CTO (input) DOUBLE PRECISION
* The matrix A is multiplied by CTO/CFROM. A(I,J) is computed
* without over/underflow if the final result CTO*A(I,J)/CFROM
diff --git a/SRC/dlasq2.f b/SRC/dlasq2.f
index 1fef65b1..00bd2b14 100644
--- a/SRC/dlasq2.f
+++ b/SRC/dlasq2.f
@@ -65,6 +65,7 @@
*
* Further Details
* ===============
+*
* Local Variables: I0:N0 defines a current unreduced segment of Z.
* The shifts are accumulated in SIGMA. Iteration count is in ITER.
* Ping-pong is controlled by PP (alternates between 0 and 1).
diff --git a/SRC/dlasq4.f b/SRC/dlasq4.f
index de4a1fe3..420320a8 100644
--- a/SRC/dlasq4.f
+++ b/SRC/dlasq4.f
@@ -73,6 +73,7 @@
*
* Further Details
* ===============
+*
* CNST1 = 9/16
*
* =====================================================================
diff --git a/SRC/dlasv2.f b/SRC/dlasv2.f
index ca725340..dd3b7e98 100644
--- a/SRC/dlasv2.f
+++ b/SRC/dlasv2.f
@@ -42,11 +42,13 @@
* abs(SSMAX) is the larger singular value.
*
* SNL (output) DOUBLE PRECISION
+*
* CSL (output) DOUBLE PRECISION
* The vector (CSL, SNL) is a unit left singular vector for the
* singular value abs(SSMAX).
*
* SNR (output) DOUBLE PRECISION
+*
* CSR (output) DOUBLE PRECISION
* The vector (CSR, SNR) is a unit right singular vector for the
* singular value abs(SSMAX).
diff --git a/SRC/dlatbs.f b/SRC/dlatbs.f
index 2c991d3d..6390adb4 100644
--- a/SRC/dlatbs.f
+++ b/SRC/dlatbs.f
@@ -100,7 +100,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, DTBSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/dlatps.f b/SRC/dlatps.f
index 667d517a..beed5198 100644
--- a/SRC/dlatps.f
+++ b/SRC/dlatps.f
@@ -93,7 +93,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, DTPSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/dlatrs.f b/SRC/dlatrs.f
index b8fd5c31..8409fce2 100644
--- a/SRC/dlatrs.f
+++ b/SRC/dlatrs.f
@@ -99,7 +99,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, DTRSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/dporfsx.f b/SRC/dporfsx.f
index 5a55e2a8..db55c18e 100644
--- a/SRC/dporfsx.f
+++ b/SRC/dporfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DPORFSX improves the computed solution to a system of linear
@@ -44,8 +44,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -291,7 +291,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dposvxx.f b/SRC/dposvxx.f
index 8f7c2335..6dbbabc5 100644
--- a/SRC/dposvxx.f
+++ b/SRC/dposvxx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DPOSVXX uses the Cholesky factorization A = U**T*U or A = L*L**T
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what DPOSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -91,8 +91,8 @@
* diag(S) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -382,7 +382,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dsbevx.f b/SRC/dsbevx.f
index baac8ab0..8aa1f1fb 100644
--- a/SRC/dsbevx.f
+++ b/SRC/dsbevx.f
@@ -78,12 +78,14 @@
* LDQ >= max(1,N).
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/dspevx.f b/SRC/dspevx.f
index fce77a02..ffe2d470 100644
--- a/SRC/dspevx.f
+++ b/SRC/dspevx.f
@@ -60,12 +60,14 @@
* corresponding elements of A.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/dstevr.f b/SRC/dstevr.f
index 5459bb4e..db1ac375 100644
--- a/SRC/dstevr.f
+++ b/SRC/dstevr.f
@@ -73,8 +73,8 @@
* = 'V': all eigenvalues in the half-open interval (VL,VU]
* will be found.
* = 'I': the IL-th through IU-th eigenvalues will be found.
-********** For RANGE = 'V' or 'I' and IU - IL < N - 1, DSTEBZ and
-********** DSTEIN are called
+* For RANGE = 'V' or 'I' and IU - IL < N - 1, DSTEBZ and
+* DSTEIN are called
*
* N (input) INTEGER
* The order of the matrix. N >= 0.
@@ -92,12 +92,14 @@
* to avoid over/underflow in computing the eigenvalues.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
@@ -158,7 +160,7 @@
* indicating the nonzero elements in Z. The i-th eigenvector
* is nonzero only in elements ISUPPZ( 2*i-1 ) through
* ISUPPZ( 2*i ).
-********** Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
+* Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
*
* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
* On exit, if INFO = 0, WORK(1) returns the optimal (and
diff --git a/SRC/dstevx.f b/SRC/dstevx.f
index a7e5a3dd..29cd7526 100644
--- a/SRC/dstevx.f
+++ b/SRC/dstevx.f
@@ -53,12 +53,14 @@
* to avoid over/underflow in computing the eigenvalues.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/dsyconv.f b/SRC/dsyconv.f
index 3c74183c..00622401 100644
--- a/SRC/dsyconv.f
+++ b/SRC/dsyconv.f
@@ -31,7 +31,7 @@
* as an upper or lower triangular matrix.
* = 'U': Upper triangular, form is A = U*D*U**T;
* = 'L': Lower triangular, form is A = L*D*L**T.
-*
+*
* WAY (input) CHARACTER*1
* = 'C': Convert
* = 'R': Revert
diff --git a/SRC/dsyevr.f b/SRC/dsyevr.f
index af752a11..b47caf13 100644
--- a/SRC/dsyevr.f
+++ b/SRC/dsyevr.f
@@ -90,8 +90,8 @@
* = 'V': all eigenvalues in the half-open interval (VL,VU]
* will be found.
* = 'I': the IL-th through IU-th eigenvalues will be found.
-********** For RANGE = 'V' or 'I' and IU - IL < N - 1, DSTEBZ and
-********** DSTEIN are called
+* For RANGE = 'V' or 'I' and IU - IL < N - 1, DSTEBZ and
+* DSTEIN are called
*
* UPLO (input) CHARACTER*1
* = 'U': Upper triangle of A is stored;
@@ -114,12 +114,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
@@ -182,7 +184,7 @@
* indicating the nonzero elements in Z. The i-th eigenvector
* is nonzero only in elements ISUPPZ( 2*i-1 ) through
* ISUPPZ( 2*i ).
-********** Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
+* Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
*
* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
diff --git a/SRC/dsyevx.f b/SRC/dsyevx.f
index b0ab461e..994a8ebc 100644
--- a/SRC/dsyevx.f
+++ b/SRC/dsyevx.f
@@ -59,12 +59,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/dsygvx.f b/SRC/dsygvx.f
index 74f80589..52688975 100644
--- a/SRC/dsygvx.f
+++ b/SRC/dsygvx.f
@@ -83,12 +83,14 @@
* The leading dimension of the array B. LDB >= max(1,N).
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/dsyrfsx.f b/SRC/dsyrfsx.f
index cdf6f302..2d6fc6fa 100644
--- a/SRC/dsyrfsx.f
+++ b/SRC/dsyrfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DSYRFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -296,7 +296,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dsysvxx.f b/SRC/dsysvxx.f
index 18fc105d..a41de434 100644
--- a/SRC/dsysvxx.f
+++ b/SRC/dsysvxx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* DSYSVXX uses the diagonal pivoting factorization to compute the
@@ -50,8 +50,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what DSYSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -93,8 +93,8 @@
* diag(R) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -390,7 +390,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/dtgexc.f b/SRC/dtgexc.f
index 44c38973..b9ed91e8 100644
--- a/SRC/dtgexc.f
+++ b/SRC/dtgexc.f
@@ -88,6 +88,7 @@
* If WANTZ = .TRUE., LDZ >= N.
*
* IFST (input/output) INTEGER
+*
* ILST (input/output) INTEGER
* Specify the reordering of the diagonal blocks of (A, B).
* The block with row index IFST is moved to row ILST, by a
diff --git a/SRC/dtrsyl.f b/SRC/dtrsyl.f
index d95e63e9..faffed15 100644
--- a/SRC/dtrsyl.f
+++ b/SRC/dtrsyl.f
@@ -363,7 +363,7 @@
* A(K,K)**T*X(K,L) + ISGN*X(K,L)*B(L,L) = C(K,L) - R(K,L)
*
* Where
-* K-1 L-1
+* K-1 T L-1
* R(K,L) = SUM [A(I,K)**T*X(I,L)] +ISGN*SUM [X(K,J)*B(J,L)]
* I=1 J=1
*
diff --git a/SRC/ilaclr.f b/SRC/ilaclr.f
index 9d8a8c72..836ee738 100644
--- a/SRC/ilaclr.f
+++ b/SRC/ilaclr.f
@@ -27,7 +27,7 @@
* N (input) INTEGER
* The number of columns of the matrix A.
*
-* A (input) COMPLEX array, dimension (LDA,N)
+* A (input)COMPLEX array, dimension (LDA,N)
* The m by n matrix A.
*
* LDA (input) INTEGER
diff --git a/SRC/iladiag.f b/SRC/iladiag.f
index 43c52807..dfa1f125 100644
--- a/SRC/iladiag.f
+++ b/SRC/iladiag.f
@@ -24,6 +24,7 @@
*
* Arguments
* =========
+*
* DIAG (input) CHARACTER*1
* = 'N': A is non-unit triangular;
* = 'U': A is unit triangular.
diff --git a/SRC/ilaenv.f b/SRC/ilaenv.f
index 8ed8aed6..e32fb209 100644
--- a/SRC/ilaenv.f
+++ b/SRC/ilaenv.f
@@ -77,8 +77,11 @@
* be specified as OPTS = 'UTN'.
*
* N1 (input) INTEGER
+*
* N2 (input) INTEGER
+*
* N3 (input) INTEGER
+*
* N4 (input) INTEGER
* Problem dimensions for the subroutine NAME; these may not all
* be required.
diff --git a/SRC/ilaprec.f b/SRC/ilaprec.f
index ad229e27..9dd943ca 100644
--- a/SRC/ilaprec.f
+++ b/SRC/ilaprec.f
@@ -24,6 +24,7 @@
*
* Arguments
* =========
+*
* PREC (input) CHARACTER
* Specifies the form of the system of equations:
* = 'S': Single
diff --git a/SRC/ilatrans.f b/SRC/ilatrans.f
index 625c08a9..60ee0dc7 100644
--- a/SRC/ilatrans.f
+++ b/SRC/ilatrans.f
@@ -24,6 +24,7 @@
*
* Arguments
* =========
+*
* TRANS (input) CHARACTER*1
* Specifies the form of the system of equations:
* = 'N': No transpose
diff --git a/SRC/ilauplo.f b/SRC/ilauplo.f
index c6eff92d..99f1352a 100644
--- a/SRC/ilauplo.f
+++ b/SRC/ilauplo.f
@@ -24,6 +24,7 @@
*
* Arguments
* =========
+*
* UPLO (input) CHARACTER
* = 'U': A is upper triangular;
* = 'L': A is lower triangular.
diff --git a/SRC/ilaver.f b/SRC/ilaver.f
index fddec72d..02361a86 100644
--- a/SRC/ilaver.f
+++ b/SRC/ilaver.f
@@ -15,12 +15,16 @@
*
* Arguments
* =========
+*
* VERS_MAJOR (output) INTEGER
* return the lapack major version
+*
* VERS_MINOR (output) INTEGER
* return the lapack minor version from the major version
+*
* VERS_PATCH (output) INTEGER
* return the lapack patch version from the minor version
+*
* =====================================================================
*
INTEGER VERS_MAJOR, VERS_MINOR, VERS_PATCH
diff --git a/SRC/iparmq.f b/SRC/iparmq.f
index 9a76099b..9ecca5d1 100644
--- a/SRC/iparmq.f
+++ b/SRC/iparmq.f
@@ -83,6 +83,7 @@
* N is the order of the Hessenberg matrix H.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular
* in rows and columns 1:ILO-1 and IHI+1:N.
@@ -155,7 +156,7 @@
* (See ISPEC=16 above for details.)
* Default: 3.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
INTEGER INMIN, INWIN, INIBL, ISHFTS, IACC22
PARAMETER ( INMIN = 12, INWIN = 13, INIBL = 14,
diff --git a/SRC/lsamen.f b/SRC/lsamen.f
index ab41c4d6..fb85a1da 100644
--- a/SRC/lsamen.f
+++ b/SRC/lsamen.f
@@ -26,6 +26,7 @@
* The number of characters in CA and CB to be compared.
*
* CA (input) CHARACTER*(*)
+*
* CB (input) CHARACTER*(*)
* CA and CB specify two character strings of length at least N.
* Only the first N characters of each string will be accessed.
diff --git a/SRC/sgbrfsx.f b/SRC/sgbrfsx.f
index 53f9d628..ce387ef5 100644
--- a/SRC/sgbrfsx.f
+++ b/SRC/sgbrfsx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SGBRFSX improves the computed solution to a system of linear
@@ -44,8 +44,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -324,7 +324,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/sgbsvxx.f b/SRC/sgbsvxx.f
index 57dc27c7..4d73239d 100644
--- a/SRC/sgbsvxx.f
+++ b/SRC/sgbsvxx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SGBSVXX uses the LU factorization to compute the solution to a
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what SGBSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -438,7 +438,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/sgebak.f b/SRC/sgebak.f
index 9c9592da..da006bb4 100644
--- a/SRC/sgebak.f
+++ b/SRC/sgebak.f
@@ -41,6 +41,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by SGEBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/sgebal.f b/SRC/sgebal.f
index 631dd0aa..7094c86d 100644
--- a/SRC/sgebal.f
+++ b/SRC/sgebal.f
@@ -50,6 +50,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N.
diff --git a/SRC/sgees.f b/SRC/sgees.f
index e65022a0..188e75d5 100644
--- a/SRC/sgees.f
+++ b/SRC/sgees.f
@@ -86,6 +86,7 @@
* eigenvalue count as 2.)
*
* WR (output) REAL array, dimension (N)
+*
* WI (output) REAL array, dimension (N)
* WR and WI contain the real and imaginary parts,
* respectively, of the computed eigenvalues in the same order
diff --git a/SRC/sgeesx.f b/SRC/sgeesx.f
index f145dc6c..0f173cb1 100644
--- a/SRC/sgeesx.f
+++ b/SRC/sgeesx.f
@@ -103,6 +103,7 @@
* eigenvalue count as 2.)
*
* WR (output) REAL array, dimension (N)
+*
* WI (output) REAL array, dimension (N)
* WR and WI contain the real and imaginary parts, respectively,
* of the computed eigenvalues, in the same order that they
diff --git a/SRC/sgeev.f b/SRC/sgeev.f
index 0267cd54..8c915a77 100644
--- a/SRC/sgeev.f
+++ b/SRC/sgeev.f
@@ -53,6 +53,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* WR (output) REAL array, dimension (N)
+*
* WI (output) REAL array, dimension (N)
* WR and WI contain the real and imaginary parts,
* respectively, of the computed eigenvalues. Complex
diff --git a/SRC/sgeevx.f b/SRC/sgeevx.f
index ca242063..53f642d2 100644
--- a/SRC/sgeevx.f
+++ b/SRC/sgeevx.f
@@ -105,6 +105,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* WR (output) REAL array, dimension (N)
+*
* WI (output) REAL array, dimension (N)
* WR and WI contain the real and imaginary parts,
* respectively, of the computed eigenvalues. Complex
@@ -143,6 +144,7 @@
* JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values determined when A was
* balanced. The balanced A(i,j) = 0 if I > J and
diff --git a/SRC/sgegv.f b/SRC/sgegv.f
index 479abc48..d1f9c10d 100644
--- a/SRC/sgegv.f
+++ b/SRC/sgegv.f
@@ -48,8 +48,7 @@
*
* are left eigenvectors of (A,B).
*
-* Note: this routine performs "full balancing" on A and B -- see
-* "Further Details", below.
+* Note: this routine performs "full balancing" on A and B
*
* Arguments
* =========
diff --git a/SRC/sgeqp3.f b/SRC/sgeqp3.f
index 9cb5eafd..c07a2c38 100644
--- a/SRC/sgeqp3.f
+++ b/SRC/sgeqp3.f
@@ -169,7 +169,7 @@
NFXD = NFXD - 1
*
* Factorize fixed columns
-* =======================
+* =======================
*
* Compute the QR factorization of fixed columns and update
* remaining columns.
@@ -189,7 +189,7 @@
END IF
*
* Factorize free columns
-* ======================
+* ======================
*
IF( NFXD.LT.MINMN ) THEN
*
diff --git a/SRC/sgeqrt.f b/SRC/sgeqrt.f
index f7cc033f..f03e0ec4 100644
--- a/SRC/sgeqrt.f
+++ b/SRC/sgeqrt.f
@@ -36,7 +36,7 @@
* On exit, the elements on and above the diagonal of the array
* contain the min(M,N)-by-N upper trapezoidal matrix R (R is
* upper triangular if M >= N); the elements below the diagonal
-* are the columns of V. See below for further details.
+* are the columns of V.
*
* LDA (input) INTEGER
* The leading dimension of the array A. LDA >= max(1,M).
@@ -45,7 +45,7 @@
* The upper triangular block reflectors stored in compact form
* as a sequence of upper triangular blocks. See below
* for further details.
-*
+*
* LDT (input) INTEGER
* The leading dimension of the array T. LDT >= NB.
*
diff --git a/SRC/sgerfsx.f b/SRC/sgerfsx.f
index 6b029aa0..e1312dec 100644
--- a/SRC/sgerfsx.f
+++ b/SRC/sgerfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SGERFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -305,7 +305,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/sgesvxx.f b/SRC/sgesvxx.f
index 7bd0e626..5bb9bc51 100644
--- a/SRC/sgesvxx.f
+++ b/SRC/sgesvxx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SGESVXX uses the LU factorization to compute the solution to a
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what SGESVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -424,7 +424,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/sggbak.f b/SRC/sggbak.f
index b7064211..509a1cae 100644
--- a/SRC/sggbak.f
+++ b/SRC/sggbak.f
@@ -42,6 +42,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by SGGBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/sggbal.f b/SRC/sggbal.f
index fd0feeb7..a66548bc 100644
--- a/SRC/sggbal.f
+++ b/SRC/sggbal.f
@@ -60,6 +60,7 @@
* The leading dimension of the array B. LDB >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
diff --git a/SRC/sgges.f b/SRC/sgges.f
index 4d70f465..fb8de1b5 100644
--- a/SRC/sgges.f
+++ b/SRC/sgges.f
@@ -117,7 +117,9 @@
* SELCTG is true for either eigenvalue count as 2.)
*
* ALPHAR (output) REAL array, dimension (N)
+*
* ALPHAI (output) REAL array, dimension (N)
+*
* BETA (output) REAL array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. ALPHAR(j) + ALPHAI(j)*i,
diff --git a/SRC/sggesx.f b/SRC/sggesx.f
index ee99a537..09776ffa 100644
--- a/SRC/sggesx.f
+++ b/SRC/sggesx.f
@@ -130,7 +130,9 @@
* SELCTG is true for either eigenvalue count as 2.)
*
* ALPHAR (output) REAL array, dimension (N)
+*
* ALPHAI (output) REAL array, dimension (N)
+*
* BETA (output) REAL array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. ALPHAR(j) + ALPHAI(j)*i
diff --git a/SRC/sggev.f b/SRC/sggev.f
index 6dcf8d0a..4f5d1409 100644
--- a/SRC/sggev.f
+++ b/SRC/sggev.f
@@ -71,7 +71,9 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHAR (output) REAL array, dimension (N)
+*
* ALPHAI (output) REAL array, dimension (N)
+*
* BETA (output) REAL array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. If ALPHAI(j) is zero, then
diff --git a/SRC/sggevx.f b/SRC/sggevx.f
index 56379a18..e1807793 100644
--- a/SRC/sggevx.f
+++ b/SRC/sggevx.f
@@ -105,7 +105,9 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHAR (output) REAL array, dimension (N)
+*
* ALPHAI (output) REAL array, dimension (N)
+*
* BETA (output) REAL array, dimension (N)
* On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
* be the generalized eigenvalues. If ALPHAI(j) is zero, then
@@ -151,6 +153,7 @@
* if JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
diff --git a/SRC/shgeqz.f b/SRC/shgeqz.f
index 83b6ebfb..3145e79d 100644
--- a/SRC/shgeqz.f
+++ b/SRC/shgeqz.f
@@ -100,6 +100,7 @@
* The order of the matrices H, T, Q, and Z. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* ILO and IHI mark the rows and columns of H which are in
* Hessenberg form. It is assumed that A is already upper
diff --git a/SRC/shseqr.f b/SRC/shseqr.f
index 3c58c9eb..f40ce009 100644
--- a/SRC/shseqr.f
+++ b/SRC/shseqr.f
@@ -13,7 +13,7 @@
REAL H( LDH, * ), WI( * ), WORK( * ), WR( * ),
$ Z( LDZ, * )
* ..
-* Purpose
+* Purpose
* =======
*
* SHSEQR computes the eigenvalues of a Hessenberg matrix H
@@ -26,8 +26,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* JOB (input) CHARACTER*1
* = 'E': compute eigenvalues only;
@@ -159,7 +159,7 @@
* If INFO .GT. 0 and COMPZ = 'N', then Z is not
* accessed.
*
-* ================================================================
+* ================================================================
* Default values supplied by
* ILAENV(ISPEC,'SHSEQR',JOB(:1)//COMPZ(:1),N,ILO,IHI,LWORK).
* It is suggested that these defaults be adjusted in order
@@ -211,12 +211,12 @@
* for ISPEC=16 is 0. Otherwise the default for
* ISPEC=16 is 2.
*
-* ================================================================
+* ================================================================
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -227,7 +227,7 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/sla_lin_berr.f b/SRC/sla_lin_berr.f
index 2d811a70..95d84f21 100644
--- a/SRC/sla_lin_berr.f
+++ b/SRC/sla_lin_berr.f
@@ -28,7 +28,7 @@
* or vector Z.
*
* Arguments
-* ==========
+* =========
*
* N (input) INTEGER
* The number of linear equations, i.e., the order of the
diff --git a/SRC/sla_syamv.f b/SRC/sla_syamv.f
index a8bd335a..ded91681 100644
--- a/SRC/sla_syamv.f
+++ b/SRC/sla_syamv.f
@@ -63,7 +63,7 @@
* On entry, ALPHA specifies the scalar alpha.
* Unchanged on exit.
*
-* A - REAL array of DIMENSION ( LDA, n ).
+* A (input) REAL array of DIMENSION ( LDA, n ).
* Before entry, the leading m by n part of the array A must
* contain the matrix of coefficients.
* Unchanged on exit.
diff --git a/SRC/sla_wwaddw.f b/SRC/sla_wwaddw.f
index 16d1fdd2..359238d9 100644
--- a/SRC/sla_wwaddw.f
+++ b/SRC/sla_wwaddw.f
@@ -17,7 +17,7 @@
REAL X( * ), Y( * ), W( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SLA_WWADDW adds a vector W into a doubled-single vector (X, Y).
@@ -25,8 +25,8 @@
* This works for all extant IBM's hex and binary floating point
* arithmetics, but not for decimal.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* N (input) INTEGER
* The length of vectors X, Y, and W.
diff --git a/SRC/slacn2.f b/SRC/slacn2.f
index db8109e8..316a502d 100644
--- a/SRC/slacn2.f
+++ b/SRC/slacn2.f
@@ -54,7 +54,7 @@
* ISAVE is used to save variables between calls to SLACN2
*
* Further Details
-* ======= =======
+* ===============
*
* Contributed by Nick Higham, University of Manchester.
* Originally named SONEST, dated March 16, 1988.
diff --git a/SRC/sladiv.f b/SRC/sladiv.f
index a2817f31..5747dc35 100644
--- a/SRC/sladiv.f
+++ b/SRC/sladiv.f
@@ -25,12 +25,16 @@
* =========
*
* A (input) REAL
+*
* B (input) REAL
+*
* C (input) REAL
+*
* D (input) REAL
* The scalars a, b, c, and d in the above expression.
*
* P (output) REAL
+*
* Q (output) REAL
* The scalars p and q in the above expression.
*
diff --git a/SRC/slaebz.f b/SRC/slaebz.f
index 39fbbc21..ec684ce3 100644
--- a/SRC/slaebz.f
+++ b/SRC/slaebz.f
@@ -110,8 +110,9 @@
*
* PIVMIN (input) REAL
* The minimum absolute value of a "pivot" in the Sturm
-* sequence loop. This *must* be at least max |e(j)**2| *
-* safe_min and at least safe_min, where safe_min is at least
+* sequence loop.
+* This must be at least max |e(j)**2|*safe_min and at
+* least safe_min, where safe_min is at least
* the smallest number that can divide one without overflow.
*
* D (input) REAL array, dimension (N)
diff --git a/SRC/slaed9.f b/SRC/slaed9.f
index c10b5e9f..4a34baea 100644
--- a/SRC/slaed9.f
+++ b/SRC/slaed9.f
@@ -31,6 +31,7 @@
* SLAED4. K >= 0.
*
* KSTART (input) INTEGER
+*
* KSTOP (input) INTEGER
* The updated eigenvalues Lambda(I), KSTART <= I <= KSTOP
* are to be computed. 1 <= KSTART <= KSTOP <= K.
diff --git a/SRC/slaein.f b/SRC/slaein.f
index c60b769f..bea2982b 100644
--- a/SRC/slaein.f
+++ b/SRC/slaein.f
@@ -44,11 +44,13 @@
* The leading dimension of the array H. LDH >= max(1,N).
*
* WR (input) REAL
+*
* WI (input) REAL
* The real and imaginary parts of the eigenvalue of H whose
* corresponding right or left eigenvector is to be computed.
*
* VR (input/output) REAL array, dimension (N)
+*
* VI (input/output) REAL array, dimension (N)
* On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain
* a real starting vector for inverse iteration using the real
diff --git a/SRC/slaev2.f b/SRC/slaev2.f
index f2263950..868c326e 100644
--- a/SRC/slaev2.f
+++ b/SRC/slaev2.f
@@ -42,6 +42,7 @@
* The eigenvalue of smaller absolute value.
*
* CS1 (output) REAL
+*
* SN1 (output) REAL
* The vector (CS1, SN1) is a unit right eigenvector for RT1.
*
diff --git a/SRC/slags2.f b/SRC/slags2.f
index 3415dbe9..d6533072 100644
--- a/SRC/slags2.f
+++ b/SRC/slags2.f
@@ -48,26 +48,33 @@
* = .FALSE.: the input matrices A and B are lower triangular.
*
* A1 (input) REAL
+*
* A2 (input) REAL
+*
* A3 (input) REAL
* On entry, A1, A2 and A3 are elements of the input 2-by-2
* upper (lower) triangular matrix A.
*
* B1 (input) REAL
+*
* B2 (input) REAL
+*
* B3 (input) REAL
* On entry, B1, B2 and B3 are elements of the input 2-by-2
* upper (lower) triangular matrix B.
*
* CSU (output) REAL
+*
* SNU (output) REAL
* The desired orthogonal matrix U.
*
* CSV (output) REAL
+*
* SNV (output) REAL
* The desired orthogonal matrix V.
*
* CSQ (output) REAL
+*
* SNQ (output) REAL
* The desired orthogonal matrix Q.
*
diff --git a/SRC/slagv2.f b/SRC/slagv2.f
index 666786ed..b58f27e0 100644
--- a/SRC/slagv2.f
+++ b/SRC/slagv2.f
@@ -64,7 +64,9 @@
* THe leading dimension of the array B. LDB >= 2.
*
* ALPHAR (output) REAL array, dimension (2)
+*
* ALPHAI (output) REAL array, dimension (2)
+*
* BETA (output) REAL array, dimension (2)
* (ALPHAR(k)+i*ALPHAI(k))/BETA(k) are the eigenvalues of the
* pencil (A,B), k=1,2, i = sqrt(-1). Note that BETA(k) may
diff --git a/SRC/slahqr.f b/SRC/slahqr.f
index 1737f679..f2517d7c 100644
--- a/SRC/slahqr.f
+++ b/SRC/slahqr.f
@@ -13,7 +13,7 @@
REAL H( LDH, * ), WI( * ), WR( * ), Z( LDZ, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SLAHQR is an auxiliary routine called by SHSEQR to update the
@@ -21,8 +21,8 @@
* dealing with the Hessenberg submatrix in rows and columns ILO to
* IHI.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -36,6 +36,7 @@
* The order of the matrix H. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper quasi-triangular in
* rows and columns IHI+1:N, and that H(ILO,ILO-1) = 0 (unless
@@ -57,6 +58,7 @@
* The leading dimension of the array H. LDH >= max(1,N).
*
* WR (output) REAL array, dimension (N)
+*
* WI (output) REAL array, dimension (N)
* The real and imaginary parts, respectively, of the computed
* eigenvalues ILO to IHI are stored in the corresponding
@@ -70,6 +72,7 @@
* WI(i) = sqrt(H(i+1,i)*H(i,i+1)) and WI(i+1) = -WI(i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -110,8 +113,8 @@
* where U is the orthogonal matrix in (*)
* (regardless of the value of WANTT.)
*
-* Further Details
-* ===============
+* Further Details
+* ===============
*
* 02-96 Based on modifications by
* David Day, Sandia National Laboratory, USA
@@ -123,7 +126,7 @@
* (2) adopts the more conservative Ahues & Tisseur stopping
* criterion (LAWN 122, 1997).
*
-* =========================================================
+* =========================================================
*
* .. Parameters ..
INTEGER ITMAX
diff --git a/SRC/slamrg.f b/SRC/slamrg.f
index 4d17a366..a6bfa336 100644
--- a/SRC/slamrg.f
+++ b/SRC/slamrg.f
@@ -24,6 +24,7 @@
* =========
*
* N1 (input) INTEGER
+*
* N2 (input) INTEGER
* These arguements contain the respective lengths of the two
* sorted lists to be merged.
@@ -34,6 +35,7 @@
* for the final N2 elements.
*
* STRD1 (input) INTEGER
+*
* STRD2 (input) INTEGER
* These are the strides to be taken through the array A.
* Allowable strides are 1 and -1. They indicate whether a
diff --git a/SRC/slaneg.f b/SRC/slaneg.f
index 4da92674..441a6c9a 100644
--- a/SRC/slaneg.f
+++ b/SRC/slaneg.f
@@ -42,10 +42,10 @@
* N (input) INTEGER
* The order of the matrix.
*
-* D (input) REAL array, dimension (N)
+* D (input) REAL array, dimension (N)
* The N diagonal elements of the diagonal matrix D.
*
-* LLD (input) REAL array, dimension (N-1)
+* LLD (input) REAL array, dimension (N-1)
* The (N-1) elements L(i)*L(i)*D(i).
*
* SIGMA (input) REAL
diff --git a/SRC/slanv2.f b/SRC/slanv2.f
index e027c78d..5c2199a5 100644
--- a/SRC/slanv2.f
+++ b/SRC/slanv2.f
@@ -27,21 +27,28 @@
* =========
*
* A (input/output) REAL
+*
* B (input/output) REAL
+*
* C (input/output) REAL
+*
* D (input/output) REAL
* On entry, the elements of the input matrix.
* On exit, they are overwritten by the elements of the
* standardised Schur form.
*
* RT1R (output) REAL
+*
* RT1I (output) REAL
+*
* RT2R (output) REAL
+*
* RT2I (output) REAL
* The real and imaginary parts of the eigenvalues. If the
* eigenvalues are a complex conjugate pair, RT1I > 0.
*
* CS (output) REAL
+*
* SN (output) REAL
* Parameters of the rotation matrix.
*
diff --git a/SRC/slapy2.f b/SRC/slapy2.f
index 916460c2..d6b16e22 100644
--- a/SRC/slapy2.f
+++ b/SRC/slapy2.f
@@ -19,6 +19,7 @@
* =========
*
* X (input) REAL
+*
* Y (input) REAL
* X and Y specify the values x and y.
*
diff --git a/SRC/slapy3.f b/SRC/slapy3.f
index 4f7a22b3..dceb0f00 100644
--- a/SRC/slapy3.f
+++ b/SRC/slapy3.f
@@ -19,7 +19,9 @@
* =========
*
* X (input) REAL
+*
* Y (input) REAL
+*
* Z (input) REAL
* X, Y and Z specify the values x, y and z.
*
diff --git a/SRC/slaqr0.f b/SRC/slaqr0.f
index f840e389..c5b76367 100644
--- a/SRC/slaqr0.f
+++ b/SRC/slaqr0.f
@@ -14,8 +14,8 @@
$ Z( LDZ, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* SLAQR0 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
@@ -27,8 +27,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -42,6 +42,7 @@
* The order of the matrix H. N .GE. 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows
* and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
@@ -71,6 +72,7 @@
* The leading dimension of the array H. LDH .GE. max(1,N).
*
* WR (output) REAL array, dimension (IHI)
+*
* WI (output) REAL array, dimension (IHI)
* The real and imaginary parts, respectively, of the computed
* eigenvalues of H(ILO:IHI,ILO:IHI) are stored in WR(ILO:IHI)
@@ -85,6 +87,7 @@
* WI(i+1) = -WI(i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -152,12 +155,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -168,7 +172,7 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/slaqr1.f b/SRC/slaqr1.f
index 4ba1f57f..31323059 100644
--- a/SRC/slaqr1.f
+++ b/SRC/slaqr1.f
@@ -12,6 +12,9 @@
REAL H( LDH, * ), V( * )
* ..
*
+* Purpose
+* =======
+*
* Given a 2-by-2 or 3-by-3 matrix H, SLAQR1 sets v to a
* scalar multiple of the first column of the product
*
@@ -27,6 +30,8 @@
* This is useful for starting double implicit shift bulges
* in the QR algorithm.
*
+* Arguments
+* =========
*
* N (input) integer
* Order of the matrix H. N must be either 2 or 3.
@@ -39,20 +44,26 @@
* the calling procedure. LDH.GE.N
*
* SR1 (input) REAL
-* SI1 The shifts in (*).
-* SR2
-* SI2
+*
+* SI1 (input) REAL
+*
+* SR2 (input) REAL
+*
+* SI2 (input) REAL
+* The shifts in (*).
*
* V (output) REAL array of dimension N
* A scalar multiple of the first column of the
* matrix K in (*).
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
*
* .. Parameters ..
REAL ZERO
diff --git a/SRC/slaqr2.f b/SRC/slaqr2.f
index 3c01c3e7..be72e1ce 100644
--- a/SRC/slaqr2.f
+++ b/SRC/slaqr2.f
@@ -17,11 +17,12 @@
$ Z( LDZ, * )
* ..
*
-* This subroutine is identical to SLAQR3 except that it avoids
-* recursion by calling SLAHQR instead of SLAQR4.
+* Purpose
+* =======
*
+* SLAQR2 is identical to SLAQR3 except that it avoids
+* recursion by calling SLAHQR instead of SLAQR4.
*
-* ******************************************************************
* Aggressive early deflation:
*
* This subroutine accepts as input an upper Hessenberg matrix
@@ -33,7 +34,9 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the quasi-triangular Schur factor may be
@@ -78,6 +81,7 @@
* subroutine. N .LE. LDH
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
@@ -102,6 +106,7 @@
* subroutine.
*
* SR (output) REAL array, dimension KBOT
+*
* SI (output) REAL array, dimension KBOT
* On output, the real and imaginary parts of approximate
* eigenvalues that may be used for shifts are stored in
@@ -152,12 +157,14 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* .. Parameters ..
REAL ZERO, ONE
PARAMETER ( ZERO = 0.0e0, ONE = 1.0e0 )
diff --git a/SRC/slaqr3.f b/SRC/slaqr3.f
index 351a9343..885eeece 100644
--- a/SRC/slaqr3.f
+++ b/SRC/slaqr3.f
@@ -17,10 +17,12 @@
$ Z( LDZ, * )
* ..
*
-* ******************************************************************
+* Purpose
+* =======
+*
* Aggressive early deflation:
*
-* This subroutine accepts as input an upper Hessenberg matrix
+* SLAQR3 accepts as input an upper Hessenberg matrix
* H and performs an orthogonal similarity transformation
* designed to detect and deflate fully converged eigenvalues from
* a trailing principal submatrix. On output H has been over-
@@ -29,7 +31,9 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the quasi-triangular Schur factor may be
@@ -74,6 +78,7 @@
* subroutine. N .LE. LDH
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
@@ -98,6 +103,7 @@
* subroutine.
*
* SR (output) REAL array, dimension KBOT
+*
* SI (output) REAL array, dimension KBOT
* On output, the real and imaginary parts of approximate
* eigenvalues that may be used for shifts are stored in
@@ -148,12 +154,14 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* .. Parameters ..
REAL ZERO, ONE
PARAMETER ( ZERO = 0.0e0, ONE = 1.0e0 )
diff --git a/SRC/slaqr4.f b/SRC/slaqr4.f
index 1a05898c..bd27750b 100644
--- a/SRC/slaqr4.f
+++ b/SRC/slaqr4.f
@@ -14,16 +14,16 @@
$ Z( LDZ, * )
* ..
*
-* This subroutine implements one level of recursion for SLAQR0.
+* Purpose
+* =======
+*
+* SLAQR4 implements one level of recursion for SLAQR0.
* It is a complete implementation of the small bulge multi-shift
* QR algorithm. It may be called by SLAQR0 and, for large enough
* deflation window size, it may be called by SLAQR3. This
* subroutine is identical to SLAQR0 except that it calls SLAQR2
* instead of SLAQR3.
*
-* Purpose
-* =======
-*
* SLAQR4 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
* H = Z T Z**T, where T is an upper quasi-triangular matrix (the
@@ -34,8 +34,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the orthogonal matrix Q: A = Q*H*Q**T = (QZ)*T*(QZ)**T.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -49,6 +49,7 @@
* The order of the matrix H. N .GE. 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows
* and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
@@ -78,6 +79,7 @@
* The leading dimension of the array H. LDH .GE. max(1,N).
*
* WR (output) REAL array, dimension (IHI)
+*
* WI (output) REAL array, dimension (IHI)
* The real and imaginary parts, respectively, of the computed
* eigenvalues of H(ILO:IHI,ILO:IHI) are stored in WR(ILO:IHI)
@@ -92,6 +94,7 @@
* WI(i+1) = -WI(i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -159,12 +162,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -175,7 +179,8 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/slaqr5.f b/SRC/slaqr5.f
index 649527a7..c0d8bbaa 100644
--- a/SRC/slaqr5.f
+++ b/SRC/slaqr5.f
@@ -18,9 +18,15 @@
$ Z( LDZ, * )
* ..
*
-* This auxiliary subroutine called by SLAQR0 performs a
+* Purpose
+* =======
+*
+* SLAQR5, called by SLAQR0, performs a
* single small-bulge multi-shift QR sweep.
*
+* Arguments
+* =========
+*
* WANTT (input) logical scalar
* WANTT = .true. if the quasi-triangular Schur factor
* is being computed. WANTT is set to .false. otherwise.
@@ -47,6 +53,7 @@
* subroutine operates.
*
* KTOP (input) integer scalar
+*
* KBOT (input) integer scalar
* These are the first and last rows and columns of an
* isolated diagonal block upon which the QR sweep is to be
@@ -60,6 +67,7 @@
* must be positive and even.
*
* SR (input/output) REAL array of size (NSHFTS)
+*
* SI (input/output) REAL array of size (NSHFTS)
* SR contains the real parts and SI contains the imaginary
* parts of the NSHFTS shifts of origin that define the
@@ -77,6 +85,7 @@
* calling procedure. LDH.GE.MAX(1,N).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N
@@ -125,12 +134,13 @@
* LDWV is the leading dimension of WV as declared in the
* in the calling subroutine. LDWV.GE.NV.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* Reference:
*
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
@@ -138,7 +148,7 @@
* Level 3 Performance, SIAM Journal of Matrix Analysis,
* volume 23, pages 929--947, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
REAL ZERO, ONE
PARAMETER ( ZERO = 0.0e0, ONE = 1.0e0 )
diff --git a/SRC/slarra.f b/SRC/slarra.f
index 969b23cd..e85c8151 100644
--- a/SRC/slarra.f
+++ b/SRC/slarra.f
@@ -28,17 +28,17 @@
* N (input) INTEGER
* The order of the matrix. N > 0.
*
-* D (input) REAL array, dimension (N)
+* D (input) REAL array, dimension (N)
* On entry, the N diagonal elements of the tridiagonal
* matrix T.
*
-* E (input/output) REAL array, dimension (N)
+* E (input/output) REAL array, dimension (N)
* On entry, the first (N-1) entries contain the subdiagonal
* elements of the tridiagonal matrix T; E(N) need not be set.
* On exit, the entries E( ISPLIT( I ) ), 1 <= I <= NSPLIT,
* are set to zero, the other entries of E are untouched.
*
-* E2 (input/output) REAL array, dimension (N)
+* E2 (input/output) REAL array, dimension (N)
* On entry, the first (N-1) entries contain the SQUARES of the
* subdiagonal elements of the tridiagonal matrix T;
* E2(N) need not be set.
diff --git a/SRC/slarrb.f b/SRC/slarrb.f
index 17cecd3e..b6cacffb 100644
--- a/SRC/slarrb.f
+++ b/SRC/slarrb.f
@@ -35,10 +35,10 @@
* N (input) INTEGER
* The order of the matrix.
*
-* D (input) REAL array, dimension (N)
+* D (input) REAL array, dimension (N)
* The N diagonal elements of the diagonal matrix D.
*
-* LLD (input) REAL array, dimension (N-1)
+* LLD (input) REAL array, dimension (N-1)
* The (N-1) elements L(i)*L(i)*D(i).
*
* IFIRST (input) INTEGER
@@ -48,6 +48,7 @@
* The index of the last eigenvalue to be computed.
*
* RTOL1 (input) REAL
+*
* RTOL2 (input) REAL
* Tolerance for the convergence of the bisection intervals.
* An interval [LEFT,RIGHT] has converged if
@@ -59,25 +60,25 @@
* Offset for the arrays W, WGAP and WERR, i.e., the IFIRST-OFFSET
* through ILAST-OFFSET elements of these arrays are to be used.
*
-* W (input/output) REAL array, dimension (N)
+* W (input/output) REAL array, dimension (N)
* On input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are
* estimates of the eigenvalues of L D L^T indexed IFIRST throug
* ILAST.
* On output, these estimates are refined.
*
-* WGAP (input/output) REAL array, dimension (N-1)
+* WGAP (input/output) REAL array, dimension (N-1)
* On input, the (estimated) gaps between consecutive
* eigenvalues of L D L^T, i.e., WGAP(I-OFFSET) is the gap between
* eigenvalues I and I+1. Note that if IFIRST.EQ.ILAST
* then WGAP(IFIRST-OFFSET) must be set to ZERO.
* On output, these gaps are refined.
*
-* WERR (input/output) REAL array, dimension (N)
+* WERR (input/output) REAL array, dimension (N)
* On input, WERR( IFIRST-OFFSET ) through WERR( ILAST-OFFSET ) are
* the errors in the estimates of the corresponding elements in W.
* On output, these errors are refined.
*
-* WORK (workspace) REAL array, dimension (2*N)
+* WORK (workspace) REAL array, dimension (2*N)
* Workspace.
*
* IWORK (workspace) INTEGER array, dimension (2*N)
diff --git a/SRC/slarrc.f b/SRC/slarrc.f
index 5126c39c..618bc5a6 100644
--- a/SRC/slarrc.f
+++ b/SRC/slarrc.f
@@ -33,6 +33,7 @@
* The order of the matrix. N > 0.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* The lower and upper bounds for the eigenvalues.
*
@@ -52,6 +53,7 @@
* that are in the interval (VL,VU]
*
* LCNT (output) INTEGER
+*
* RCNT (output) INTEGER
* The left and right negcounts of the interval.
*
diff --git a/SRC/slarrd.f b/SRC/slarrd.f
index c48b6d9f..1a56d6f8 100644
--- a/SRC/slarrd.f
+++ b/SRC/slarrd.f
@@ -63,6 +63,7 @@
* The order of the tridiagonal matrix T. N >= 0.
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. Eigenvalues less than or equal
@@ -70,13 +71,14 @@
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
* 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.
* Not referenced if RANGE = 'A' or 'V'.
*
-* GERS (input) REAL array, dimension (2*N)
+* GERS (input) REAL array, dimension (2*N)
* The N Gerschgorin intervals (the i-th Gerschgorin interval
* is (GERS(2*i-1), GERS(2*i)).
*
@@ -87,13 +89,13 @@
* sufficiently small, i.e., converged. Note: this should
* always be at least radix*machine epsilon.
*
-* D (input) REAL array, dimension (N)
+* D (input) REAL array, dimension (N)
* The n diagonal elements of the tridiagonal matrix T.
*
-* E (input) REAL array, dimension (N-1)
+* E (input) REAL array, dimension (N-1)
* The (n-1) off-diagonal elements of the tridiagonal matrix T.
*
-* E2 (input) REAL array, dimension (N-1)
+* E2 (input) REAL array, dimension (N-1)
* The (n-1) squared off-diagonal elements of the tridiagonal matrix T.
*
* PIVMIN (input) REAL
@@ -117,7 +119,7 @@
* The actual number of eigenvalues found. 0 <= M <= N.
* (See also the description of INFO=2,3.)
*
-* W (output) REAL array, dimension (N)
+* W (output) REAL array, dimension (N)
* On exit, the first M elements of W will contain the
* eigenvalue approximations. SLARRD computes an interval
* I_j = (a_j, b_j] that includes eigenvalue j. The eigenvalue
@@ -125,11 +127,12 @@
* W(j)= ( a_j + b_j)/2. The corresponding error is bounded by
* WERR(j) = abs( a_j - b_j)/2
*
-* WERR (output) REAL array, dimension (N)
+* WERR (output) REAL array, dimension (N)
* The error bound on the corresponding eigenvalue approximation
* in W.
*
* WL (output) REAL
+*
* WU (output) REAL
* The interval (WL, WU] contains all the wanted eigenvalues.
* If RANGE='V', then WL=VL and WU=VU.
@@ -151,7 +154,7 @@
* for example, INDEXW(i)= j and IBLOCK(i)=k imply that the
* i-th eigenvalue W(i) is the j-th eigenvalue in block k.
*
-* WORK (workspace) REAL array, dimension (4*N)
+* WORK (workspace) REAL array, dimension (4*N)
*
* IWORK (workspace) INTEGER array, dimension (3*N)
*
diff --git a/SRC/slarre.f b/SRC/slarre.f
index a3d6060b..a0933cd0 100644
--- a/SRC/slarre.f
+++ b/SRC/slarre.f
@@ -52,6 +52,7 @@
* The order of the matrix. N > 0.
*
* VL (input/output) REAL
+*
* VU (input/output) REAL
* If RANGE='V', the lower and upper bounds for the eigenvalues.
* Eigenvalues less than or equal to VL, or greater than VU,
@@ -60,25 +61,26 @@
* part of the spectrum.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
* 1 <= IL <= IU <= N.
*
-* D (input/output) REAL array, dimension (N)
+* D (input/output) REAL array, dimension (N)
* On entry, the N diagonal elements of the tridiagonal
* matrix T.
* On exit, the N diagonal elements of the diagonal
* matrices D_i.
*
-* E (input/output) REAL array, dimension (N)
+* E (input/output) REAL array, dimension (N)
* On entry, the first (N-1) entries contain the subdiagonal
* elements of the tridiagonal matrix T; E(N) need not be set.
* On exit, E contains the subdiagonal elements of the unit
* bidiagonal matrices L_i. The entries E( ISPLIT( I ) ),
* 1 <= I <= NSPLIT, contain the base points sigma_i on output.
*
-* E2 (input/output) REAL array, dimension (N)
+* E2 (input/output) REAL array, dimension (N)
* On entry, the first (N-1) entries contain the SQUARES of the
* subdiagonal elements of the tridiagonal matrix T;
* E2(N) need not be set.
@@ -86,6 +88,7 @@
* 1 <= I <= NSPLIT, have been set to zero
*
* RTOL1 (input) REAL
+*
* RTOL2 (input) REAL
* Parameters for bisection.
* An interval [LEFT,RIGHT] has converged if
@@ -108,16 +111,16 @@
* The total number of eigenvalues (of all L_i D_i L_i^T)
* found.
*
-* W (output) REAL array, dimension (N)
+* W (output) REAL array, dimension (N)
* The first M elements contain the eigenvalues. The
* eigenvalues of each of the blocks, L_i D_i L_i^T, are
* sorted in ascending order ( SLARRE may use the
* remaining N-M elements as workspace).
*
-* WERR (output) REAL array, dimension (N)
+* WERR (output) REAL array, dimension (N)
* The error bound on the corresponding eigenvalue in W.
*
-* WGAP (output) REAL array, dimension (N)
+* WGAP (output) REAL array, dimension (N)
* The separation from the right neighbor eigenvalue in W.
* The gap is only with respect to the eigenvalues of the same block
* as each block has its own representation tree.
@@ -134,14 +137,14 @@
* for example, INDEXW(i)= 10 and IBLOCK(i)=2 imply that the
* i-th eigenvalue W(i) is the 10-th eigenvalue in block 2
*
-* GERS (output) REAL array, dimension (2*N)
+* GERS (output) REAL array, dimension (2*N)
* The N Gerschgorin intervals (the i-th Gerschgorin interval
* is (GERS(2*i-1), GERS(2*i)).
*
* PIVMIN (output) REAL
* The minimum pivot in the Sturm sequence for T.
*
-* WORK (workspace) REAL array, dimension (6*N)
+* WORK (workspace) REAL array, dimension (6*N)
* Workspace.
*
* IWORK (workspace) INTEGER array, dimension (5*N)
@@ -165,10 +168,11 @@
* =-6: Problem in SLASQ2.
*
* Further Details
+* ===============
+*
* The base representations are required to suffer very little
* element growth and consequently define all their eigenvalues to
* high relative accuracy.
-* ===============
*
* Based on contributions by
* Beresford Parlett, University of California, Berkeley, USA
diff --git a/SRC/slarrf.f b/SRC/slarrf.f
index 74eaefc8..53bbb955 100644
--- a/SRC/slarrf.f
+++ b/SRC/slarrf.f
@@ -80,10 +80,10 @@
* SIGMA (output) REAL
* The shift used to form L(+) D(+) L(+)^T.
*
-* DPLUS (output) REAL array, dimension (N)
+* DPLUS (output) REAL array, dimension (N)
* The N diagonal elements of the diagonal matrix D(+).
*
-* LPLUS (output) REAL array, dimension (N-1)
+* LPLUS (output) REAL array, dimension (N-1)
* The first (N-1) elements of LPLUS contain the subdiagonal
* elements of the unit bidiagonal matrix L(+).
*
diff --git a/SRC/slarrj.f b/SRC/slarrj.f
index aec8ddc0..3d6b30b5 100644
--- a/SRC/slarrj.f
+++ b/SRC/slarrj.f
@@ -34,10 +34,10 @@
* N (input) INTEGER
* The order of the matrix.
*
-* D (input) REAL array, dimension (N)
+* D (input) REAL array, dimension (N)
* The N diagonal elements of T.
*
-* E2 (input) REAL array, dimension (N-1)
+* E2 (input) REAL array, dimension (N-1)
* The Squares of the (N-1) subdiagonal elements of T.
*
* IFIRST (input) INTEGER
@@ -55,18 +55,18 @@
* Offset for the arrays W and WERR, i.e., the IFIRST-OFFSET
* through ILAST-OFFSET elements of these arrays are to be used.
*
-* W (input/output) REAL array, dimension (N)
+* W (input/output) REAL array, dimension (N)
* On input, W( IFIRST-OFFSET ) through W( ILAST-OFFSET ) are
* estimates of the eigenvalues of L D L^T indexed IFIRST through
* ILAST.
* On output, these estimates are refined.
*
-* WERR (input/output) REAL array, dimension (N)
+* WERR (input/output) REAL array, dimension (N)
* On input, WERR( IFIRST-OFFSET ) through WERR( ILAST-OFFSET ) are
* the errors in the estimates of the corresponding elements in W.
* On output, these errors are refined.
*
-* WORK (workspace) REAL array, dimension (2*N)
+* WORK (workspace) REAL array, dimension (2*N)
* Workspace.
*
* IWORK (workspace) INTEGER array, dimension (2*N)
diff --git a/SRC/slarrk.f b/SRC/slarrk.f
index f0533138..fac58ee7 100644
--- a/SRC/slarrk.f
+++ b/SRC/slarrk.f
@@ -41,13 +41,14 @@
* The index of the eigenvalues to be returned.
*
* GL (input) REAL
+*
* GU (input) REAL
* An upper and a lower bound on the eigenvalue.
*
-* D (input) REAL array, dimension (N)
+* D (input) REAL array, dimension (N)
* The n diagonal elements of the tridiagonal matrix T.
*
-* E2 (input) REAL array, dimension (N-1)
+* E2 (input) REAL array, dimension (N-1)
* The (n-1) squared off-diagonal elements of the tridiagonal matrix T.
*
* PIVMIN (input) REAL
diff --git a/SRC/slarrr.f b/SRC/slarrr.f
index a1e98d22..e86e8c2d 100644
--- a/SRC/slarrr.f
+++ b/SRC/slarrr.f
@@ -26,7 +26,7 @@
* N (input) INTEGER
* The order of the matrix. N > 0.
*
-* D (input) REAL array, dimension (N)
+* D (input) REAL array, dimension (N)
* The N diagonal elements of the tridiagonal matrix T.
*
* E (input/output) REAL array, dimension (N)
diff --git a/SRC/slarrv.f b/SRC/slarrv.f
index 76dc1292..4afa7440 100644
--- a/SRC/slarrv.f
+++ b/SRC/slarrv.f
@@ -35,6 +35,7 @@
* The order of the matrix. N >= 0.
*
* VL (input) REAL
+*
* VU (input) REAL
* Lower and upper bounds of the interval that contains the desired
* eigenvalues. VL < VU. Needed to compute gaps on the left or right
@@ -64,6 +65,7 @@
* The total number of input eigenvalues. 0 <= M <= N.
*
* DOL (input) INTEGER
+*
* DOU (input) INTEGER
* If the user wants to compute only selected eigenvectors from all
* the eigenvalues supplied, he can specify an index range DOL:DOU.
@@ -77,12 +79,13 @@
* MINRGP (input) REAL
*
* RTOL1 (input) REAL
+*
* RTOL2 (input) REAL
* Parameters for bisection.
* An interval [LEFT,RIGHT] has converged if
* RIGHT-LEFT.LT.MAX( RTOL1*GAP, RTOL2*MAX(|LEFT|,|RIGHT|) )
*
-* W (input/output) REAL array, dimension (N)
+* W (input/output) REAL array, dimension (N)
* The first M elements of W contain the APPROXIMATE eigenvalues for
* which eigenvectors are to be computed. The eigenvalues
* should be grouped by split-off block and ordered from
diff --git a/SRC/slascl.f b/SRC/slascl.f
index 8be809a9..824e34dd 100644
--- a/SRC/slascl.f
+++ b/SRC/slascl.f
@@ -50,6 +50,7 @@
* 'Q' or 'Z'.
*
* CFROM (input) REAL
+*
* CTO (input) REAL
* The matrix A is multiplied by CTO/CFROM. A(I,J) is computed
* without over/underflow if the final result CTO*A(I,J)/CFROM
diff --git a/SRC/slasv2.f b/SRC/slasv2.f
index 4e92517a..ee4464c4 100644
--- a/SRC/slasv2.f
+++ b/SRC/slasv2.f
@@ -42,11 +42,13 @@
* abs(SSMAX) is the larger singular value.
*
* SNL (output) REAL
+*
* CSL (output) REAL
* The vector (CSL, SNL) is a unit left singular vector for the
* singular value abs(SSMAX).
*
* SNR (output) REAL
+*
* CSR (output) REAL
* The vector (CSR, SNR) is a unit right singular vector for the
* singular value abs(SSMAX).
diff --git a/SRC/sporfsx.f b/SRC/sporfsx.f
index c542d380..30071016 100644
--- a/SRC/sporfsx.f
+++ b/SRC/sporfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SPORFSX improves the computed solution to a system of linear
@@ -44,8 +44,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -291,7 +291,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/sposvxx.f b/SRC/sposvxx.f
index b281f858..adb845c8 100644
--- a/SRC/sposvxx.f
+++ b/SRC/sposvxx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SPOSVXX uses the Cholesky factorization A = U**T*U or A = L*L**T
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what SPOSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -91,8 +91,8 @@
* diag(S) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -385,7 +385,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/ssbevx.f b/SRC/ssbevx.f
index b4cdc613..58130b52 100644
--- a/SRC/ssbevx.f
+++ b/SRC/ssbevx.f
@@ -78,12 +78,14 @@
* LDQ >= max(1,N).
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/sspevx.f b/SRC/sspevx.f
index e73d11a7..1439a366 100644
--- a/SRC/sspevx.f
+++ b/SRC/sspevx.f
@@ -60,12 +60,14 @@
* corresponding elements of A.
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/sstevr.f b/SRC/sstevr.f
index 94bac8d2..9e65739e 100644
--- a/SRC/sstevr.f
+++ b/SRC/sstevr.f
@@ -73,8 +73,8 @@
* = 'V': all eigenvalues in the half-open interval (VL,VU]
* will be found.
* = 'I': the IL-th through IU-th eigenvalues will be found.
-********** For RANGE = 'V' or 'I' and IU - IL < N - 1, SSTEBZ and
-********** SSTEIN are called
+* For RANGE = 'V' or 'I' and IU - IL < N - 1, SSTEBZ and
+* SSTEIN are called
*
* N (input) INTEGER
* The order of the matrix. N >= 0.
@@ -92,12 +92,14 @@
* to avoid over/underflow in computing the eigenvalues.
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
@@ -158,7 +160,7 @@
* indicating the nonzero elements in Z. The i-th eigenvector
* is nonzero only in elements ISUPPZ( 2*i-1 ) through
* ISUPPZ( 2*i ).
-********** Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
+* Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
*
* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
* On exit, if INFO = 0, WORK(1) returns the optimal (and
diff --git a/SRC/sstevx.f b/SRC/sstevx.f
index 028c5ae6..6770dbc4 100644
--- a/SRC/sstevx.f
+++ b/SRC/sstevx.f
@@ -53,12 +53,14 @@
* to avoid over/underflow in computing the eigenvalues.
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/ssyconv.f b/SRC/ssyconv.f
index e42ab6c6..b8b15fcd 100644
--- a/SRC/ssyconv.f
+++ b/SRC/ssyconv.f
@@ -1,7 +1,6 @@
SUBROUTINE SSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
*
* -- LAPACK PROTOTYPE routine (version 3.2.2) --
-*
* -- Written by Julie Langou of the Univ. of TN --
* May 2010
*
@@ -32,7 +31,7 @@
* as an upper or lower triangular matrix.
* = 'U': Upper triangular, form is A = U*D*U**T;
* = 'L': Lower triangular, form is A = L*D*L**T.
-*
+*
* WAY (input) CHARACTER*1
* = 'C': Convert
* = 'R': Revert
diff --git a/SRC/ssyevr.f b/SRC/ssyevr.f
index 3c415341..3be1d4f8 100644
--- a/SRC/ssyevr.f
+++ b/SRC/ssyevr.f
@@ -90,8 +90,8 @@
* = 'V': all eigenvalues in the half-open interval (VL,VU]
* will be found.
* = 'I': the IL-th through IU-th eigenvalues will be found.
-********** For RANGE = 'V' or 'I' and IU - IL < N - 1, SSTEBZ and
-********** SSTEIN are called
+* For RANGE = 'V' or 'I' and IU - IL < N - 1, SSTEBZ and
+* SSTEIN are called
*
* UPLO (input) CHARACTER*1
* = 'U': Upper triangle of A is stored;
@@ -114,12 +114,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
@@ -182,7 +184,7 @@
* indicating the nonzero elements in Z. The i-th eigenvector
* is nonzero only in elements ISUPPZ( 2*i-1 ) through
* ISUPPZ( 2*i ).
-********** Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
+* Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
*
* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
diff --git a/SRC/ssyevx.f b/SRC/ssyevx.f
index 1bf53a2b..c92ced10 100644
--- a/SRC/ssyevx.f
+++ b/SRC/ssyevx.f
@@ -59,12 +59,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/ssygvx.f b/SRC/ssygvx.f
index ae01d217..162b402f 100644
--- a/SRC/ssygvx.f
+++ b/SRC/ssygvx.f
@@ -83,12 +83,14 @@
* The leading dimension of the array B. LDB >= max(1,N).
*
* VL (input) REAL
+*
* VU (input) REAL
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/ssyrfsx.f b/SRC/ssyrfsx.f
index 825f24c6..9e0e16f4 100644
--- a/SRC/ssyrfsx.f
+++ b/SRC/ssyrfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SSYRFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -296,7 +296,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/ssysvxx.f b/SRC/ssysvxx.f
index 2558b42c..f7765812 100644
--- a/SRC/ssysvxx.f
+++ b/SRC/ssysvxx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* SSYSVXX uses the diagonal pivoting factorization to compute the
@@ -50,8 +50,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what SSYSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -93,8 +93,8 @@
* diag(R) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -393,7 +393,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
REAL ZERO, ONE
diff --git a/SRC/stgexc.f b/SRC/stgexc.f
index ef4db2e9..73cd09b5 100644
--- a/SRC/stgexc.f
+++ b/SRC/stgexc.f
@@ -88,6 +88,7 @@
* If WANTZ = .TRUE., LDZ >= N.
*
* IFST (input/output) INTEGER
+*
* ILST (input/output) INTEGER
* Specify the reordering of the diagonal blocks of (A, B).
* The block with row index IFST is moved to row ILST, by a
diff --git a/SRC/zgbrfsx.f b/SRC/zgbrfsx.f
index 0069775a..871f0f3e 100644
--- a/SRC/zgbrfsx.f
+++ b/SRC/zgbrfsx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZGBRFSX improves the computed solution to a system of linear
@@ -44,8 +44,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -324,7 +324,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zgbsvxx.f b/SRC/zgbsvxx.f
index 21f2b53e..4c02a2f0 100644
--- a/SRC/zgbsvxx.f
+++ b/SRC/zgbsvxx.f
@@ -29,8 +29,8 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* ZGBSVXX uses the LU factorization to compute the solution to a
* complex*16 system of linear equations A * X = B, where A is an
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what ZGBSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -435,7 +435,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zgebak.f b/SRC/zgebak.f
index f2553e7d..e557ea52 100644
--- a/SRC/zgebak.f
+++ b/SRC/zgebak.f
@@ -42,6 +42,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by ZGEBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/zgebal.f b/SRC/zgebal.f
index 137f228d..a3000f52 100644
--- a/SRC/zgebal.f
+++ b/SRC/zgebal.f
@@ -51,6 +51,7 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N.
diff --git a/SRC/zgeevx.f b/SRC/zgeevx.f
index 20fc5799..6c5e11d5 100644
--- a/SRC/zgeevx.f
+++ b/SRC/zgeevx.f
@@ -130,6 +130,7 @@
* JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values determined when A was
* balanced. The balanced A(i,j) = 0 if I > J and
diff --git a/SRC/zgegv.f b/SRC/zgegv.f
index 48670d79..824eb809 100644
--- a/SRC/zgegv.f
+++ b/SRC/zgegv.f
@@ -45,8 +45,7 @@
* u**H*A = lambda*u**H*B or mu*v**H*A = v**H*B
* are left eigenvectors of (A,B).
*
-* Note: this routine performs "full balancing" on A and B -- see
-* "Further Details", below.
+* Note: this routine performs "full balancing" on A and B
*
* Arguments
* =========
diff --git a/SRC/zgeqp3.f b/SRC/zgeqp3.f
index b4b6e4b6..3ae73f9f 100644
--- a/SRC/zgeqp3.f
+++ b/SRC/zgeqp3.f
@@ -114,7 +114,7 @@
* .. Executable Statements ..
*
* Test input arguments
-* ====================
+* ====================
*
INFO = 0
LQUERY = ( LWORK.EQ.-1 )
@@ -176,7 +176,7 @@
NFXD = NFXD - 1
*
* Factorize fixed columns
-* =======================
+* =======================
*
* Compute the QR factorization of fixed columns and update
* remaining columns.
@@ -198,7 +198,7 @@
END IF
*
* Factorize free columns
-* ======================
+* ======================
*
IF( NFXD.LT.MINMN ) THEN
*
diff --git a/SRC/zgeqrt.f b/SRC/zgeqrt.f
index 67904349..666cc887 100644
--- a/SRC/zgeqrt.f
+++ b/SRC/zgeqrt.f
@@ -36,7 +36,7 @@
* On exit, the elements on and above the diagonal of the array
* contain the min(M,N)-by-N upper trapezoidal matrix R (R is
* upper triangular if M >= N); the elements below the diagonal
-* are the columns of V. See below for further details.
+* are the columns of V.
*
* LDA (input) INTEGER
* The leading dimension of the array A. LDA >= max(1,M).
@@ -45,7 +45,7 @@
* The upper triangular block reflectors stored in compact form
* as a sequence of upper triangular blocks. See below
* for further details.
-*
+*
* LDT (input) INTEGER
* The leading dimension of the array T. LDT >= NB.
*
diff --git a/SRC/zgerfsx.f b/SRC/zgerfsx.f
index 633a52ba..1f4dfebd 100644
--- a/SRC/zgerfsx.f
+++ b/SRC/zgerfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZGERFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* and C below. In this case, the solution and error bounds returned
* are for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -305,7 +305,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zgesvxx.f b/SRC/zgesvxx.f
index b752a3d5..711cb111 100644
--- a/SRC/zgesvxx.f
+++ b/SRC/zgesvxx.f
@@ -29,7 +29,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZGESVXX uses the LU factorization to compute the solution to a
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what ZGESVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -95,8 +95,8 @@
* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so
* that it solves the original system before equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -421,7 +421,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zggbak.f b/SRC/zggbak.f
index d5cb78cc..6a09ce3d 100644
--- a/SRC/zggbak.f
+++ b/SRC/zggbak.f
@@ -43,6 +43,7 @@
* The number of rows of the matrix V. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* The integers ILO and IHI determined by ZGGBAL.
* 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
diff --git a/SRC/zggbal.f b/SRC/zggbal.f
index 0ac77978..ee7d6d28 100644
--- a/SRC/zggbal.f
+++ b/SRC/zggbal.f
@@ -60,6 +60,7 @@
* The leading dimension of the array B. LDB >= max(1,N).
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are set to integers such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
diff --git a/SRC/zgges.f b/SRC/zgges.f
index 5f41fb61..b37a2fce 100644
--- a/SRC/zgges.f
+++ b/SRC/zgges.f
@@ -109,6 +109,7 @@
* for which SELCTG is true.
*
* ALPHA (output) COMPLEX*16 array, dimension (N)
+*
* BETA (output) COMPLEX*16 array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
* generalized eigenvalues. ALPHA(j), j=1,...,N and BETA(j),
diff --git a/SRC/zggesx.f b/SRC/zggesx.f
index 66fc5b96..1aaa2a7d 100644
--- a/SRC/zggesx.f
+++ b/SRC/zggesx.f
@@ -118,6 +118,7 @@
* for which SELCTG is true.
*
* ALPHA (output) COMPLEX*16 array, dimension (N)
+*
* BETA (output) COMPLEX*16 array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
* generalized eigenvalues. ALPHA(j) and BETA(j),j=1,...,N are
diff --git a/SRC/zggev.f b/SRC/zggev.f
index d460f011..c596b86a 100644
--- a/SRC/zggev.f
+++ b/SRC/zggev.f
@@ -71,6 +71,7 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHA (output) COMPLEX*16 array, dimension (N)
+*
* BETA (output) COMPLEX*16 array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
* generalized eigenvalues.
diff --git a/SRC/zggevx.f b/SRC/zggevx.f
index eb621968..f3e53898 100644
--- a/SRC/zggevx.f
+++ b/SRC/zggevx.f
@@ -102,6 +102,7 @@
* The leading dimension of B. LDB >= max(1,N).
*
* ALPHA (output) COMPLEX*16 array, dimension (N)
+*
* BETA (output) COMPLEX*16 array, dimension (N)
* On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the generalized
* eigenvalues.
@@ -138,6 +139,7 @@
* if JOBVR = 'V', LDVR >= N.
*
* ILO (output) INTEGER
+*
* IHI (output) INTEGER
* ILO and IHI are integer values such that on exit
* A(i,j) = 0 and B(i,j) = 0 if i > j and
@@ -245,6 +247,8 @@
* For further explanation of the reciprocal condition numbers RCONDE
* and RCONDV, see section 4.11 of LAPACK User's Guide.
*
+* =====================================================================
+*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
PARAMETER ( ZERO = 0.0D+0, ONE = 1.0D+0 )
diff --git a/SRC/zhbevx.f b/SRC/zhbevx.f
index b3eea5eb..1a4c831c 100644
--- a/SRC/zhbevx.f
+++ b/SRC/zhbevx.f
@@ -75,12 +75,14 @@
* LDQ >= max(1,N).
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/zheevr.f b/SRC/zheevr.f
index 44e3554e..d142ea26 100644
--- a/SRC/zheevr.f
+++ b/SRC/zheevr.f
@@ -116,12 +116,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/zheevx.f b/SRC/zheevx.f
index eb64770e..796e2bb9 100644
--- a/SRC/zheevx.f
+++ b/SRC/zheevx.f
@@ -61,12 +61,14 @@
* The leading dimension of the array A. LDA >= max(1,N).
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/zherfsx.f b/SRC/zherfsx.f
index 6115ba00..12a63765 100644
--- a/SRC/zherfsx.f
+++ b/SRC/zherfsx.f
@@ -27,7 +27,7 @@
$ ERR_BNDS_NORM( NRHS, * ),
$ ERR_BNDS_COMP( NRHS, * )
*
-* Purpose
+* Purpose
* =======
*
* ZHERFSX improves the computed solution to a system of linear
@@ -42,8 +42,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -295,7 +295,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zhesvxx.f b/SRC/zhesvxx.f
index 09337195..88e4d5d2 100644
--- a/SRC/zhesvxx.f
+++ b/SRC/zhesvxx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZHESVXX uses the diagonal pivoting factorization to compute the
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what ZHESVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -94,8 +94,8 @@
* diag(R) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -387,7 +387,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zhgeqz.f b/SRC/zhgeqz.f
index 123146de..ced2f48d 100644
--- a/SRC/zhgeqz.f
+++ b/SRC/zhgeqz.f
@@ -89,6 +89,7 @@
* The order of the matrices H, T, Q, and Z. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* ILO and IHI mark the rows and columns of H which are in
* Hessenberg form. It is assumed that A is already upper
diff --git a/SRC/zhpevx.f b/SRC/zhpevx.f
index 01e53101..40a26f5c 100644
--- a/SRC/zhpevx.f
+++ b/SRC/zhpevx.f
@@ -61,12 +61,14 @@
* corresponding elements of A.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* If RANGE='V', the lower and upper bounds of the interval to
* be searched for eigenvalues. VL < VU.
* Not referenced if RANGE = 'A' or 'I'.
*
* IL (input) INTEGER
+*
* IU (input) INTEGER
* If RANGE='I', the indices (in ascending order) of the
* smallest and largest eigenvalues to be returned.
diff --git a/SRC/zhseqr.f b/SRC/zhseqr.f
index d3aae7a4..c965fd46 100644
--- a/SRC/zhseqr.f
+++ b/SRC/zhseqr.f
@@ -12,7 +12,7 @@
* .. Array Arguments ..
COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
* ..
-* Purpose
+* Purpose
* =======
*
* ZHSEQR computes the eigenvalues of a Hessenberg matrix H
@@ -25,8 +25,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* JOB (input) CHARACTER*1
* = 'E': compute eigenvalues only;
@@ -147,7 +147,7 @@
* If INFO .GT. 0 and COMPZ = 'N', then Z is not
* accessed.
*
-* ================================================================
+* ================================================================
* Default values supplied by
* ILAENV(ISPEC,'ZHSEQR',JOB(:1)//COMPZ(:1),N,ILO,IHI,LWORK).
* It is suggested that these defaults be adjusted in order
@@ -199,12 +199,12 @@
* for ISPEC=16 is 0. Otherwise the default for
* ISPEC=16 is 2.
*
-* ================================================================
+* ================================================================
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -215,7 +215,7 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/zla_heamv.f b/SRC/zla_heamv.f
index 31946f44..fea569c3 100644
--- a/SRC/zla_heamv.f
+++ b/SRC/zla_heamv.f
@@ -60,11 +60,11 @@
* N must be at least zero.
* Unchanged on exit.
*
-* ALPHA - DOUBLE PRECISION .
+* ALPHA (input) DOUBLE PRECISION .
* On entry, ALPHA specifies the scalar alpha.
* Unchanged on exit.
*
-* A - COMPLEX*16 array of DIMENSION ( LDA, n ).
+* A (input) COMPLEX*16 array, DIMENSION ( LDA, n ).
* Before entry, the leading m by n part of the array A must
* contain the matrix of coefficients.
* Unchanged on exit.
@@ -75,7 +75,7 @@
* max( 1, n ).
* Unchanged on exit.
*
-* X - COMPLEX*16 array of DIMENSION at least
+* X (input) COMPLEX*16 array, DIMENSION at least
* ( 1 + ( n - 1 )*abs( INCX ) )
* Before entry, the incremented array X must contain the
* vector x.
@@ -86,7 +86,7 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
-* BETA - DOUBLE PRECISION .
+* BETA (input) DOUBLE PRECISION .
* On entry, BETA specifies the scalar beta. When BETA is
* supplied as zero then Y need not be set on input.
* Unchanged on exit.
diff --git a/SRC/zla_lin_berr.f b/SRC/zla_lin_berr.f
index 26ba3967..5a710171 100644
--- a/SRC/zla_lin_berr.f
+++ b/SRC/zla_lin_berr.f
@@ -27,6 +27,9 @@
* where abs(Z) is the componentwise absolute value of the matrix
* or vector Z.
*
+* Arguments
+* =========
+*
* N (input) INTEGER
* The number of linear equations, i.e., the order of the
* matrix A. N >= 0.
diff --git a/SRC/zla_syamv.f b/SRC/zla_syamv.f
index abcd0212..c086fa10 100644
--- a/SRC/zla_syamv.f
+++ b/SRC/zla_syamv.f
@@ -61,11 +61,11 @@
* N must be at least zero.
* Unchanged on exit.
*
-* ALPHA - DOUBLE PRECISION .
+* ALPHA (input) DOUBLE PRECISION .
* On entry, ALPHA specifies the scalar alpha.
* Unchanged on exit.
*
-* A - COMPLEX*16 array of DIMENSION ( LDA, n ).
+* A (input) COMPLEX*16 array, DIMENSION ( LDA, n ).
* Before entry, the leading m by n part of the array A must
* contain the matrix of coefficients.
* Unchanged on exit.
@@ -76,7 +76,7 @@
* max( 1, n ).
* Unchanged on exit.
*
-* X - COMPLEX*16 array of DIMENSION at least
+* X (input) COMPLEX*16 array, DIMENSION at least
* ( 1 + ( n - 1 )*abs( INCX ) )
* Before entry, the incremented array X must contain the
* vector x.
@@ -87,7 +87,7 @@
* X. INCX must not be zero.
* Unchanged on exit.
*
-* BETA - DOUBLE PRECISION .
+* BETA (input) DOUBLE PRECISION .
* On entry, BETA specifies the scalar beta. When BETA is
* supplied as zero then Y need not be set on input.
* Unchanged on exit.
diff --git a/SRC/zla_wwaddw.f b/SRC/zla_wwaddw.f
index 9ee9a396..50158f89 100644
--- a/SRC/zla_wwaddw.f
+++ b/SRC/zla_wwaddw.f
@@ -17,7 +17,7 @@
COMPLEX*16 X( * ), Y( * ), W( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZLA_WWADDW adds a vector W into a doubled-single vector (X, Y).
@@ -25,8 +25,8 @@
* This works for all extant IBM's hex and binary floating point
* arithmetics, but not for decimal.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* N (input) INTEGER
* The length of vectors X, Y, and W.
diff --git a/SRC/zlacn2.f b/SRC/zlacn2.f
index b3564089..5f0bd742 100644
--- a/SRC/zlacn2.f
+++ b/SRC/zlacn2.f
@@ -52,7 +52,7 @@
* ISAVE is used to save variables between calls to ZLACN2
*
* Further Details
-* ======= =======
+* ===============
*
* Contributed by Nick Higham, University of Manchester.
* Originally named CONEST, dated March 16, 1988.
diff --git a/SRC/zlacon.f b/SRC/zlacon.f
index d49f1574..9ab482d7 100644
--- a/SRC/zlacon.f
+++ b/SRC/zlacon.f
@@ -48,7 +48,7 @@
* On the final return from ZLACON, KASE will again be 0.
*
* Further Details
-* ======= =======
+* ===============
*
* Contributed by Nick Higham, University of Manchester.
* Originally named CONEST, dated March 16, 1988.
diff --git a/SRC/zlacrt.f b/SRC/zlacrt.f
index 21bc9ba8..bd3b1691 100644
--- a/SRC/zlacrt.f
+++ b/SRC/zlacrt.f
@@ -44,6 +44,7 @@
* The increment between successive values of CY. INCY <> 0.
*
* C (input) COMPLEX*16
+*
* S (input) COMPLEX*16
* C and S define the matrix
* [ C S ].
diff --git a/SRC/zladiv.f b/SRC/zladiv.f
index 1e68c364..eff0ccd4 100644
--- a/SRC/zladiv.f
+++ b/SRC/zladiv.f
@@ -20,6 +20,7 @@
* =========
*
* X (input) COMPLEX*16
+*
* Y (input) COMPLEX*16
* The complex scalars X and Y.
*
diff --git a/SRC/zlaesy.f b/SRC/zlaesy.f
index 12d0904f..e56bfebf 100644
--- a/SRC/zlaesy.f
+++ b/SRC/zlaesy.f
@@ -52,6 +52,7 @@
* value THRESH (set below).
*
* CS1 (output) COMPLEX*16
+*
* SN1 (output) COMPLEX*16
* If EVSCAL .NE. 0, ( CS1, SN1 ) is the unit right eigenvector
* for RT1.
diff --git a/SRC/zlaev2.f b/SRC/zlaev2.f
index 6b647070..1f31ff7b 100644
--- a/SRC/zlaev2.f
+++ b/SRC/zlaev2.f
@@ -43,6 +43,7 @@
* The eigenvalue of smaller absolute value.
*
* CS1 (output) DOUBLE PRECISION
+*
* SN1 (output) COMPLEX*16
* The vector (CS1, SN1) is a unit right eigenvector for RT1.
*
diff --git a/SRC/zlags2.f b/SRC/zlags2.f
index 2bae869b..6daa241b 100644
--- a/SRC/zlags2.f
+++ b/SRC/zlags2.f
@@ -54,26 +54,33 @@
* = .FALSE.: the input matrices A and B are lower triangular.
*
* A1 (input) DOUBLE PRECISION
+*
* A2 (input) COMPLEX*16
+*
* A3 (input) DOUBLE PRECISION
* On entry, A1, A2 and A3 are elements of the input 2-by-2
* upper (lower) triangular matrix A.
*
* B1 (input) DOUBLE PRECISION
+*
* B2 (input) COMPLEX*16
+*
* B3 (input) DOUBLE PRECISION
* On entry, B1, B2 and B3 are elements of the input 2-by-2
* upper (lower) triangular matrix B.
*
* CSU (output) DOUBLE PRECISION
+*
* SNU (output) COMPLEX*16
* The desired unitary matrix U.
*
* CSV (output) DOUBLE PRECISION
+*
* SNV (output) COMPLEX*16
* The desired unitary matrix V.
*
* CSQ (output) DOUBLE PRECISION
+*
* SNQ (output) COMPLEX*16
* The desired unitary matrix Q.
*
diff --git a/SRC/zlahqr.f b/SRC/zlahqr.f
index d6216d98..84c53ba8 100644
--- a/SRC/zlahqr.f
+++ b/SRC/zlahqr.f
@@ -13,16 +13,16 @@
COMPLEX*16 H( LDH, * ), W( * ), Z( LDZ, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* ZLAHQR is an auxiliary routine called by CHSEQR to update the
* eigenvalues and Schur decomposition already computed by CHSEQR, by
* dealing with the Hessenberg submatrix in rows and columns ILO to
* IHI.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -36,6 +36,7 @@
* The order of the matrix H. N >= 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows and
* columns IHI+1:N, and that H(ILO,ILO-1) = 0 (unless ILO = 1).
@@ -62,6 +63,7 @@
* of the Schur form returned in H, with W(i) = H(i,i).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE..
@@ -102,8 +104,8 @@
* where U is the orthogonal matrix in (*)
* (regardless of the value of WANTT.)
*
-* Further Details
-* ===============
+* Further Details
+* ===============
*
* 02-96 Based on modifications by
* David Day, Sandia National Laboratory, USA
@@ -115,7 +117,7 @@
* (2) adopts the more conservative Ahues & Tisseur stopping
* criterion (LAWN 122, 1997).
*
-* =========================================================
+* =========================================================
*
* .. Parameters ..
INTEGER ITMAX
diff --git a/SRC/zlaqr0.f b/SRC/zlaqr0.f
index 464d40f1..b55d1303 100644
--- a/SRC/zlaqr0.f
+++ b/SRC/zlaqr0.f
@@ -13,8 +13,8 @@
COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
* ..
*
-* Purpose
-* =======
+* Purpose
+* =======
*
* ZLAQR0 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
@@ -26,8 +26,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -134,12 +134,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -150,7 +151,8 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/zlaqr1.f b/SRC/zlaqr1.f
index ba62ccd9..a12c3d82 100644
--- a/SRC/zlaqr1.f
+++ b/SRC/zlaqr1.f
@@ -12,6 +12,9 @@
COMPLEX*16 H( LDH, * ), V( * )
* ..
*
+* Purpose
+* =======
+*
* Given a 2-by-2 or 3-by-3 matrix H, ZLAQR1 sets v to a
* scalar multiple of the first column of the product
*
@@ -22,6 +25,8 @@
* This is useful for starting double implicit shift bulges
* in the QR algorithm.
*
+* Arguments
+* =========
*
* N (input) integer
* Order of the matrix H. N must be either 2 or 3.
@@ -40,12 +45,14 @@
* A scalar multiple of the first column of the
* matrix K in (*).
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
*
* .. Parameters ..
COMPLEX*16 ZERO
diff --git a/SRC/zlaqr2.f b/SRC/zlaqr2.f
index 2b900ab5..a4ac8186 100644
--- a/SRC/zlaqr2.f
+++ b/SRC/zlaqr2.f
@@ -16,14 +16,15 @@
$ WORK( * ), WV( LDWV, * ), Z( LDZ, * )
* ..
*
-* This subroutine is identical to ZLAQR3 except that it avoids
-* recursion by calling ZLAHQR instead of ZLAQR4.
+* Purpose
+* =======
*
+* ZLAQR2 is identical to ZLAQR3 except that it avoids
+* recursion by calling ZLAHQR instead of ZLAQR4.
*
-* ******************************************************************
* Aggressive early deflation:
*
-* This subroutine accepts as input an upper Hessenberg matrix
+* ZLAQR2 accepts as input an upper Hessenberg matrix
* H and performs an unitary similarity transformation
* designed to detect and deflate fully converged eigenvalues from
* a trailing principal submatrix. On output H has been over-
@@ -32,7 +33,10 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+*
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the triangular Schur factor may be
@@ -147,12 +151,15 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
COMPLEX*16 ZERO, ONE
PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ),
diff --git a/SRC/zlaqr3.f b/SRC/zlaqr3.f
index 2a10ac9f..79a1fff4 100644
--- a/SRC/zlaqr3.f
+++ b/SRC/zlaqr3.f
@@ -16,10 +16,12 @@
$ WORK( * ), WV( LDWV, * ), Z( LDZ, * )
* ..
*
-* ******************************************************************
+* Purpose
+* =======
+*
* Aggressive early deflation:
*
-* This subroutine accepts as input an upper Hessenberg matrix
+* ZLAQR3 accepts as input an upper Hessenberg matrix
* H and performs an unitary similarity transformation
* designed to detect and deflate fully converged eigenvalues from
* a trailing principal submatrix. On output H has been over-
@@ -28,7 +30,10 @@
* hoped that the final version of H has many zero subdiagonal
* entries.
*
-* ******************************************************************
+*
+* Arguments
+* =========
+*
* WANTT (input) LOGICAL
* If .TRUE., then the Hessenberg matrix H is fully updated
* so that the triangular Schur factor may be
@@ -73,6 +78,7 @@
* subroutine. N .LE. LDH
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
@@ -143,12 +149,15 @@
* in WORK(1). No error message related to LWORK is issued
* by XERBLA. Neither H nor Z are accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
COMPLEX*16 ZERO, ONE
PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ),
diff --git a/SRC/zlaqr4.f b/SRC/zlaqr4.f
index b5209e8d..962817cf 100644
--- a/SRC/zlaqr4.f
+++ b/SRC/zlaqr4.f
@@ -13,16 +13,16 @@
COMPLEX*16 H( LDH, * ), W( * ), WORK( * ), Z( LDZ, * )
* ..
*
-* This subroutine implements one level of recursion for ZLAQR0.
+* Purpose
+* =======
+*
+* ZLAQR4 implements one level of recursion for ZLAQR0.
* It is a complete implementation of the small bulge multi-shift
* QR algorithm. It may be called by ZLAQR0 and, for large enough
* deflation window size, it may be called by ZLAQR3. This
* subroutine is identical to ZLAQR0 except that it calls ZLAQR2
* instead of ZLAQR3.
*
-* Purpose
-* =======
-*
* ZLAQR4 computes the eigenvalues of a Hessenberg matrix H
* and, optionally, the matrices T and Z from the Schur decomposition
* H = Z T Z**H, where T is an upper triangular matrix (the
@@ -33,8 +33,8 @@
* of a matrix A which has been reduced to the Hessenberg form H
* by the unitary matrix Q: A = Q*H*Q**H = (QZ)*H*(QZ)**H.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* WANTT (input) LOGICAL
* = .TRUE. : the full Schur form T is required;
@@ -48,6 +48,7 @@
* The order of the matrix H. N .GE. 0.
*
* ILO (input) INTEGER
+*
* IHI (input) INTEGER
* It is assumed that H is already upper triangular in rows
* and columns 1:ILO-1 and IHI+1:N and, if ILO.GT.1,
@@ -141,12 +142,13 @@
* If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
* accessed.
*
-* ================================================================
+* Further Details
+* ===============
+*
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
* References:
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
* Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
@@ -157,7 +159,8 @@
* Algorithm Part II: Aggressive Early Deflation, SIAM Journal
* of Matrix Analysis, volume 23, pages 948--973, 2002.
*
-* ================================================================
+* ================================================================
+*
* .. Parameters ..
*
* ==== Matrices of order NTINY or smaller must be processed by
diff --git a/SRC/zlaqr5.f b/SRC/zlaqr5.f
index 15c8b113..9e7effa8 100644
--- a/SRC/zlaqr5.f
+++ b/SRC/zlaqr5.f
@@ -16,9 +16,15 @@
$ WH( LDWH, * ), WV( LDWV, * ), Z( LDZ, * )
* ..
*
-* This auxiliary subroutine called by ZLAQR0 performs a
+* Purpose
+* =======
+*
+* ZLAQR5, called by ZLAQR0, performs a
* single small-bulge multi-shift QR sweep.
*
+* Arguments
+* =========
+*
* WANTT (input) logical scalar
* WANTT = .true. if the triangular Schur factor
* is being computed. WANTT is set to .false. otherwise.
@@ -45,6 +51,7 @@
* subroutine operates.
*
* KTOP (input) integer scalar
+*
* KBOT (input) integer scalar
* These are the first and last rows and columns of an
* isolated diagonal block upon which the QR sweep is to be
@@ -72,6 +79,7 @@
* calling procedure. LDH.GE.MAX(1,N).
*
* ILOZ (input) INTEGER
+*
* IHIZ (input) INTEGER
* Specify the rows of Z to which transformations must be
* applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N
@@ -120,12 +128,12 @@
* LDWV is the leading dimension of WV as declared in the
* in the calling subroutine. LDWV.GE.NV.
*
-* ================================================================
+* ================================================================
* Based on contributions by
* Karen Braman and Ralph Byers, Department of Mathematics,
* University of Kansas, USA
*
-* ================================================================
+* ================================================================
* Reference:
*
* K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
@@ -133,7 +141,7 @@
* Level 3 Performance, SIAM Journal of Matrix Analysis,
* volume 23, pages 929--947, 2002.
*
-* ================================================================
+* ================================================================
* .. Parameters ..
COMPLEX*16 ZERO, ONE
PARAMETER ( ZERO = ( 0.0d0, 0.0d0 ),
diff --git a/SRC/zlarf.f b/SRC/zlarf.f
index cdfd2225..f29d6da4 100644
--- a/SRC/zlarf.f
+++ b/SRC/zlarf.f
@@ -93,8 +93,8 @@
LASTV = 0
LASTC = 0
IF( TAU.NE.ZERO ) THEN
-! Set up variables for scanning V. LASTV begins pointing to the end
-! of V.
+* Set up variables for scanning V. LASTV begins pointing to the end
+* of V.
IF( APPLYLEFT ) THEN
LASTV = M
ELSE
@@ -105,21 +105,21 @@
ELSE
I = 1
END IF
-! Look for the last non-zero row in V.
+* Look for the last non-zero row in V.
DO WHILE( LASTV.GT.0 .AND. V( I ).EQ.ZERO )
LASTV = LASTV - 1
I = I - INCV
END DO
IF( APPLYLEFT ) THEN
-! Scan for the last non-zero column in C(1:lastv,:).
+* Scan for the last non-zero column in C(1:lastv,:).
LASTC = ILAZLC(LASTV, N, C, LDC)
ELSE
-! Scan for the last non-zero row in C(:,1:lastv).
+* Scan for the last non-zero row in C(:,1:lastv).
LASTC = ILAZLR(M, LASTV, C, LDC)
END IF
END IF
-! Note that lastc.eq.0 renders the BLAS operations null; no special
-! case is needed at this level.
+* Note that lastc.eq.0 renders the BLAS operations null; no special
+* case is needed at this level.
IF( APPLYLEFT ) THEN
*
* Form H * C
diff --git a/SRC/zlargv.f b/SRC/zlargv.f
index ec270bce..f097cb13 100644
--- a/SRC/zlargv.f
+++ b/SRC/zlargv.f
@@ -57,7 +57,7 @@
* The increment between elements of C. INCC > 0.
*
* Further Details
-* ======= =======
+* ===============
*
* 6-6-96 - Modified with a new algorithm by W. Kahan and J. Demmel
*
diff --git a/SRC/zlarrv.f b/SRC/zlarrv.f
index dfb3b239..395a0f80 100644
--- a/SRC/zlarrv.f
+++ b/SRC/zlarrv.f
@@ -35,6 +35,7 @@
* The order of the matrix. N >= 0.
*
* VL (input) DOUBLE PRECISION
+*
* VU (input) DOUBLE PRECISION
* Lower and upper bounds of the interval that contains the desired
* eigenvalues. VL < VU. Needed to compute gaps on the left or right
@@ -64,6 +65,7 @@
* The total number of input eigenvalues. 0 <= M <= N.
*
* DOL (input) INTEGER
+*
* DOU (input) INTEGER
* If the user wants to compute only selected eigenvectors from all
* the eigenvalues supplied, he can specify an index range DOL:DOU.
@@ -77,6 +79,7 @@
* MINRGP (input) DOUBLE PRECISION
*
* RTOL1 (input) DOUBLE PRECISION
+*
* RTOL2 (input) DOUBLE PRECISION
* Parameters for bisection.
* An interval [LEFT,RIGHT] has converged if
diff --git a/SRC/zlascl.f b/SRC/zlascl.f
index e9afdfd9..f69159b9 100644
--- a/SRC/zlascl.f
+++ b/SRC/zlascl.f
@@ -50,6 +50,7 @@
* 'Q' or 'Z'.
*
* CFROM (input) DOUBLE PRECISION
+*
* CTO (input) DOUBLE PRECISION
* The matrix A is multiplied by CTO/CFROM. A(I,J) is computed
* without over/underflow if the final result CTO*A(I,J)/CFROM
diff --git a/SRC/zlatbs.f b/SRC/zlatbs.f
index 7f467df0..80fb1099 100644
--- a/SRC/zlatbs.f
+++ b/SRC/zlatbs.f
@@ -101,7 +101,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, ZTBSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/zlatps.f b/SRC/zlatps.f
index 0d70f5a3..3e47d6c1 100644
--- a/SRC/zlatps.f
+++ b/SRC/zlatps.f
@@ -95,7 +95,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, ZTPSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/zlatrs.f b/SRC/zlatrs.f
index 26ad436b..19daca18 100644
--- a/SRC/zlatrs.f
+++ b/SRC/zlatrs.f
@@ -100,7 +100,7 @@
* < 0: if INFO = -k, the k-th argument had an illegal value
*
* Further Details
-* ======= =======
+* ===============
*
* A rough bound on x is computed; if that is less than overflow, ZTRSV
* is called, otherwise, specific code is used which checks for possible
diff --git a/SRC/zporfsx.f b/SRC/zporfsx.f
index 04ff87aa..553b3991 100644
--- a/SRC/zporfsx.f
+++ b/SRC/zporfsx.f
@@ -27,7 +27,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZPORFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -290,7 +290,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zposvxx.f b/SRC/zposvxx.f
index a6a25031..155278e9 100644
--- a/SRC/zposvxx.f
+++ b/SRC/zposvxx.f
@@ -27,7 +27,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZPOSVXX uses the Cholesky factorization A = U**T*U or A = L*L**T
@@ -50,8 +50,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what ZPOSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -90,8 +90,8 @@
* diag(S) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -381,7 +381,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zsyconv.f b/SRC/zsyconv.f
index 43cae75c..91752637 100644
--- a/SRC/zsyconv.f
+++ b/SRC/zsyconv.f
@@ -1,7 +1,6 @@
SUBROUTINE ZSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
*
* -- LAPACK PROTOTYPE routine (version 3.2.2) --
-*
* -- Written by Julie Langou of the Univ. of TN --
* May 2010
*
@@ -32,7 +31,7 @@
* as an upper or lower triangular matrix.
* = 'U': Upper triangular, form is A = U*D*U**T;
* = 'L': Lower triangular, form is A = L*D*L**T.
-*
+*
* WAY (input) CHARACTER*1
* = 'C': Convert
* = 'R': Revert
diff --git a/SRC/zsyrfsx.f b/SRC/zsyrfsx.f
index 95213ec2..701cd55c 100644
--- a/SRC/zsyrfsx.f
+++ b/SRC/zsyrfsx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZSYRFSX improves the computed solution to a system of linear
@@ -43,8 +43,8 @@
* below. In this case, the solution and error bounds returned are
* for the original unequilibrated system.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -296,7 +296,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/zsysvxx.f b/SRC/zsysvxx.f
index a2bb288a..33b90b70 100644
--- a/SRC/zsysvxx.f
+++ b/SRC/zsysvxx.f
@@ -28,7 +28,7 @@
$ ERR_BNDS_COMP( NRHS, * ), RWORK( * )
* ..
*
-* Purpose
+* Purpose
* =======
*
* ZSYSVXX uses the diagonal pivoting factorization to compute the
@@ -51,8 +51,8 @@
* user-provided factorizations and equilibration factors if they
* differ from what ZSYSVXX would itself produce.
*
-* Description
-* ===========
+* Description
+* ===========
*
* The following steps are performed:
*
@@ -94,8 +94,8 @@
* diag(R) so that it solves the original system before
* equilibration.
*
-* Arguments
-* =========
+* Arguments
+* =========
*
* Some optional parameters are bundled in the PARAMS array. These
* settings determine how refinement is performed, but often the
@@ -391,7 +391,7 @@
* about all of the right-hand sides check ERR_BNDS_NORM or
* ERR_BNDS_COMP.
*
-* ==================================================================
+* ==================================================================
*
* .. Parameters ..
DOUBLE PRECISION ZERO, ONE
diff --git a/SRC/ztgexc.f b/SRC/ztgexc.f
index ca26a797..e534f64f 100644
--- a/SRC/ztgexc.f
+++ b/SRC/ztgexc.f
@@ -79,6 +79,7 @@
* If WANTZ = .TRUE., LDZ >= N.
*
* IFST (input) INTEGER
+*
* ILST (input/output) INTEGER
* Specify the reordering of the diagonal blocks of (A, B).
* The block with row index IFST is moved to row ILST, by a