Correct Warning detected during Doxygen Generation.
authorjulie <julielangou@users.noreply.github.com>
Mon, 31 Oct 2011 22:21:11 +0000 (22:21 +0000)
committerjulie <julielangou@users.noreply.github.com>
Mon, 31 Oct 2011 22:21:11 +0000 (22:21 +0000)
Now each routine should have the correct list of arguments.
This allowed to detect and fix problems in parameter description of many routines.

468 files changed:
BLAS/SRC/cgbmv.f
BLAS/SRC/cgemm.f
BLAS/SRC/cgemv.f
BLAS/SRC/chbmv.f
BLAS/SRC/chemm.f
BLAS/SRC/chemv.f
BLAS/SRC/cher.f
BLAS/SRC/cher2.f
BLAS/SRC/cher2k.f
BLAS/SRC/cherk.f
BLAS/SRC/chpmv.f
BLAS/SRC/chpr.f
BLAS/SRC/chpr2.f
BLAS/SRC/csymm.f
BLAS/SRC/csyr2k.f
BLAS/SRC/csyrk.f
BLAS/SRC/ctbmv.f
BLAS/SRC/ctbsv.f
BLAS/SRC/ctpmv.f
BLAS/SRC/ctpsv.f
BLAS/SRC/ctrmm.f
BLAS/SRC/ctrmv.f
BLAS/SRC/ctrsm.f
BLAS/SRC/ctrsv.f
BLAS/SRC/dgbmv.f
BLAS/SRC/dgemm.f
BLAS/SRC/dgemv.f
BLAS/SRC/dsbmv.f
BLAS/SRC/dsdot.f
BLAS/SRC/dspmv.f
BLAS/SRC/dspr.f
BLAS/SRC/dspr2.f
BLAS/SRC/dsymm.f
BLAS/SRC/dsymv.f
BLAS/SRC/dsyr.f
BLAS/SRC/dsyr2.f
BLAS/SRC/dsyr2k.f
BLAS/SRC/dsyrk.f
BLAS/SRC/dtbmv.f
BLAS/SRC/dtbsv.f
BLAS/SRC/dtpmv.f
BLAS/SRC/dtpsv.f
BLAS/SRC/dtrmm.f
BLAS/SRC/dtrmv.f
BLAS/SRC/dtrsm.f
BLAS/SRC/dtrsv.f
BLAS/SRC/sgbmv.f
BLAS/SRC/sgemm.f
BLAS/SRC/sgemv.f
BLAS/SRC/sger.f
BLAS/SRC/ssbmv.f
BLAS/SRC/sspmv.f
BLAS/SRC/sspr.f
BLAS/SRC/sspr2.f
BLAS/SRC/ssymm.f
BLAS/SRC/ssymv.f
BLAS/SRC/ssyr.f
BLAS/SRC/ssyr2.f
BLAS/SRC/ssyr2k.f
BLAS/SRC/ssyrk.f
BLAS/SRC/stbmv.f
BLAS/SRC/stbsv.f
BLAS/SRC/stpmv.f
BLAS/SRC/stpsv.f
BLAS/SRC/strmm.f
BLAS/SRC/strmv.f
BLAS/SRC/strsm.f
BLAS/SRC/strsv.f
BLAS/SRC/zgbmv.f
BLAS/SRC/zgemm.f
BLAS/SRC/zgemv.f
BLAS/SRC/zhbmv.f
BLAS/SRC/zhemm.f
BLAS/SRC/zhemv.f
BLAS/SRC/zher.f
BLAS/SRC/zher2.f
BLAS/SRC/zher2k.f
BLAS/SRC/zherk.f
BLAS/SRC/zhpmv.f
BLAS/SRC/zhpr.f
BLAS/SRC/zhpr2.f
BLAS/SRC/zsymm.f
BLAS/SRC/zsyr2k.f
BLAS/SRC/zsyrk.f
BLAS/SRC/ztbmv.f
BLAS/SRC/ztbsv.f
BLAS/SRC/ztpmv.f
BLAS/SRC/ztpsv.f
BLAS/SRC/ztrmm.f
BLAS/SRC/ztrmv.f
BLAS/SRC/ztrsm.f
BLAS/SRC/ztrsv.f
DOCS/Doxyfile
INSTALL/dlamchf77.f
INSTALL/slamchf77.f
SRC/cbbcsd.f
SRC/cgbsv.f
SRC/cgebal.f
SRC/cgebd2.f
SRC/cgebrd.f
SRC/cgees.f
SRC/cgehd2.f
SRC/cgehrd.f
SRC/cgelq2.f
SRC/cgelqf.f
SRC/cgeql2.f
SRC/cgeqlf.f
SRC/cgeqr2.f
SRC/cgeqr2p.f
SRC/cgeqrt.f
SRC/cgeqrt2.f
SRC/cgeqrt3.f
SRC/cgerqf.f
SRC/cgesv.f
SRC/cggglm.f
SRC/cgghrd.f
SRC/cggqrf.f
SRC/cggrqf.f
SRC/cggsvd.f
SRC/cggsvp.f
SRC/chbgvx.f
SRC/cheequb.f
SRC/chegvx.f
SRC/chesvxx.f
SRC/chetd2.f
SRC/chetrd.f
SRC/chpgvx.f
SRC/chptrd.f
SRC/chseqr.f
SRC/cla_gbrfsx_extended.f
SRC/cla_gerfsx_extended.f
SRC/cla_herpvgrw.f
SRC/cla_lin_berr.f
SRC/cla_syrpvgrw.f
SRC/clabrd.f
SRC/clacn2.f
SRC/clacon.f
SRC/clagtm.f
SRC/clahr2.f
SRC/clahrd.f
SRC/claqr0.f
SRC/claqr1.f
SRC/claqr4.f
SRC/clarfb.f
SRC/clarft.f
SRC/clarrv.f
SRC/clartg.f
SRC/clarzt.f
SRC/clascl.f
SRC/clatrd.f
SRC/cpbstf.f
SRC/crot.f
SRC/cstegr.f
SRC/cstemr.f
SRC/csyconv.f
SRC/csyequb.f
SRC/ctgsen.f
SRC/ctgsja.f
SRC/ctpmqrt.f
SRC/ctpqrt.f
SRC/ctpqrt2.f
SRC/ctprfb.f
SRC/ctrexc.f
SRC/cuncsd.f
SRC/cunghr.f
SRC/cunmhr.f
SRC/dbbcsd.f
SRC/dgbsv.f
SRC/dgebal.f
SRC/dgebd2.f
SRC/dgebrd.f
SRC/dgees.f
SRC/dgehd2.f
SRC/dgehrd.f
SRC/dgejsv.f
SRC/dgelq2.f
SRC/dgelqf.f
SRC/dgeql2.f
SRC/dgeqlf.f
SRC/dgeqr2.f
SRC/dgeqr2p.f
SRC/dgeqrt.f
SRC/dgeqrt2.f
SRC/dgeqrt3.f
SRC/dgerqf.f
SRC/dgesv.f
SRC/dggglm.f
SRC/dgghrd.f
SRC/dggqrf.f
SRC/dggrqf.f
SRC/dggsvd.f
SRC/dggsvp.f
SRC/dhsein.f
SRC/dhseqr.f
SRC/dla_gbrfsx_extended.f
SRC/dla_gerfsx_extended.f
SRC/dla_lin_berr.f
SRC/dla_syrpvgrw.f
SRC/dlabrd.f
SRC/dlacon.f
SRC/dlaed3.f
SRC/dlagtm.f
SRC/dlahr2.f
SRC/dlahrd.f
SRC/dlaqr0.f
SRC/dlaqr4.f
SRC/dlarfb.f
SRC/dlarft.f
SRC/dlarre.f
SRC/dlarrv.f
SRC/dlarzt.f
SRC/dlascl.f
SRC/dlasq4.f
SRC/dlatrd.f
SRC/dorcsd.f
SRC/dorghr.f
SRC/dormhr.f
SRC/dpbstf.f
SRC/dpptrf.f
SRC/dsbgvx.f
SRC/dsgesv.f
SRC/dspgvx.f
SRC/dsptrd.f
SRC/dstebz.f
SRC/dstegr.f
SRC/dstemr.f
SRC/dsyconv.f
SRC/dsyequb.f
SRC/dsytd2.f
SRC/dsytrd.f
SRC/dtgsen.f
SRC/dtgsja.f
SRC/dtpmqrt.f
SRC/dtpqrt.f
SRC/dtpqrt2.f
SRC/dtprfb.f
SRC/dtrexc.f
SRC/dtrsen.f
SRC/sbbcsd.f
SRC/sgbsv.f
SRC/sgebal.f
SRC/sgebd2.f
SRC/sgebrd.f
SRC/sgehd2.f
SRC/sgehrd.f
SRC/sgejsv.f
SRC/sgelq2.f
SRC/sgelqf.f
SRC/sgeql2.f
SRC/sgeqlf.f
SRC/sgeqr2.f
SRC/sgeqr2p.f
SRC/sgeqrt.f
SRC/sgeqrt2.f
SRC/sgeqrt3.f
SRC/sgerqf.f
SRC/sgesv.f
SRC/sggglm.f
SRC/sgghrd.f
SRC/sggqrf.f
SRC/sggrqf.f
SRC/sggsvd.f
SRC/sggsvp.f
SRC/shsein.f
SRC/shseqr.f
SRC/sla_gbrfsx_extended.f
SRC/sla_gerfsx_extended.f
SRC/sla_lin_berr.f
SRC/sla_syrpvgrw.f
SRC/slabrd.f
SRC/slacon.f
SRC/slaed3.f
SRC/slagtm.f
SRC/slahr2.f
SRC/slahrd.f
SRC/slaqr0.f
SRC/slaqr4.f
SRC/slarfb.f
SRC/slarft.f
SRC/slarrf.f
SRC/slarrv.f
SRC/slarzt.f
SRC/slascl.f
SRC/slasq2.f
SRC/slasq4.f
SRC/slatbs.f
SRC/slatps.f
SRC/slatrd.f
SRC/slatrs.f
SRC/sorcsd.f
SRC/sorghr.f
SRC/sormhr.f
SRC/spbstf.f
SRC/spptrf.f
SRC/ssbgvx.f
SRC/sspgvx.f
SRC/ssptrd.f
SRC/sstebz.f
SRC/sstegr.f
SRC/sstemr.f
SRC/ssyconv.f
SRC/ssyequb.f
SRC/ssytd2.f
SRC/ssytrd.f
SRC/stgsen.f
SRC/stgsja.f
SRC/stpmqrt.f
SRC/stpqrt.f
SRC/stpqrt2.f
SRC/stprfb.f
SRC/strexc.f
SRC/strsen.f
SRC/zbbcsd.f
SRC/zcgesv.f
SRC/zgbsv.f
SRC/zgebal.f
SRC/zgebd2.f
SRC/zgebrd.f
SRC/zgehd2.f
SRC/zgehrd.f
SRC/zgelq2.f
SRC/zgelqf.f
SRC/zgeql2.f
SRC/zgeqlf.f
SRC/zgeqr2.f
SRC/zgeqr2p.f
SRC/zgeqrt.f
SRC/zgeqrt2.f
SRC/zgeqrt3.f
SRC/zgerqf.f
SRC/zgesv.f
SRC/zggglm.f
SRC/zgghrd.f
SRC/zggqrf.f
SRC/zggrqf.f
SRC/zggsvd.f
SRC/zggsvp.f
SRC/zhbgvx.f
SRC/zheequb.f
SRC/zhegvx.f
SRC/zhesvxx.f
SRC/zhetd2.f
SRC/zhetrd.f
SRC/zhpgvx.f
SRC/zhptrd.f
SRC/zhseqr.f
SRC/zla_gbrfsx_extended.f
SRC/zla_gerfsx_extended.f
SRC/zla_herpvgrw.f
SRC/zla_lin_berr.f
SRC/zla_syrpvgrw.f
SRC/zlabrd.f
SRC/zlagtm.f
SRC/zlahr2.f
SRC/zlahrd.f
SRC/zlaqr0.f
SRC/zlaqr1.f
SRC/zlaqr2.f
SRC/zlaqr4.f
SRC/zlarfb.f
SRC/zlarft.f
SRC/zlarrv.f
SRC/zlartg.f
SRC/zlarzt.f
SRC/zlascl.f
SRC/zlatrd.f
SRC/zpbstf.f
SRC/zrot.f
SRC/zstegr.f
SRC/zstemr.f
SRC/zsyconv.f
SRC/zsyequb.f
SRC/ztgsen.f
SRC/ztgsja.f
SRC/ztpmqrt.f
SRC/ztpqrt.f
SRC/ztpqrt2.f
SRC/ztprfb.f
SRC/ztrexc.f
SRC/zuncsd.f
SRC/zunghr.f
SRC/zunmhr.f
TESTING/EIG/cchkbd.f
TESTING/EIG/cchkhb.f
TESTING/EIG/cchkst.f
TESTING/EIG/cdrgvx.f
TESTING/EIG/cdrvbd.f
TESTING/EIG/cdrves.f
TESTING/EIG/cdrvvx.f
TESTING/EIG/cget22.f
TESTING/EIG/chkxer.f
TESTING/EIG/clctsx.f
TESTING/EIG/dchkbd.f
TESTING/EIG/dchkgg.f
TESTING/EIG/dchkst.f
TESTING/EIG/ddrgvx.f
TESTING/EIG/ddrves.f
TESTING/EIG/ddrvsx.f
TESTING/EIG/ddrvvx.f
TESTING/EIG/dlatb9.f
TESTING/EIG/dsxt1.f
TESTING/EIG/ilaenv.f
TESTING/EIG/schkbd.f
TESTING/EIG/schkst.f
TESTING/EIG/sdrgvx.f
TESTING/EIG/sdrves.f
TESTING/EIG/sdrvsx.f
TESTING/EIG/sdrvvx.f
TESTING/EIG/slatb9.f
TESTING/EIG/ssxt1.f
TESTING/EIG/zchkbd.f
TESTING/EIG/zchkgg.f
TESTING/EIG/zchkhb.f
TESTING/EIG/zchkst.f
TESTING/EIG/zdrgvx.f
TESTING/EIG/zdrvbd.f
TESTING/EIG/zdrves.f
TESTING/EIG/zdrvvx.f
TESTING/EIG/zget22.f
TESTING/EIG/zlctsx.f
TESTING/LIN/Makefile
TESTING/LIN/cchkge.f
TESTING/LIN/cdrvgt.f
TESTING/LIN/cdrvrf2.f
TESTING/LIN/cebchvxx.f
TESTING/LIN/chet01.f
TESTING/LIN/chpt01.f
TESTING/LIN/clahilb.f
TESTING/LIN/cpbt02.f
TESTING/LIN/cpst01.f
TESTING/LIN/cspt01.f
TESTING/LIN/cspt03.f
TESTING/LIN/csyt01.f
TESTING/LIN/ddrvgt.f
TESTING/LIN/ddrvrf2.f
TESTING/LIN/debchvxx.f
TESTING/LIN/dgtt01.f
TESTING/LIN/dlahilb.f
TESTING/LIN/dpbt02.f
TESTING/LIN/dpst01.f
TESTING/LIN/dspt01.f
TESTING/LIN/dsyt01.f
TESTING/LIN/ilaenv.f
TESTING/LIN/sdrvgt.f
TESTING/LIN/sdrvrf1.f
TESTING/LIN/sdrvrf2.f
TESTING/LIN/sebchvxx.f
TESTING/LIN/sgtt01.f
TESTING/LIN/slahilb.f
TESTING/LIN/spbt02.f
TESTING/LIN/spst01.f
TESTING/LIN/sspt01.f
TESTING/LIN/ssyt01.f
TESTING/LIN/zchkge.f
TESTING/LIN/zdrvgt.f
TESTING/LIN/zdrvrf2.f
TESTING/LIN/zebchvxx.f
TESTING/LIN/zhet01.f
TESTING/LIN/zhpt01.f
TESTING/LIN/zlahilb.f
TESTING/LIN/zpbt02.f
TESTING/LIN/zpst01.f
TESTING/LIN/zspt01.f
TESTING/LIN/zspt03.f
TESTING/LIN/zsyt01.f
TESTING/MATGEN/clahilb.f
TESTING/MATGEN/zlahilb.f
TESTING/MATGEN/zlaror.f

index aa8d9d8..01690bb 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**H*x + beta*y.
 *> \endverbatim
 *>
 *>           are not referenced.
 *>           The following program segment will transfer a band matrix
 *>           from conventional full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    K = KU + 1 - J
 *>                    DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL )
index daf642d..b1ba4c5 100644 (file)
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n',  op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't',  op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c',  op( A ) = A**H.
 *> \endverbatim
 *>
 *>          TRANSB is CHARACTER*1
 *>           On entry, TRANSB specifies the form of op( B ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'N' or 'n',  op( B ) = B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'T' or 't',  op( B ) = B**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'C' or 'c',  op( B ) = B**H.
 *> \endverbatim
 *>
index a341b45..db0564c 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**H*x + beta*y.
 *> \endverbatim
 *>
index bd3b69c..bafb5f1 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the band matrix A is being supplied as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  being supplied.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  being supplied.
 *> \endverbatim
 *>           The following program segment will transfer the upper
 *>           triangular part of a hermitian band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the hermitian matrix, supplied column by
 *>           The following program segment will transfer the lower
 *>           triangular part of a hermitian band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that the imaginary parts of the diagonal elements need
 *>           not be set and are assumed to be zero.
 *> \endverbatim
index 9947cb2..2944c64 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE  specifies whether  the  hermitian matrix  A
 *>           appears on the  left or right  in the  operation as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,
 *> \endverbatim
 *>
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of  the  hermitian  matrix   A  is  to  be
 *>           referenced as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of the
 *>                                  hermitian matrix is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of the
 *>                                  hermitian matrix is to be referenced.
 *> \endverbatim
index 85de063..f93e0c4 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index b7ccc0b..1e74428 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
 *>          ALPHA is REAL
 *>           On entry, ALPHA specifies the scalar alpha.
 *> \endverbatim
+*>
+*> \param[in] X
 *> \verbatim
-*>  X        COMPLEX array of dimension at least
+*>          X is COMPLEX array of dimension at least
 *>           ( 1 + ( n - 1 )*abs( INCX ) ).
 *>           Before entry, the incremented array X must contain the n
 *>           element vector x.
index ee6e3a4..9324e3a 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
 *>          ALPHA is COMPLEX
 *>           On entry, ALPHA specifies the scalar alpha.
 *> \endverbatim
+*>
+*> \param[in] X
 *> \verbatim
-*>  X        COMPLEX array of dimension at least
+*>          X is COMPLEX array of dimension at least
 *>           ( 1 + ( n - 1 )*abs( INCX ) ).
 *>           Before entry, the incremented array X must contain the n
 *>           element vector x.
 *>           On entry, INCX specifies the increment for the elements of
 *>           X. INCX must not be zero.
 *> \endverbatim
+*>
+*> \param[in] Y
 *> \verbatim
-*>  Y        COMPLEX array of dimension at least
+*>          Y is COMPLEX array of dimension at least
 *>           ( 1 + ( n - 1 )*abs( INCY ) ).
 *>           Before entry, the incremented array Y must contain the n
 *>           element vector y.
index 3a386fc..9ba1295 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'    C := alpha*A*B**H          +
 *>                                         conjg( alpha )*B*A**H +
 *>                                         beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'    C := alpha*A**H*B          +
 *>                                         conjg( alpha )*B**H*A +
 *>                                         beta*C.
index 66913b6..addbefb 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*A**H + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   C := alpha*A**H*A + beta*C.
 *> \endverbatim
 *>
index 857293a..8128ca6 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 1cdcf62..3101ccd 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 2a44bb9..d324211 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
 *>           On entry, INCX specifies the increment for the elements of
 *>           X. INCX must not be zero.
 *> \endverbatim
+*>
+*> \param[in] Y
 *> \verbatim
-*>  Y        COMPLEX array of dimension at least
+*>          Y is COMPLEX array of dimension at least
 *>           ( 1 + ( n - 1 )*abs( INCY ) ).
 *>           Before entry, the incremented array Y must contain the n
 *>           element vector y.
index 326dcf0..f229c48 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE  specifies whether  the  symmetric matrix  A
 *>           appears on the  left or right  in the  operation as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,
 *> \endverbatim
 *>
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of  the  symmetric  matrix   A  is  to  be
 *>           referenced as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of the
 *>                                  symmetric matrix is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of the
 *>                                  symmetric matrix is to be referenced.
 *> \endverbatim
index 0b424b4..d37e643 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'    C := alpha*A*B**T + alpha*B*A**T +
 *>                                         beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'    C := alpha*A**T*B + alpha*B**T*A +
 *>                                         beta*C.
 *> \endverbatim
 *>          ALPHA is COMPLEX
 *>           On entry, ALPHA specifies the scalar alpha.
 *> \endverbatim
+*>
+*> \param[in] A
 *> \verbatim
-*>  A        COMPLEX array of DIMENSION ( LDA, ka ), where ka is
+*>          A is COMPLEX array of DIMENSION ( LDA, ka ), where ka is
 *>           k  when  TRANS = 'N' or 'n',  and is  n  otherwise.
 *>           Before entry with  TRANS = 'N' or 'n',  the  leading  n by k
 *>           part of the array  A  must contain the matrix  A,  otherwise
index be0a0b9..744e7f3 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*A**T + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   C := alpha*A**T*A + beta*C.
 *> \endverbatim
 *>
index 1a7820e..18214c2 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**H*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index f7eb02c..8a70301 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**H*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index d20c624..ad6e9b3 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**H*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 5fba7a9..fd2d0d1 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**H*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 8d95a5e..28a6d7d 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE specifies whether  op( A ) multiplies B from
 *>           the left or right as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   B := alpha*op( A )*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   B := alpha*B*op( A ).
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**H.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index f432c96..734bcd0 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**H*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 3fd4635..93823f0 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry, SIDE specifies whether op( A ) appears on the left
 *>           or right of X as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   op( A )*X = alpha*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   X*op( A ) = alpha*B.
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**H.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 52fdb37..05e7c4e 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**H*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 92dacb4..198b0ab 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**T*x + beta*y.
 *> \endverbatim
 *>
 *>           are not referenced.
 *>           The following program segment will transfer a band matrix
 *>           from conventional full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    K = KU + 1 - J
 *>                    DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL )
index 6473782..e8aa6a4 100644 (file)
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n',  op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't',  op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c',  op( A ) = A**T.
 *> \endverbatim
 *>
 *>          TRANSB is CHARACTER*1
 *>           On entry, TRANSB specifies the form of op( B ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'N' or 'n',  op( B ) = B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'T' or 't',  op( B ) = B**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'C' or 'c',  op( B ) = B**T.
 *> \endverbatim
 *>
index c428737..ef42e93 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**T*x + beta*y.
 *> \endverbatim
 *>
index 09c53e1..128864f 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the band matrix A is being supplied as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  being supplied.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  being supplied.
 *> \endverbatim
 *>           The following program segment will transfer the upper
 *>           triangular part of a symmetric band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the symmetric matrix, supplied column by
 *>           The following program segment will transfer the lower
 *>           triangular part of a symmetric band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
index cb8de30..a6f4ea8 100644 (file)
@@ -70,7 +70,7 @@
 *>         storage spacing between elements of SY
 *> \endverbatim
 *>
-*> \param[out] DSDOT
+*> \result DSDOT
 *> \verbatim
 *>          DSDOT is DOUBLE PRECISION
 *>         DSDOT  double precision dot product (zero if N.LE.0)
index b0c0ced..ddebd55 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 87fd3bc..543dce9 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 54553ec..cae156b 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index f3537fa..3a1710f 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE  specifies whether  the  symmetric matrix  A
 *>           appears on the  left or right  in the  operation as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,
 *> \endverbatim
 *>
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of  the  symmetric  matrix   A  is  to  be
 *>           referenced as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of the
 *>                                  symmetric matrix is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of the
 *>                                  symmetric matrix is to be referenced.
 *> \endverbatim
index 5dfc7ea..f919dbc 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index 81a0107..73ed1e5 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index 7b72a34..f668694 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index 3c2de59..409f7e3 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*B**T + alpha*B*A**T +
 *>                                        beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   C := alpha*A**T*B + alpha*B**T*A +
 *>                                        beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   C := alpha*A**T*B + alpha*B**T*A +
 *>                                        beta*C.
 *> \endverbatim
index df232ff..73f2a66 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*A**T + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   C := alpha*A**T*A + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   C := alpha*A**T*A + beta*C.
 *> \endverbatim
 *>
index ad062ca..2b7ed08 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**T*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index 9a2b842..e80fe00 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**T*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index b11f4db..9f643dc 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**T*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index bd7c5ec..937afcc 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**T*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 9e4cc22..71a7e0d 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE specifies whether  op( A ) multiplies B from
 *>           the left or right as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   B := alpha*op( A )*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   B := alpha*B*op( A ).
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**T.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           zero then  A is not referenced and  B need not be set before
 *>           entry.
 *> \endverbatim
+*>
+*> \param[in] A
 *> \verbatim
-*>  A        DOUBLE PRECISION array of DIMENSION ( LDA, k ), where k is m
+*>           A is DOUBLE PRECISION array of DIMENSION ( LDA, k ), where k is m
 *>           when  SIDE = 'L' or 'l'  and is  n  when  SIDE = 'R' or 'r'.
 *>           Before entry  with  UPLO = 'U' or 'u',  the  leading  k by k
 *>           upper triangular part of the array  A must contain the upper
index c4864bf..7bb9d74 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**T*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 3a91fd4..6adb99e 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry, SIDE specifies whether op( A ) appears on the left
 *>           or right of X as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   op( A )*X = alpha*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   X*op( A ) = alpha*B.
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**T.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 4a0845b..ce82d7d 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**T*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>          INCX is INTEGER
 *>           On entry, INCX specifies the increment for the elements of
 *>           X. INCX must not be zero.
-*> \endverbatim
-*> \verbatim
+*>
 *>  Level 2 Blas routine.
-*> \endverbatim
-*> \verbatim
+*>
 *>  -- Written on 22-October-1986.
 *>     Jack Dongarra, Argonne National Lab.
 *>     Jeremy Du Croz, Nag Central Office.
index 774dcda..fde4e37 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**T*x + beta*y.
 *> \endverbatim
 *>
 *>           are not referenced.
 *>           The following program segment will transfer a band matrix
 *>           from conventional full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    K = KU + 1 - J
 *>                    DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL )
index 8ef99ea..7708dc9 100644 (file)
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n',  op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't',  op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c',  op( A ) = A**T.
 *> \endverbatim
 *>
 *>          TRANSB is CHARACTER*1
 *>           On entry, TRANSB specifies the form of op( B ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'N' or 'n',  op( B ) = B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'T' or 't',  op( B ) = B**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'C' or 'c',  op( B ) = B**T.
 *> \endverbatim
 *>
index 315a682..ba1d3fa 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**T*x + beta*y.
 *> \endverbatim
 *>
index 46ff76f..c34a2a9 100644 (file)
 *>          ALPHA is REAL
 *>           On entry, ALPHA specifies the scalar alpha.
 *> \endverbatim
+*>
+*> \param[in] X
 *> \verbatim
-*>  X        REAL array of dimension at least
+*>          X is REAL array of dimension at least
 *>           ( 1 + ( m - 1 )*abs( INCX ) ).
 *>           Before entry, the incremented array X must contain the m
 *>           element vector x.
index 82f76ce..c91cb18 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the band matrix A is being supplied as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  being supplied.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  being supplied.
 *> \endverbatim
 *>           The following program segment will transfer the upper
 *>           triangular part of a symmetric band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the symmetric matrix, supplied column by
 *>           The following program segment will transfer the lower
 *>           triangular part of a symmetric band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
index e2485a2..393700a 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 55b120e..4088b3f 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 6450dbc..3846691 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
 *>          ALPHA is REAL
 *>           On entry, ALPHA specifies the scalar alpha.
 *> \endverbatim
+*>
+*> \param[in] X
 *> \verbatim
-*>  X        REAL array of dimension at least
+*>          X is REAL array of dimension at least
 *>           ( 1 + ( n - 1 )*abs( INCX ) ).
 *>           Before entry, the incremented array X must contain the n
 *>           element vector x.
index 2253c53..0fc8fc5 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE  specifies whether  the  symmetric matrix  A
 *>           appears on the  left or right  in the  operation as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,
 *> \endverbatim
 *>
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of  the  symmetric  matrix   A  is  to  be
 *>           referenced as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of the
 *>                                  symmetric matrix is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of the
 *>                                  symmetric matrix is to be referenced.
 *> \endverbatim
index 6660a32..362a8f4 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index 05c4915..96fce78 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index b96e218..8830552 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
 *>          ALPHA is REAL
 *>           On entry, ALPHA specifies the scalar alpha.
 *> \endverbatim
+*>
+*> \param[in] X
 *> \verbatim
-*>  X        REAL array of dimension at least
+*>          X is REAL array of dimension at least
 *>           ( 1 + ( n - 1 )*abs( INCX ) ).
 *>           Before entry, the incremented array X must contain the n
 *>           element vector x.
index a0bfee7..a796857 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*B**T + alpha*B*A**T +
 *>                                        beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   C := alpha*A**T*B + alpha*B**T*A +
 *>                                        beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   C := alpha*A**T*B + alpha*B**T*A +
 *>                                        beta*C.
 *> \endverbatim
index 9d294f1..b38025b 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*A**T + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   C := alpha*A**T*A + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   C := alpha*A**T*A + beta*C.
 *> \endverbatim
 *>
index 5c1190a..ebd5f6f 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**T*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index 2bdb482..f4e2688 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**T*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index a32cf73..5dac03a 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**T*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index d54a5da..d615193 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**T*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index c366891..2a00063 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE specifies whether  op( A ) multiplies B from
 *>           the left or right as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   B := alpha*op( A )*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   B := alpha*B*op( A ).
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**T.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index dcfa15d..f3581cd 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**T*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 0568d97..48f7dcf 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry, SIDE specifies whether op( A ) appears on the left
 *>           or right of X as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   op( A )*X = alpha*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   X*op( A ) = alpha*B.
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**T.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index c4b3f54..61a54c6 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**T*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 216cb5b..77aff8d 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**H*x + beta*y.
 *> \endverbatim
 *>
 *>           are not referenced.
 *>           The following program segment will transfer a band matrix
 *>           from conventional full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    K = KU + 1 - J
 *>                    DO 10, I = MAX( 1, J - KU ), MIN( M, J + KL )
index 6aaf515..6f7fe98 100644 (file)
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n',  op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't',  op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c',  op( A ) = A**H.
 *> \endverbatim
 *>
 *>          TRANSB is CHARACTER*1
 *>           On entry, TRANSB specifies the form of op( B ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'N' or 'n',  op( B ) = B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'T' or 't',  op( B ) = B**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSB = 'C' or 'c',  op( B ) = B**H.
 *> \endverbatim
 *>
index 9eaf445..b3ffbb8 100644 (file)
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   y := alpha*A*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   y := alpha*A**T*x + beta*y.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   y := alpha*A**H*x + beta*y.
 *> \endverbatim
 *>
index 0adaec4..14f4fa8 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the band matrix A is being supplied as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  being supplied.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  being supplied.
 *> \endverbatim
 *>           The following program segment will transfer the upper
 *>           triangular part of a hermitian band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the hermitian matrix, supplied column by
 *>           The following program segment will transfer the lower
 *>           triangular part of a hermitian band matrix from conventional
 *>           full matrix storage to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that the imaginary parts of the diagonal elements need
 *>           not be set and are assumed to be zero.
 *> \endverbatim
index 8d7218c..608138c 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE  specifies whether  the  hermitian matrix  A
 *>           appears on the  left or right  in the  operation as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,
 *> \endverbatim
 *>
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of  the  hermitian  matrix   A  is  to  be
 *>           referenced as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of the
 *>                                  hermitian matrix is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of the
 *>                                  hermitian matrix is to be referenced.
 *> \endverbatim
index c566a1f..baa2930 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index b2af022..5f68482 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index 0c4f94d..1b98c63 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the array A is to be referenced as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of A
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of A
 *>                                  is to be referenced.
 *> \endverbatim
index bfcf27f..b577e1b 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'    C := alpha*A*B**H          +
 *>                                         conjg( alpha )*B*A**H +
 *>                                         beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'    C := alpha*A**H*B          +
 *>                                         conjg( alpha )*B**H*A +
 *>                                         beta*C.
index f1795c4..cd4fed5 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*A**H + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   C := alpha*A**H*A + beta*C.
 *> \endverbatim
 *>
index 2304ed8..c81456f 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index d80e359..0b0bd68 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 0d0c4ea..f160418 100644 (file)
 *>           On entry, UPLO specifies whether the upper or lower
 *>           triangular part of the matrix A is supplied in the packed
 *>           array AP as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   The upper triangular part of A is
 *>                                  supplied in AP.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   The lower triangular part of A is
 *>                                  supplied in AP.
 *> \endverbatim
index 6ceda01..57e7020 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE  specifies whether  the  symmetric matrix  A
 *>           appears on the  left or right  in the  operation as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   C := alpha*A*B + beta*C,
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   C := alpha*B*A + beta*C,
 *> \endverbatim
 *>
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of  the  symmetric  matrix   A  is  to  be
 *>           referenced as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the upper triangular part of the
 *>                                  symmetric matrix is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the lower triangular part of the
 *>                                  symmetric matrix is to be referenced.
 *> \endverbatim
index 898febc..5f88db4 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'    C := alpha*A*B**T + alpha*B*A**T +
 *>                                         beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'    C := alpha*A**T*B + alpha*B**T*A +
 *>                                         beta*C.
 *> \endverbatim
index db6d567..8508988 100644 (file)
 *>           On  entry,   UPLO  specifies  whether  the  upper  or  lower
 *>           triangular  part  of the  array  C  is to be  referenced  as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   Only the  upper triangular part of  C
 *>                                  is to be referenced.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   Only the  lower triangular part of  C
 *>                                  is to be referenced.
 *> \endverbatim
 *>          TRANS is CHARACTER*1
 *>           On entry,  TRANS  specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   C := alpha*A*A**T + beta*C.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   C := alpha*A**T*A + beta*C.
 *> \endverbatim
 *>
index 781ac53..690af3c 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**H*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index b482814..7a7b02c 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**H*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
 *>           The following program segment will transfer an upper
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = K + 1 - J
 *>                    DO 10, I = MAX( 1, J - K ), J
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Before entry with UPLO = 'L' or 'l', the leading ( k + 1 )
 *>           by n part of the array A must contain the lower triangular
 *>           band part of the matrix of coefficients, supplied column by
 *>           The following program segment will transfer a lower
 *>           triangular band matrix from conventional full matrix storage
 *>           to band storage:
-*> \endverbatim
-*> \verbatim
+*>
 *>                 DO 20, J = 1, N
 *>                    M = 1 - J
 *>                    DO 10, I = J, MIN( N, J + K )
 *>                       A( M + I, J ) = matrix( I, J )
 *>              10    CONTINUE
 *>              20 CONTINUE
-*> \endverbatim
-*> \verbatim
+*>
 *>           Note that when DIAG = 'U' or 'u' the elements of the array A
 *>           corresponding to the diagonal elements of the matrix are not
 *>           referenced, but are assumed to be unity.
index d4f71a4..d5d8da9 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**H*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index e12c1e9..9446342 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**H*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index a54a53c..16d6c95 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry,  SIDE specifies whether  op( A ) multiplies B from
 *>           the left or right as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   B := alpha*op( A )*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   B := alpha*B*op( A ).
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**H.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 2c49149..ae8c40f 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the operation to be performed as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   x := A*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   x := A**T*x.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   x := A**H*x.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index fae9928..f51fd2a 100644 (file)
 *>          SIDE is CHARACTER*1
 *>           On entry, SIDE specifies whether op( A ) appears on the left
 *>           or right of X as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'L' or 'l'   op( A )*X = alpha*B.
-*> \endverbatim
-*> \verbatim
+*>
 *>              SIDE = 'R' or 'r'   X*op( A ) = alpha*B.
 *> \endverbatim
 *>
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix A is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANSA is CHARACTER*1
 *>           On entry, TRANSA specifies the form of op( A ) to be used in
 *>           the matrix multiplication as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'N' or 'n'   op( A ) = A.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'T' or 't'   op( A ) = A**T.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANSA = 'C' or 'c'   op( A ) = A**H.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit triangular
 *>           as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 3696075..8270da1 100644 (file)
 *>          UPLO is CHARACTER*1
 *>           On entry, UPLO specifies whether the matrix is an upper or
 *>           lower triangular matrix as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'U' or 'u'   A is an upper triangular matrix.
-*> \endverbatim
-*> \verbatim
+*>
 *>              UPLO = 'L' or 'l'   A is a lower triangular matrix.
 *> \endverbatim
 *>
 *>          TRANS is CHARACTER*1
 *>           On entry, TRANS specifies the equations to be solved as
 *>           follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'N' or 'n'   A*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'T' or 't'   A**T*x = b.
-*> \endverbatim
-*> \verbatim
+*>
 *>              TRANS = 'C' or 'c'   A**H*x = b.
 *> \endverbatim
 *>
 *>          DIAG is CHARACTER*1
 *>           On entry, DIAG specifies whether or not A is unit
 *>           triangular as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'U' or 'u'   A is assumed to be unit triangular.
-*> \endverbatim
-*> \verbatim
+*>
 *>              DIAG = 'N' or 'n'   A is not assumed to be unit
 *>                                  triangular.
 *> \endverbatim
index 9eef1d8..06c5940 100644 (file)
@@ -45,7 +45,7 @@ PROJECT_BRIEF          = "LAPACK: Linear Algebra PACKage"
 # exceed 55 pixels and the maximum width should not exceed 200 pixels. 
 # Doxygen will copy the logo to the output directory.
 
-PROJECT_LOGO           = 
+PROJECT_LOGO           = DOCS/lapack.png
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put. 
@@ -193,7 +193,8 @@ TAB_SIZE               = 8
 # will result in a user-defined paragraph with heading "Side Effects:". 
 # You can put \n's in the value part of an alias to insert newlines.
 
-ALIASES                = 
+ALIASES                = "purpose=\details \b Purpose"
+#ALIASES                += "FurtherDetails=\details \b Further \b Details"
 
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
 # sources only. Doxygen will then generate output that is more tailored for C. 
@@ -617,7 +618,7 @@ WARN_FORMAT            = "$file:$line: $text"
 # and error messages should be written. If left blank the output is written 
 # to stderr.
 
-WARN_LOGFILE           = 
+WARN_LOGFILE           = output_err
 
 #---------------------------------------------------------------------------
 # configuration options related to the input files
@@ -660,7 +661,15 @@ RECURSIVE              = YES
 # subdirectory from a directory tree whose root is specified with the INPUT tag. 
 # Note that relative paths are relative to directory from which doxygen is run.
 
-EXCLUDE                = CMAKE
+EXCLUDE                = CMAKE \
+                         DOCS \
+                         .svn \
+                         SRC/.svn \
+                         INSTALL/.svn \
+                         TESTING/.svn \
+                         TESTING/EIG/.svn \
+                         TESTING/MATGEN/.svn \
+                         TESTING/LIN/.svn \
 
 # The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
 # directories that are symbolic links (a Unix file system feature) are excluded 
@@ -1346,7 +1355,7 @@ MAN_EXTENSION          = .3
 # only source the real man page, but without them the man command 
 # would be unable to find the correct page. The default is NO.
 
-MAN_LINKS              = NO
+MAN_LINKS              = YES
 
 #---------------------------------------------------------------------------
 # configuration options related to the XML output
@@ -1677,7 +1686,7 @@ DIRECTORY_GRAPH        = YES
 # HTML_FILE_EXTENSION to xhtml in order to make the SVG files 
 # visible in IE 9+ (other browsers do not have this requirement).
 
-DOT_IMAGE_FORMAT       = png
+DOT_IMAGE_FORMAT       = svg
 
 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to 
 # enable generation of interactive SVG images that allow zooming and panning. 
index 885ef1e..5c84821 100644 (file)
 *> DLAMC1 determines the machine parameters given by BETA, T, RND, and
 *> IEEE1.
 *>
-*>\verbatim
+*>\endverbatim
 *>
 *> \param[out] BETA
 *> \verbatim
 *> \param[out] EPS
 *> \verbatim
 *>          The smallest positive number such that
-*> \endverbatim
-*> \verbatim
 *>             fl( 1.0 - EPS ) .LT. 1.0,
-*> \endverbatim
-*> \verbatim
 *>          where fl denotes the computed value.
 *> \endverbatim
 *>
index 7d3c01b..71baea2 100644 (file)
 *> SLAMC1 determines the machine parameters given by BETA, T, RND, and
 *> IEEE1.
 *>
-*>\verbatim
+*>\endverbatim
 *>
 *> \param[out] BETA
 *> \verbatim
 *> \param[out] EPS
 *> \verbatim
 *>          The smallest positive number such that
-*> \endverbatim
-*> \verbatim
 *>             fl( 1.0 - EPS ) .LT. 1.0,
-*> \endverbatim
-*> \verbatim
 *>          where fl denotes the computed value.
 *> \endverbatim
 *>
index 1856857..410d6d2 100644 (file)
 *>          partially reduced top-right block.
 *> \endverbatim
 *>
+*> \param[out] B21D
+*> \verbatim
+*>          B21D is REAL array, dimension (Q)
+*>          When CBBCSD converges, B21D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B21D contains the diagonal of the partially reduced bottom-left
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B21E
+*> \verbatim
+*>          B21E is REAL array, dimension (Q-1)
+*>          When CBBCSD converges, B21E contains zeros. If CBBCSD fails
+*>          to converge, then B21E contains the subdiagonal of the
+*>          partially reduced bottom-left block.
+*> \endverbatim
+*>
+*> \param[out] B22D
+*> \verbatim
+*>          B22D is REAL array, dimension (Q)
+*>          When CBBCSD converges, B22D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B22D contains the diagonal of the partially reduced bottom-right
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B22E
+*> \verbatim
+*>          B22E is REAL array, dimension (Q-1)
+*>          When CBBCSD converges, B22E contains zeros. If CBBCSD fails
+*>          to converge, then B22E contains the subdiagonal of the
+*>          partially reduced bottom-right block.
+*> \endverbatim
+*>
 *> \param[out] RWORK
 *> \verbatim
 *>          RWORK is REAL array, dimension (MAX(1,LWORK))
index 3feb676..fa558b9 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> CGBSV computes the solution to system of linear equations A * X = B for GB matrices</b>
+*> \brief <b> CGBSV computes the solution to system of linear equations A * X = B for GB matrices</b> (simple driver)
 *
 *  =========== DOCUMENTATION ===========
 *
index 045bd13..a684a4b 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the input matrix A.
+*>          On exit,  A is overwritten by the balanced matrix.
+*>          If JOB = 'N', A is not referenced.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  ILO     (output) INTEGER
-*>
-*>  IHI     (output) INTEGER
+*> \param[out] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*> \param[out] IHI
+*> \verbatim
+*>          IHI is 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.
 *>          If JOB = 'N' or 'S', ILO = 1 and IHI = N.
+*> \endverbatim
 *>
-*>  SCALE   (output) REAL array, dimension (N)
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is REAL array, dimension (N)
 *>          Details of the permutations and scaling factors applied to
 *>          A.  If P(j) is the index of the row and column interchanged
 *>          with row and column j and D(j) is the scaling factor
 *>                   = P(j)    for j = IHI+1,...,N.
 *>          The order in which the interchanges are made is N to IHI+1,
 *>          then 1 to ILO-1.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The permutations consist of row and column interchanges which put
 *>  the matrix in the form
index 1b47e91..12453e5 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the unitary matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the unitary matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) COMPLEX array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is COMPLEX array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) COMPLEX array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is COMPLEX array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX array, dimension (max(M,N))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (max(M,N))
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit 
 *>          < 0: if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+* @precisions normal c -> s d z
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index 5368f1f..e80f807 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the M-by-N general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the unitary matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the unitary matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) COMPLEX array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is COMPLEX array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) COMPLEX array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is COMPLEX array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,M,N).
 *>          For optimum performance LWORK >= (M+N)*NB, where NB
 *>          is the optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index 3b5e96b..4d7de6f 100644 (file)
@@ -47,7 +47,7 @@
 *> Schur form so that selected eigenvalues are at the top left.
 *> The leading columns of Z then form an orthonormal basis for the
 *> invariant subspace corresponding to the selected eigenvalues.
-
+*>
 *> A complex matrix is in Schur form if it is upper triangular.
 *>
 *>\endverbatim
index 96ec3ca..c6cf9e6 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          IHI is INTEGER
+*>
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to CGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= max(1,N).
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
 *>          On entry, the n by n general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the unitary matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX array, dimension (N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index dcda32b..19bcf5a 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
+*> \verbatim
+*>          IHI is INTEGER
+*>
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to CGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
 *>          On entry, the N-by-N general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the unitary matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details). Elements 1:ILO-1 and IHI:N-1 of TAU are set to
 *>          zero.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (LWORK)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (LWORK)
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index 258cfaa..455bc6c 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m by min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (M)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX array, dimension (M)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 8aa54eb..e6addc7 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m-by-min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is the
 *>          optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 76b2d08..bc4d5d3 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the m by n lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          unitary matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 91949ed..6ae4a4f 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          (see Further Details).
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the N-by-N lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the M-by-N lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          unitary matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is
 *>          the optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index b657981..e2c8321 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 16acb4b..bbe3f4c 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 4733e2a..23e6705 100644 (file)
 *>          The upper triangular block reflectors stored in compact form
 *>          as a sequence of upper triangular blocks.  See below
 *>          for further details.
+*> \endverbatim
 *>          
 *> \param[in] LDT
 *> \verbatim
 *>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] WORK
 *> \verbatim
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  
 *>  The matrix V stores the elementary reflectors H(i) in the i-th column
 *>  below the diagonal. For example, if M=5 and N=3, the matrix V is
 *>
index f28dd34..c1d922d 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index fea61d1..a70ea0a 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index a340caa..1c9e934 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          reflectors (see Further Details).
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m <= n, the upper triangle of the subarray
+*>          A(1:m,n-m+1:n) contains the M-by-M upper triangular matrix R;
+*>          if m >= n, the elements on and above the (m-n)-th subdiagonal
+*>          contain the M-by-N upper trapezoidal matrix R;
+*>          the remaining elements, with the array TAU, represent the
+*>          unitary matrix Q as a product of min(m,n) elementary
+*>          reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is
 *>          the optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 885028c..a2f4a8c 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> CGESV computes the solution to system of linear equations A * X = B for GE matrices</b>
+*> \brief <b> CGESV computes the solution to system of linear equations A * X = B for GE matrices</b> (simple driver)
 *
 *  =========== DOCUMENTATION ===========
 *
index 1694621..08364d2 100644 (file)
 *> \param[out] X
 *> \verbatim
 *>          X is COMPLEX array, dimension (M)
+*> \endverbatim
+*>
 *> \param[out] Y
 *> \verbatim
 *>          Y is COMPLEX array, dimension (P)
-*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
+*> \verbatim
+*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
 *>
 *> \param[out] WORK
index dbdcc05..ea7e7ea 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI mark the rows and columns of A which are to be
 *>          reduced.  It is assumed that A is already upper triangular
 *>          in rows and columns 1:ILO-1 and IHI+1:N.  ILO and IHI are
 *>          should be set to 1 and N respectively.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index 5fbd0ce..e8719c8 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,N).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the unitary matrix Q (see Further Details).
+*>          TAUA is COMPLEX array, dimension (min(N,M))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the unitary matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX array, dimension (LDB,P)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX array, dimension (LDB,P)
 *>          On entry, the N-by-P matrix B.
 *>          On exit, if N <= P, the upper triangle of the subarray
 *>          B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
 *>          elements, with the array TAUB, represent the unitary
 *>          matrix Z as a product of elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,N).
+*> \endverbatim
 *>
-*>  TAUB    (output) COMPLEX array, dimension (min(N,P))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is COMPLEX array, dimension (min(N,P))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the QR factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>           = 0:  successful exit
 *>           < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 60840b8..e89228a 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,M).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the unitary matrix Q (see Further Details).
+*>          TAUA is COMPLEX array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the unitary matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the min(P,N)-by-N upper trapezoidal matrix T (T is
 *>          upper triangular if P >= N); the elements below the diagonal,
 *>          with the array TAUB, represent the unitary matrix Z as a
 *>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
 *>
-*>  TAUB    (output) COMPLEX array, dimension (min(P,N))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is COMPLEX array, dimension (min(P,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the RQ factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO=-i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 4bf8dfb..0a6db16 100644 (file)
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
 *>          described in Purpose.
 *>          K + L = effective numerical rank of (A**H,B**H)**H.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
 *> \param[out] ALPHA
 *> \verbatim
 *>          ALPHA is REAL array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is REAL array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>            ALPHA(K+1:K+L) = C,
 *>            BETA(K+1:K+L)  = S,
 *>          or if M-K-L < 0,
-*>            ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0
-*>            BETA(K+1:M) = S, BETA(M+1:K+L) = 1
+*>            ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0
+*>            BETA(K+1:M) =S, BETA(M+1:K+L) =1
 *>          and
 *>            ALPHA(K+L+1:N) = 0
 *>            BETA(K+L+1:N)  = 0
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index ba1b100..1e74a1e 100644 (file)
 *> \param[in] TOLA
 *> \verbatim
 *>          TOLA is REAL
+*> \endverbatim
+*>
 *> \param[in] TOLB
 *> \verbatim
 *>          TOLB is REAL
+*> \endverbatim
+*> \verbatim
 *>          TOLA and TOLB are the thresholds to determine the effective
 *>          numerical rank of matrix B and a subblock of A. Generally,
 *>          they are set to
 *>          The size of TOLA and TOLB may affect the size of backward
 *>          errors of the decomposition.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
 *>          described in Purpose section.
 *>          K + L = effective numerical rank of (A**H,B**H)**H.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index ff86dc3..45f846b 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 2932d91..d1e6cee 100644 (file)
 *  Arguments
 *  =========
 *
+*> \param[in] UPLO
+*> \verbatim
+*>          UPLO is CHARACTER*1
+*>          = 'U':  Upper triangles of A and B are stored;
+*>          = 'L':  Lower triangles of A and B are stored.
+*> \endverbatim
+*>
 *> \param[in] N
 *> \verbatim
 *>          N is INTEGER
 *>          Absolute value of largest matrix element.  If AMAX is very
 *>          close to overflow or very close to underflow, the matrix
 *>          should be scaled.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (3*N)
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
 *>          > 0:  if INFO = i, the i-th diagonal element is nonpositive.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index 2171a5a..34e0ea7 100644 (file)
 *>          = 'V': all eigenvalues in the half-open interval (VL,VU]
 *>                 will be found.
 *>          = 'I': the IL-th through IU-th eigenvalues will be found.
+*> \endverbatim
+*>
 *> \param[in] UPLO
 *> \verbatim
 *>          UPLO is CHARACTER*1
 *>          = 'U':  Upper triangles of A and B are stored;
 *>          = 'L':  Lower triangles of A and B are stored.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] N
 *> \verbatim
@@ -95,8 +96,7 @@
 *>          upper triangular part of the matrix A.  If UPLO = 'L',
 *>          the leading N-by-N lower triangular part of A contains
 *>          the lower triangular part of the matrix A.
-*> \endverbatim
-*> \verbatim
+*>
 *>          On exit,  the lower triangle (if UPLO='L') or the upper
 *>          triangle (if UPLO='U') of A, including the diagonal, is
 *>          destroyed.
 *>          upper triangular part of the matrix B.  If UPLO = 'L',
 *>          the leading N-by-N lower triangular part of B contains
 *>          the lower triangular part of the matrix B.
-*> \endverbatim
-*> \verbatim
+*>
 *>          On exit, if INFO <= N, the part of B containing the matrix is
 *>          overwritten by the triangular factor U or L from the Cholesky
 *>          factorization B = U**H*U or B = L*L**H.
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
 *>          An approximate eigenvalue is accepted as converged
 *>          when it is determined to lie in an interval [a,b]
 *>          of width less than or equal to
-*> \endverbatim
-*> \verbatim
+*>
 *>                  ABSTOL + EPS *   max( |a|,|b| ) ,
-*> \endverbatim
-*> \verbatim
+*>
 *>          where EPS is the machine precision.  If ABSTOL is less than
 *>          or equal to zero, then  EPS*|T|  will be used in its place,
 *>          where |T| is the 1-norm of the tridiagonal matrix obtained
 *>          by reducing C to tridiagonal form, where C is the symmetric
 *>          matrix of the standard symmetric problem to which the
 *>          generalized problem is transformed.
-*> \endverbatim
-*> \verbatim
+*>
 *>          Eigenvalues will be computed most accurately when ABSTOL is
 *>          set to twice the underflow threshold 2*SLAMCH('S'), not zero.
 *>          If this routine returns with INFO>0, indicating that some
 *>          The eigenvectors are normalized as follows:
 *>          if ITYPE = 1 or 2, Z**T*B*Z = I;
 *>          if ITYPE = 3, Z**T*inv(B)*Z = I.
-*> \endverbatim
-*> \verbatim
+*>
 *>          If an eigenvector fails to converge, then that column of Z
 *>          contains the latest approximation to the eigenvector, and the
 *>          index of the eigenvector is returned in IFAIL.
index 548f60f..0d61ea7 100644 (file)
 *>               copied to AF and factored.
 *> \endverbatim
 *>
+*> \param[in] UPLO
+*> \verbatim
+*>          UPLO is CHARACTER*1
+*>       = 'U':  Upper triangle of A is stored;
+*>       = 'L':  Lower triangle of A is stored.
+*> \endverbatim
+*>
 *> \param[in] N
 *> \verbatim
 *>          N is INTEGER
index 2f3d5a1..0f3a370 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the Hermitian matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the unitary
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the unitary matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  D       (output) REAL array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) REAL array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) COMPLEX array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index beb0371..4262cd9 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexHEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          of elementary reflectors. See Further Details.
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the Hermitian matrix A.  If UPLO = 'U', the leading
+*>          N-by-N upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading N-by-N lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the unitary
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the unitary matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (N)
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (N)
 *>          The diagonal elements of the tridiagonal matrix T:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
 *>          The off-diagonal elements of the tridiagonal matrix T:
 *>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= 1.
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexHEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index 50a49f5..c7166b9 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 51ee5ac..78fa12c 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] AP
+*> \verbatim
+*>          AP is COMPLEX array, dimension (N*(N+1)/2)
+*>          On entry, the upper or lower triangle of the Hermitian matrix
+*>          A, packed columnwise in a linear array.  The j-th column of A
+*>          is stored in the array AP as follows:
+*>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
+*>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the unitary
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the unitary matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  D       (output) REAL array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) REAL array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) COMPLEX array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index e7f4884..09d08bc 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>           It is assumed that H is already upper triangular in rows
 *>           and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
-*>           set by a previous call to CGEBAL, and then passed to CGEHRD
+*>           set by a previous call to CGEBAL, and then passed to ZGEHRD
 *>           when the matrix output by CGEBAL is reduced to Hessenberg
 *>           form. Otherwise ILO and IHI should be set to 1 and N
 *>           respectively.  If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N.
 *>           If N = 0, then ILO = 1 and IHI = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] H
 *> \verbatim
index 3561f7e..4f56170 100644 (file)
 *>
 *> \param[in] AB
 *> \verbatim
-*>          AB is COMPLEX array, dimension (LDA,N)
-*>     On entry, the N-by-N matrix A.
+*>          AB is COMPLEX array, dimension (LDAB,N)
+*>     On entry, the N-by-N matrix AB.
 *> \endverbatim
 *>
 *> \param[in] LDAB
 *> \verbatim
 *>          LDAB is INTEGER
-*>     The leading dimension of the array A.  LDA >= max(1,N).
+*>     The leading dimension of the array AB.  LDAB >= max(1,N).
 *> \endverbatim
 *>
 *> \param[in] AFB
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_NORM(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
 *>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_COMP(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
index 547c2e0..12db6ba 100644 (file)
 *> and provides error bounds and backward error estimates for the solution.
 *> This subroutine is called by CGERFSX to perform iterative refinement.
 *> In addition to normwise error bound, the code provides maximum
-*> componentwise error bound if possible. See comments for ERR_BNDS_NORM
-*> and ERR_BNDS_COMP for details of the error bounds. Note that this
+*> componentwise error bound if possible. See comments for ERRS_N
+*> and ERRS_C for details of the error bounds. Note that this
 *> subroutine is only resonsible for setting the second fields of
-*> ERR_BNDS_NORM and ERR_BNDS_COMP.
+*> ERRS_N and ERRS_C.
 *>
 *>\endverbatim
 *
 *> \param[in] N_NORMS
 *> \verbatim
 *>          N_NORMS is INTEGER
-*>     Determines which error bounds to return (see ERR_BNDS_NORM
-*>     and ERR_BNDS_COMP).
+*>     Determines which error bounds to return (see ERRS_N
+*>     and ERRS_C).
 *>     If N_NORMS >= 1 return normwise error bounds.
 *>     If N_NORMS >= 2 return componentwise error bounds.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_NORM
+*> \param[in,out] ERRS_N
 *> \verbatim
-*>          ERR_BNDS_NORM is REAL array, dimension (NRHS, N_ERR_BNDS)
+*>          ERRS_N is REAL array, dimension (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_N(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_NORM(:,err) contains the following
+*>
+*>     The second index in ERRS_N(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     cautions.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_COMP
+*> \param[in,out] ERRS_C
 *> \verbatim
-*>          ERR_BNDS_COMP is REAL array, dimension (NRHS, N_ERR_BNDS)
+*>          ERRS_C is REAL array, dimension (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     pieces of information returned for each right-hand side. If
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
-*>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
+*>     ERRS_C is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_C(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_COMP(:,err) contains the following
+*>
+*>     The second index in ERRS_C(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     permit convergence using approximate factorizations or
 *>     factorizations other than LU. If the factorization uses a
 *>     technique other than Gaussian elimination, the guarantees in
-*>     ERR_BNDS_NORM and ERR_BNDS_COMP may no longer be trustworthy.
+*>     ERRS_N and ERRS_C may no longer be trustworthy.
 *> \endverbatim
 *>
 *> \param[in] RTHRESH
index 8985523..62cf611 100644 (file)
 *>     column INFO is exactly 0.
 *> \endverbatim
 *>
-*> \param[in] NCOLS
-*> \verbatim
-*>          NCOLS is INTEGER
-*>     The number of columns of the matrix A. NCOLS >= 0.
-*> \endverbatim
-*>
 *> \param[in] A
 *> \verbatim
 *>          A is COMPLEX array, dimension (LDA,N)
index 6ababe1..8d4af0f 100644 (file)
 *>     The denominator in the relative backward error formula above, i.e.,
 *>     the matrix abs(op(A_s))*abs(Y) + abs(B_s). The matrices A, Y, and B
 *>     are from iterative refinement (see cla_gerfsx_extended.f).
+*> \endverbatim
 *>     
 *> \param[out] BERR
 *> \verbatim
 *>          BERR is COMPLEX array, dimension (NRHS)
 *>     The componentwise relative backward error from the formula above.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index e7087e4..a3c1482 100644 (file)
 *>     column INFO is exactly 0.
 *> \endverbatim
 *>
-*> \param[in] NCOLS
-*> \verbatim
-*>          NCOLS is INTEGER
-*>     The number of columns of the matrix A. NCOLS >= 0.
-*> \endverbatim
-*>
 *> \param[in] A
 *> \verbatim
 *>          A is COMPLEX array, dimension (LDA,N)
index ab63b73..a1b725c 100644 (file)
 *>          The number of leading rows and columns of A to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit, the first NB rows and columns of the matrix are
+*>          overwritten; the rest of the array is unchanged.
+*>          If m >= n, elements on and below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the unitary
+*>            matrix Q as a product of elementary reflectors; and
+*>            elements above the diagonal in the first NB rows, with the
+*>            array TAUP, represent the unitary matrix P as a product
+*>            of elementary reflectors.
+*>          If m < n, elements below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the unitary
+*>            matrix Q as a product of elementary reflectors, and
+*>            elements on and above the diagonal in the first NB rows,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (NB)
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (NB)
 *>          The diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.  D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (NB)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (NB)
 *>          The off-diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.
+*> \endverbatim
 *>
-*>  TAUQ    (output) COMPLEX array dimension (NB)
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is COMPLEX array dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) COMPLEX array, dimension (NB)
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is COMPLEX array, dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  X       (output) COMPLEX array, dimension (LDX,NB)
+*> \param[out] X
+*> \verbatim
+*>          X is COMPLEX array, dimension (LDX,NB)
 *>          The m-by-nb matrix X required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDX     (input) INTEGER
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
 *>          The leading dimension of the array X. LDX >= max(1,M).
+*> \endverbatim
 *>
-*>  Y       (output) COMPLEX array, dimension (LDY,NB)
+*> \param[out] Y
+*> \verbatim
+*>          Y is COMPLEX array, dimension (LDY,NB)
 *>          The n-by-nb matrix Y required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDY     (input) INTEGER
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
 *>          The leading dimension of the array Y. LDY >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index c6def60..97a50ea 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Contributed by Nick Higham, University of Manchester.
 *>  Originally named CONEST, dated March 16, 1988.
index 9166268..aead410 100644 (file)
@@ -98,8 +98,6 @@
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Contributed by Nick Higham, University of Manchester.
 *>  Originally named CONEST, dated March 16, 1988.
index c0d3f3c..2a4d3c5 100644 (file)
 *> \verbatim
 *>          X is COMPLEX array, dimension (LDX,NRHS)
 *>          The N by NRHS matrix X.
+*> \endverbatim
+*>
 *> \param[in] LDX
 *> \verbatim
 *>          LDX is INTEGER
 *>          The leading dimension of the array X.  LDX >= max(N,1).
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] BETA
 *> \verbatim
index 029c06c..5d002c9 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is COMPLEX array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= N.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) COMPLEX array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) COMPLEX array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) COMPLEX array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= N.
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index 76f3be8..433ebf6 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is COMPLEX array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= max(1,N).
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) COMPLEX array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) COMPLEX array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) COMPLEX array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= max(1,N).
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index d0f5d86..2405af4 100644 (file)
 *>           form returned in H, with W(i) = H(i,i).
 *> \endverbatim
 *>
+*> \param[in] ILOZ
+*> \verbatim
+*>          ILOZ is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHIZ
+*> \verbatim
+*>          IHIZ is INTEGER
+*>           Specify the rows of Z to which transformations must be
+*>           applied if WANTZ is .TRUE..
+*>           1 .LE. ILOZ .LE. ILO; IHI .LE. IHIZ .LE. N.
+*> \endverbatim
+*>
 *> \param[in,out] Z
 *> \verbatim
 *>          Z is COMPLEX array, dimension (LDZ,IHI)
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is a unitary matrix.  The final
 *>                value of  H is upper Hessenberg and triangular in
 *>                rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the unitary matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
index 0b0ccb6..b6e90b5 100644 (file)
 *> \verbatim
 *>          S1 is COMPLEX
 *> \endverbatim
+*>
+*> \param[in] S2
+*> \verbatim
+*>          S2 is COMPLEX
+*> \endverbatim
 *> \verbatim
-*>       S2     S1 and S2 are the shifts defining K in (*) above.
+*>          S1 and S2 are the shifts defining K in (*) above.
 *> \endverbatim
 *>
 *> \param[out] V
index c6bb13b..555910e 100644 (file)
 *>           form returned in H, with W(i) = H(i,i).
 *> \endverbatim
 *>
+*> \param[in] ILOZ
+*> \verbatim
+*>          ILOZ is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHIZ
+*> \verbatim
+*>          IHIZ is INTEGER
+*>           Specify the rows of Z to which transformations must be
+*>           applied if WANTZ is .TRUE..
+*>           1 .LE. ILOZ .LE. ILO; IHI .LE. IHIZ .LE. N.
+*> \endverbatim
+*>
 *> \param[in,out] Z
 *> \verbatim
 *>          Z is COMPLEX array, dimension (LDZ,IHI)
 *>
 *> \param[out] INFO
 *> \verbatim
+*> \verbatim
 *>          INFO is INTEGER
 *>             =  0:  successful exit
 *>           .GT. 0:  if INFO = i, CLAQR4 failed to compute all of
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is a unitary matrix.  The final
 *>                value of  H is upper Hessenberg and triangular in
 *>                rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the unitary matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
index 6c3ba58..41d2c2c 100644 (file)
 *>          reflectors whose product defines the block reflector).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] V
 *> \verbatim
-*          The matrix V. See Further Details.
+*>          V is COMPLEX array, dimension
+*>                                (LDV,K) if STOREV = 'C'
+*>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
+*>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
+*>          The matrix V. See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) COMPLEX array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,K)
 *>          The triangular K-by-K matrix T in the representation of the
 *>          block reflector.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
-*>  C       (input/output) COMPLEX array, dimension (LDC,N)
+*> \param[in,out] C
+*> \verbatim
+*>          C is COMPLEX array, dimension (LDC,N)
 *>          On entry, the M-by-N matrix C.
 *>          On exit, C is overwritten by H*C or H**H*C or C*H or C*H**H.
+*> \endverbatim
 *>
-*>  LDC     (input) INTEGER
+*> \param[in] LDC
+*> \verbatim
+*>          LDC is INTEGER
 *>          The leading dimension of the array C. LDC >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX array, dimension (LDWORK,K)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (LDWORK,K)
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= max(1,N);
 *>          if SIDE = 'R', LDWORK >= max(1,M).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index fe4c686..d4379f3 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) COMPLEX array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is COMPLEX array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) COMPLEX array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index 5990c42..2e0b17c 100644 (file)
 *>          is stored the corresponding shift as given by SLARRE.
 *>          On exit, L is overwritten.
 *> \endverbatim
+*>
+*> \param[in] PIVMIN
 *> \verbatim
-*>  PIVMIN  (in) DOUBLE PRECISION
+*>          PIVMIN is REAL
 *>          The minimum pivot allowed in the Sturm sequence.
 *> \endverbatim
 *>
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*> \endverbatim
-*> \verbatim
+*>
 *>          > 0:  A problem occured in CLARRV.
 *>          < 0:  One of the called subroutines signaled an internal problem.
 *>                Needs inspection of the corresponding parameter IINFO
 *>                for further information.
-*> \endverbatim
-*> \verbatim
+*>
 *>          =-1:  Problem in SLARRB when refining a child's eigenvalues.
 *>          =-2:  Problem in SLARRF when computing the RRR of a child.
 *>                When a child is inside a tight cluster, it can be difficult
index c5294a3..67c02f7 100644 (file)
@@ -94,8 +94,6 @@
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  3-5-96 - Modified with a new algorithm by W. Kahan and J. Demmel
 *>
index 8371efc..2a5994d 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise                        (not supported yet)
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) COMPLEX array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is COMPLEX array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) COMPLEX array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  Based on contributions by
 *>    A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
index 64f4ef6..3b86e31 100644 (file)
 *> \param[in] CFROM
 *> \verbatim
 *>          CFROM is REAL
+*> \endverbatim
+*>
 *> \param[in] CTO
 *> \verbatim
 *>          CTO is REAL
+*> \endverbatim
+*> \verbatim
 *>          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
 *>          can be represented without over/underflow.  CFROM must be
 *>          nonzero.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] M
 *> \verbatim
index 2c1f099..ff4119b 100644 (file)
 *>          The number of rows and columns to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX array, dimension (LDA,N)
+*>          On entry, the Hermitian matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit:
+*>          if UPLO = 'U', the last NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements above the diagonal
+*>            with the array TAU, represent the unitary matrix Q as a
+*>            product of elementary reflectors;
+*>          if UPLO = 'L', the first NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements below the diagonal
+*>            with the array TAU, represent the  unitary matrix Q as a
+*>            product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
 *>          If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal
 *>          elements of the last NB columns of the reduced matrix;
 *>          if UPLO = 'L', E(1:nb) contains the subdiagonal elements of
 *>          the first NB columns of the reduced matrix.
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors, stored in
 *>          TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  W       (output) COMPLEX array, dimension (LDW,NB)
+*> \param[out] W
+*> \verbatim
+*>          W is COMPLEX array, dimension (LDW,NB)
 *>          The n-by-nb matrix W required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDW     (input) INTEGER
+*> \param[in] LDW
+*> \verbatim
+*>          LDW is INTEGER
 *>          The leading dimension of the array W. LDW >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index 3775e17..0d38773 100644 (file)
 *>          as follows:
 *>          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
 *>          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
+*>
+*>          On exit, if INFO = 0, the factor S from the split Cholesky
+*>          factorization A = S**H*S. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDAB
+*> \verbatim
+*>          LDAB is INTEGER
+*>          The leading dimension of the array AB.  LDAB >= KD+1.
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*>          > 0: if INFO = i, the factorization could not be completed,
+*>               because the updated element a(i,i) was negative; the
+*>               matrix A is not positive definite.
 *> \endverbatim
 *>
 *
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          factorization A = S**H*S. See Further Details.
-*>
-*>  LDAB    (input) INTEGER
-*>          The leading dimension of the array AB.  LDAB >= KD+1.
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>          > 0: if INFO = i, the factorization could not be completed,
-*>               because the updated element a(i,i) was negative; the
-*>               matrix A is not positive definite.
-*>
 *>
 *>  The band storage scheme is illustrated by the following example, when
 *>  N = 7, KD = 2:
index 7519bed..d69ba40 100644 (file)
@@ -76,6 +76,8 @@
 *> \param[in] C
 *> \verbatim
 *>          C is REAL
+*> \endverbatim
+*>
 *> \param[in] S
 *> \verbatim
 *>          S is COMPLEX
@@ -84,7 +86,6 @@
 *>             [ -conjg(S)   C  ]
 *>          where C*C + S*CONJG(S) = 1.0.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index 3de7747..89b4964 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 6eac5c2..2e5c80e 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] M
 *> \verbatim
index c669f90..7063ce5 100644 (file)
 *>          WORK is COMPLEX array, dimension (N)
 *> \endverbatim
 *>
-*> \param[in] LWORK
-*> \verbatim
-*>          LWORK is INTEGER
-*>          The length of WORK.  LWORK >=1. 
-*>          LWORK = N
-*> \endverbatim
-*> \verbatim
-*>          If LWORK = -1, then a workspace query is assumed; the routine
-*>          only calculates the optimal size of the WORK array, returns
-*>          this value as the first entry of the WORK array, and no error
-*>          message related to LWORK is issued by XERBLA.
-*> \endverbatim
-*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 563f136..757ea7d 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Reference: Livne, O.E. and Golub, G.H., "Scaling by Binormalization",
 *>  Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004.
index 59aac06..f8f31d3 100644 (file)
 *> \param[out] ALPHA
 *> \verbatim
 *>          ALPHA is COMPLEX array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is COMPLEX array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          The diagonal elements of A and B, respectively,
 *>          when the pair (A,B) has been reduced to generalized Schur
 *>          form.  ALPHA(i)/BETA(i) i=1,...,N are the generalized
 *>          eigenvalues.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] Q
 *> \verbatim
 *> \param[out] PL
 *> \verbatim
 *>          PL is REAL
+*> \endverbatim
+*>
 *> \param[out] PR
 *> \verbatim
 *>          PR is REAL
+*> \endverbatim
+*> \verbatim
 *>          If IJOB = 1, 4 or 5, PL, PR are lower bounds on the
 *>          reciprocal  of the norm of "projections" onto left and right
 *>          eigenspace with respect to the selected cluster.
 *>          If M = 0 or M = N, PL = PR  = 1.
 *>          If IJOB = 0, 2 or 3 PL, PR are not referenced.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] DIF
 *> \verbatim
index e0d420a..000a9ff 100644 (file)
 *>          The number of columns of the matrices A and B.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] K
 *> \verbatim
-*          See Further Details.
+*>          K is INTEGER
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX array, dimension (LDA,N)
+*> \param[in] L
+*> \verbatim
+*>          L is INTEGER
+*>
+*>          K and L specify the subblocks in the input matrices A and B:
+*>          A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,,N-L+1:N)
+*>          of A and B, whose GSVD is going to be computed by CTGSJA.
+*>          See Further Details.
+*> \endverbatim
+*>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
 *>          On entry, the M-by-N matrix A.
 *>          On exit, A(N-K+1:N,1:MIN(K+L,M) ) contains the triangular
 *>          matrix R or part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, if necessary, B(M-K+1:L,N+M-K-L+1:N) contains
 *>          a part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
+*>
+*> \param[in] TOLA
+*> \verbatim
+*>          TOLA is REAL
+*> \endverbatim
+*>
+*> \param[in] TOLB
+*> \verbatim
+*>          TOLB is REAL
 *>
-*>  TOLA    (input) REAL
-*>  TOLB    (input) REAL
 *>          TOLA and TOLB are the convergence criteria for the Jacobi-
 *>          Kogbetliantz iteration procedure. Generally, they are the
 *>          same as used in the preprocessing step, say
 *>              TOLA = MAX(M,N)*norm(A)*MACHEPS,
 *>              TOLB = MAX(P,N)*norm(B)*MACHEPS.
+*> \endverbatim
+*>
+*> \param[out] ALPHA
+*> \verbatim
+*>          ALPHA is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] BETA
+*> \verbatim
+*>          BETA is REAL array, dimension (N)
 *>
-*>  ALPHA   (output) REAL array, dimension (N)
-*>  BETA    (output) REAL array, dimension (N)
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>          Furthermore, if K+L < N,
 *>            ALPHA(K+L+1:N) = 0
 *>            BETA(K+L+1:N)  = 0.
+*> \endverbatim
 *>
-*>  U       (input/output) COMPLEX array, dimension (LDU,M)
+*> \param[in,out] U
+*> \verbatim
+*>          U is COMPLEX array, dimension (LDU,M)
 *>          On entry, if JOBU = 'U', U must contain a matrix U1 (usually
 *>          the unitary matrix returned by CGGSVP).
 *>          On exit,
 *>          if JOBU = 'I', U contains the unitary matrix U;
 *>          if JOBU = 'U', U contains the product U1*U.
 *>          If JOBU = 'N', U is not referenced.
+*> \endverbatim
 *>
-*>  LDU     (input) INTEGER
+*> \param[in] LDU
+*> \verbatim
+*>          LDU is INTEGER
 *>          The leading dimension of the array U. LDU >= max(1,M) if
 *>          JOBU = 'U'; LDU >= 1 otherwise.
+*> \endverbatim
 *>
-*>  V       (input/output) COMPLEX array, dimension (LDV,P)
+*> \param[in,out] V
+*> \verbatim
+*>          V is COMPLEX array, dimension (LDV,P)
 *>          On entry, if JOBV = 'V', V must contain a matrix V1 (usually
 *>          the unitary matrix returned by CGGSVP).
 *>          On exit,
 *>          if JOBV = 'I', V contains the unitary matrix V;
 *>          if JOBV = 'V', V contains the product V1*V.
 *>          If JOBV = 'N', V is not referenced.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V. LDV >= max(1,P) if
 *>          JOBV = 'V'; LDV >= 1 otherwise.
+*> \endverbatim
 *>
-*>  Q       (input/output) COMPLEX array, dimension (LDQ,N)
+*> \param[in,out] Q
+*> \verbatim
+*>          Q is COMPLEX array, dimension (LDQ,N)
 *>          On entry, if JOBQ = 'Q', Q must contain a matrix Q1 (usually
 *>          the unitary matrix returned by CGGSVP).
 *>          On exit,
 *>          if JOBQ = 'I', Q contains the unitary matrix Q;
 *>          if JOBQ = 'Q', Q contains the product Q1*Q.
 *>          If JOBQ = 'N', Q is not referenced.
+*> \endverbatim
 *>
-*>  LDQ     (input) INTEGER
+*> \param[in] LDQ
+*> \verbatim
+*>          LDQ is INTEGER
 *>          The leading dimension of the array Q. LDQ >= max(1,N) if
 *>          JOBQ = 'Q'; LDQ >= 1 otherwise.
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX array, dimension (2*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (2*N)
+*> \endverbatim
 *>
-*>  NCYCLE  (output) INTEGER
+*> \param[out] NCYCLE
+*> \verbatim
+*>          NCYCLE is INTEGER
 *>          The number of cycles required for convergence.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *>          = 1:  the procedure does not converge after MAXIT cycles.
+*> \endverbatim
 *>
 *>  Internal Parameters
 *>  ===================
-*>
+*> 
+*> \verbatim
 *>  MAXIT   INTEGER
 *>          MAXIT specifies the total loops that the iterative procedure
 *>          may take. If after MAXIT cycles, the routine fails to
 *>          converge, we return INFO = 1.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  CTGSJA essentially uses a variant of Kogbetliantz algorithm to reduce
 *>  min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L
index 46bb867..7464853 100644 (file)
@@ -67,6 +67,7 @@
 *> \verbatim
 *>          N is INTEGER
 *>          The number of columns of the matrix B. N >= 0.
+*> \endverbatim
 *> 
 *> \param[in] K
 *> \verbatim
 *>          The number of elementary reflectors whose product defines
 *>          the matrix Q.
 *> \endverbatim
-*> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size used for the storage of T.  K >= NB >= 1.
 *>          This must be the same value of NB used to generate T
 *>          in CTPQRT.
+*> \endverbatim
 *>
-*>  V       (input) COMPLEX array, dimension (LDA,K)
+*> \param[in] V
+*> \verbatim
+*>          V is COMPLEX array, dimension (LDA,K)
 *>          The i-th column must contain the vector which defines the
 *>          elementary reflector H(i), for i = 1,2,...,k, as returned by
 *>          CTPQRT in B.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.
-*>          If SIDE = 'L', LDA >= max(1,M);
-*>          if SIDE = 'R', LDA >= max(1,N).
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
+*>          The leading dimension of the array V.
+*>          If SIDE = 'L', LDV >= max(1,M);
+*>          if SIDE = 'R', LDV >= max(1,N).
+*> \endverbatim
 *>
-*>  T       (input) COMPLEX array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,K)
 *>          The upper triangular factors of the block reflectors
 *>          as returned by CTPQRT, stored as a NB-by-K matrix.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension
 *>          (LDA,N) if SIDE = 'L' or 
 *>          (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          Q*C or Q**H*C or C*Q or C*Q**H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          Q*C or Q**H*C or C*Q or C*Q**H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX array.  The dimension of WORK is
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array. The dimension of WORK is
 *>           N*NB if SIDE = 'L', or  M*NB if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The columns of the pentagonal matrix V contain the elementary reflectors
 *>  H(1), H(2), ..., H(K); V is composed of a rectangular block V1 and a 
index dff156e..48a1705 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size to be used in the blocked QR.  N >= NB >= 1.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,N)
 *>          The upper triangular block reflectors stored in compact form
 *>          as a sequence of upper triangular blocks.  See Further Details.
+*> \endverbatim
 *>          
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX array, dimension (NB*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension (NB*N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
-*>  
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
 *>               C = [ A ]
index 6eb3cae..b33fb41 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.  
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,N)
 *>          The N-by-N upper triangular factor T of the block reflector.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit
 *>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
index 33c0d65..e71d821 100644 (file)
 *>          K >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complexOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  V       (input) COMPLEX array, dimension
+*> \param[in] V
+*> \verbatim
+*>          V is COMPLEX array, dimension
 *>                                (LDV,K) if STOREV = 'C'
 *>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
 *>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
 *>          The pentagonal matrix V, which contains the elementary reflectors
 *>          H(1), H(2), ..., H(K).  See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) COMPLEX array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is COMPLEX array, dimension (LDT,K)
 *>          The triangular K-by-K matrix T in the representation of the
 *>          block reflector.  
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. 
 *>          LDT >= K.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension
 *>          (LDA,N) if SIDE = 'L' or (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          H*C or H**H*C or C*H or C*H**H.  See Futher Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          H*C or H**H*C or C*H or C*H**H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX array, dimension 
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX array, dimension
 *>          (LDWORK,N) if SIDE = 'L',
 *>          (LDWORK,K) if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= K; 
 *>          if SIDE = 'R', LDWORK >= M.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complexOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix C is a composite matrix formed from blocks A and B.
 *>  The block B is of size M-by-N; if SIDE = 'R', A is of size M-by-K, 
index 9d305ee..e7de5ac 100644 (file)
 *> \param[in] IFST
 *> \verbatim
 *>          IFST is INTEGER
+*> \endverbatim
+*>
 *> \param[in] ILST
 *> \verbatim
 *>          ILST is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          Specify the reordering of the diagonal elements of T:
 *>          The element with row index IFST is moved to row ILST by a
 *>          sequence of transpositions between adjacent elements.
 *>          1 <= IFST <= N; 1 <= ILST <= N.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] INFO
 *> \verbatim
index 6baec68..bc01881 100644 (file)
 *>          The number of columns in X11 and X21. 0 <= Q <= M.
 *> \endverbatim
 *>
-*> \param[in,out] X
+*> \param[in,out] X11
 *> \verbatim
-*>          X is COMPLEX array, dimension (LDX,M)
-*>          On entry, the unitary matrix whose CSD is desired.
+*>          X11 is COMPLEX array, dimension (LDX11,Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
 *> \endverbatim
 *>
-*> \param[in] LDX
+*> \param[in] LDX11
 *> \verbatim
-*>          LDX is INTEGER
-*>          The leading dimension of X. LDX >= MAX(1,M).
+*>          LDX11 is INTEGER
+*>          The leading dimension of X11. LDX11 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X12
+*> \verbatim
+*>          X12 is COMPLEX array, dimension (LDX12,M-Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX12
+*> \verbatim
+*>          LDX12 is INTEGER
+*>          The leading dimension of X12. LDX12 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X21
+*> \verbatim
+*>          X21 is COMPLEX array, dimension (LDX21,Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX21
+*> \verbatim
+*>          LDX21 is INTEGER
+*>          The leading dimension of X11. LDX21 >= MAX(1,M-P).
+*> \endverbatim
+*>
+*> \param[in,out] X22
+*> \verbatim
+*>          X22 is COMPLEX array, dimension (LDX22,M-Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX22
+*> \verbatim
+*>          LDX22 is INTEGER
+*>          The leading dimension of X11. LDX22 >= MAX(1,M-P).
 *> \endverbatim
 *>
 *> \param[out] THETA
index a32a1c1..dc90319 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of CGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index cca7321..8fca77f 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of CGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
@@ -91,7 +95,6 @@
 *>          if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
 *>          ILO = 1 and IHI = 0, if N = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] A
 *> \verbatim
index 91049d1..4f931e7 100644 (file)
 *>          partially reduced top-right block.
 *> \endverbatim
 *>
+*> \param[out] B21D
+*> \verbatim
+*>          B21D is DOUBLE PRECISION  array, dimension (Q)
+*>          When CBBCSD converges, B21D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B21D contains the diagonal of the partially reduced bottom-left
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B21E
+*> \verbatim
+*>          B21E is DOUBLE PRECISION  array, dimension (Q-1)
+*>          When CBBCSD converges, B21E contains zeros. If CBBCSD fails
+*>          to converge, then B21E contains the subdiagonal of the
+*>          partially reduced bottom-left block.
+*> \endverbatim
+*>
+*> \param[out] B22D
+*> \verbatim
+*>          B22D is DOUBLE PRECISION  array, dimension (Q)
+*>          When CBBCSD converges, B22D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B22D contains the diagonal of the partially reduced bottom-right
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B22E
+*> \verbatim
+*>          B22E is DOUBLE PRECISION  array, dimension (Q-1)
+*>          When CBBCSD converges, B22E contains zeros. If CBBCSD fails
+*>          to converge, then B22E contains the subdiagonal of the
+*>          partially reduced bottom-right block.
+*> \endverbatim
+*>
 *> \param[out] WORK
 *> \verbatim
 *>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
index 87b04e5..2e54ec9 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> DGBSV computes the solution to system of linear equations A * X = B for GB matrices</b>
+*> \brief <b> DGBSV computes the solution to system of linear equations A * X = B for GB matrices</b> (simple driver)
 *
 *  =========== DOCUMENTATION ===========
 *
index 08d7999..a1b20f9 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is DOUBLE array, dimension (LDA,N)
+*>          On entry, the input matrix A.
+*>          On exit,  A is overwritten by the balanced matrix.
+*>          If JOB = 'N', A is not referenced.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  ILO     (output) INTEGER
-*>
-*>  IHI     (output) INTEGER
+*> \param[out] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*> \param[out] IHI
+*> \verbatim
+*>          IHI is 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.
 *>          If JOB = 'N' or 'S', ILO = 1 and IHI = N.
+*> \endverbatim
 *>
-*>  SCALE   (output) DOUBLE PRECISION array, dimension (N)
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is DOUBLE array, dimension (N)
 *>          Details of the permutations and scaling factors applied to
 *>          A.  If P(j) is the index of the row and column interchanged
 *>          with row and column j and D(j) is the scaling factor
 *>                   = P(j)    for j = IHI+1,...,N.
 *>          The order in which the interchanges are made is N to IHI+1,
 *>          then 1 to ILO-1.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The permutations consist of row and column interchanges which put
 *>  the matrix in the form
index c8d8df4..32da134 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the orthogonal matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the orthogonal matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) DOUBLE PRECISION array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is DOUBLE PRECISION array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (max(M,N))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (max(M,N))
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit.
 *>          < 0: if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index 7065678..91118e3 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the M-by-N general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the orthogonal matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the orthogonal matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) DOUBLE PRECISION array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is DOUBLE PRECISION array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,M,N).
 *>          For optimum performance LWORK >= (M+N)*NB, where NB
 *>          is the optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index f00eabe..9e2dee7 100644 (file)
 *>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,3*N).
 *>          For good performance, LWORK must generally be larger.
-*> \endverbatim
-*> \verbatim
+*>
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
index f6d3292..daae6ce 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to DGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= max(1,N).
+*> \endverbatim
 *>
-*>  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
 *>          On entry, the n by n general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the orthogonal matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index b24b2e3..653a5fb 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
+*> \verbatim
+*>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to DGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
+*> \endverbatim
 *>
-*>  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
 *>          On entry, the N-by-N general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the orthogonal matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details). Elements 1:ILO-1 and IHI:N-1 of TAU are set to
 *>          zero.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (LWORK)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (LWORK)
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index 41b61d3..d653ded 100644 (file)
 *>                    determined to be strictly smaller than N, SCONDA is
 *>                    returned as -1, thus indicating that the smallest
 *>                    singular values might be lost.
-*> \endverbatim
-*> \verbatim
+*>
 *>          If full SVD is needed, the following two condition numbers are
 *>          useful for the analysis of the algorithm. They are provied for
 *>          a developer/implementer who is familiar with the details of
 *>          the method.
-*> \endverbatim
-*> \verbatim
+*>
 *>          WORK(4) = an estimate of the scaled condition number of the
 *>                    triangular factor in the first QR factorization.
 *>          WORK(5) = an estimate of the scaled condition number of the
 *>          The following two parameters are computed if JOBT .EQ. 'T'.
 *>          They are provided for a developer/implementer who is familiar
 *>          with the details of the method.
-*> \endverbatim
-*> \verbatim
+*>
 *>          WORK(6) = the entropy of A^t*A :: this is the Shannon entropy
 *>                    of diag(A^t*A) / Trace(A^t*A) taken as point in the
 *>                    probability simplex.
 *>          LWORK is INTEGER
 *>          Length of WORK to confirm proper allocation of work space.
 *>          LWORK depends on the job:
-*> \endverbatim
-*> \verbatim
+*>
 *>          If only SIGMA is needed ( JOBU.EQ.'N', JOBV.EQ.'N' ) and
 *>            -> .. no scaled condition estimate required (JOBE.EQ.'N'):
 *>               LWORK >= max(2*M+N,4*N+1,7). This is the minimal requirement.
 *>               In general, the optimal length LWORK is computed as
 *>               LWORK >= max(2*M+N,N+LWORK(DGEQP3),N+LWORK(DGEQRF), 
 *>                                                     N+N*N+LWORK(DPOCON),7).
-*> \endverbatim
-*> \verbatim
+*>
 *>          If SIGMA and the right singular vectors are needed (JOBV.EQ.'V'),
 *>            -> the minimal requirement is LWORK >= max(2*M+N,4*N+1,7).
 *>            -> For optimal performance, LWORK >= max(2*M+N,3*N+(N+1)*NB,7),
 *>               DORMLQ. In general, the optimal length LWORK is computed as
 *>               LWORK >= max(2*M+N,N+LWORK(DGEQP3), N+LWORK(DPOCON), 
 *>                       N+LWORK(DGELQ), 2*N+LWORK(DGEQRF), N+LWORK(DORMLQ)).
-*> \endverbatim
-*> \verbatim
+*>
 *>          If SIGMA and the left singular vectors are needed
 *>            -> the minimal requirement is LWORK >= max(2*M+N,4*N+1,7).
 *>            -> For optimal performance:
index bebd22a..095c796 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m by min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (M)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (M)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 9cc3f10..cc1c890 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m-by-min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 8908d54..3c3aa3d 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the m by n lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          orthogonal matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index befdfa8..9e7c30a 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          (see Further Details).
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the N-by-N lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the M-by-N lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          orthogonal matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 0cbc512..27a2606 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 66fdf27..2764d25 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index add064c..09b15f6 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  
 *>  The matrix V stores the elementary reflectors H(i) in the i-th column
 *>  below the diagonal. For example, if M=5 and N=3, the matrix V is
 *>
index 461decc..1d3f519 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index 1885306..ff04862 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index f6ecacb..90b8594 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          reflectors (see Further Details).
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m <= n, the upper triangle of the subarray
+*>          A(1:m,n-m+1:n) contains the M-by-M upper triangular matrix R;
+*>          if m >= n, the elements on and above the (m-n)-th subdiagonal
+*>          contain the M-by-N upper trapezoidal matrix R;
+*>          the remaining elements, with the array TAU, represent the
+*>          orthogonal matrix Q as a product of min(m,n) elementary
+*>          reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is
 *>          the optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 7e7e1ec..9764edf 100644 (file)
@@ -5,13 +5,15 @@
 * Online html documentation available at 
 *            http://www.netlib.org/lapack/explore-html/ 
 *
+*> \htmlonly
 *> Download DGESV + dependencies 
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgesv.f"> 
 *> [TGZ]</a> 
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgesv.f"> 
 *> [ZIP]</a> 
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgesv.f"> 
-*> [TXT]</a> 
+*> [TXT]</a>
+*> \endhtmlonly
 *
 *  Definition
 *  ==========
index f31581d..40b2122 100644 (file)
 *> \param[out] X
 *> \verbatim
 *>          X is DOUBLE PRECISION array, dimension (M)
+*> \endverbatim
+*>
 *> \param[out] Y
 *> \verbatim
 *>          Y is DOUBLE PRECISION array, dimension (P)
-*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
+*> \verbatim
+*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
 *>
 *> \param[out] WORK
index 7b6ad71..ae3a393 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI mark the rows and columns of A which are to be
 *>          reduced.  It is assumed that A is already upper triangular
 *>          in rows and columns 1:ILO-1 and IHI+1:N.  ILO and IHI are
-*>          normally set by a previous call to SGGBAL; otherwise they
+*>          normally set by a previous call to DGGBAL; otherwise they
 *>          should be set to 1 and N respectively.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index e00acd6..497afc7 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,N).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the orthogonal matrix Q (see Further Details).
+*>          TAUA is DOUBLE PRECISION array, dimension (min(N,M))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the orthogonal matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) DOUBLE PRECISION array, dimension (LDB,P)
+*> \param[in,out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB,P)
 *>          On entry, the N-by-P matrix B.
 *>          On exit, if N <= P, the upper triangle of the subarray
 *>          B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
 *>          elements, with the array TAUB, represent the orthogonal
 *>          matrix Z as a product of elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,N).
+*> \endverbatim
 *>
-*>  TAUB    (output) DOUBLE PRECISION array, dimension (min(N,P))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is DOUBLE PRECISION array, dimension (min(N,P))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the QR factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 6a930a7..1d1a9a4 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,M).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the orthogonal matrix Q (see Further Details).
+*>          TAUA is DOUBLE PRECISION array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the orthogonal matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) DOUBLE PRECISION array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the min(P,N)-by-N upper trapezoidal matrix T (T is
 *>          upper triangular if P >= N); the elements below the diagonal,
 *>          with the array TAUB, represent the orthogonal matrix Z as a
 *>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
 *>
-*>  TAUB    (output) DOUBLE PRECISION array, dimension (min(P,N))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is DOUBLE PRECISION array, dimension (min(P,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the RQ factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INF0= -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index fce2da0..c3b3145 100644 (file)
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
-*>          described in the Purpose section.
+*>          described in Purpose.
 *>          K + L = effective numerical rank of (A**T,B**T)**T.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
 *> \param[out] ALPHA
 *> \verbatim
 *>          ALPHA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>            ALPHA(K+L+1:N) = 0
 *>            BETA(K+L+1:N)  = 0
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index e25cb8f..12bce97 100644 (file)
 *> \param[in] TOLA
 *> \verbatim
 *>          TOLA is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] TOLB
 *> \verbatim
 *>          TOLB is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          TOLA and TOLB are the thresholds to determine the effective
 *>          numerical rank of matrix B and a subblock of A. Generally,
 *>          they are set to
-*>             TOLA = MAX(M,N)*norm(A)*MAZHEPS,
-*>             TOLB = MAX(P,N)*norm(B)*MAZHEPS.
+*>             TOLA = MAX(M,N)*norm(A)*MACHEPS,
+*>             TOLB = MAX(P,N)*norm(B)*MACHEPS.
 *>          The size of TOLA and TOLB may affect the size of backward
 *>          errors of the decomposition.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
 *>          described in Purpose section.
 *>          K + L = effective numerical rank of (A**T,B**T)**T.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index 617174b..e86297f 100644 (file)
 *> \param[in,out] WR
 *> \verbatim
 *>          WR is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
 *> \param[in] WI
 *> \verbatim
 *>          WI is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On entry, the real and imaginary parts of the eigenvalues of
 *>          H; a complex conjugate pair of eigenvalues must be stored in
 *>          consecutive elements of WR and WI.
 *>          are perturbed slightly in searching for independent
 *>          eigenvectors.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] VL
 *> \verbatim
index be264d3..0ea3bc9 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>           It is assumed that H is already upper triangular in rows
 *>           and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
-*>           set by a previous call to DGEBAL, and then passed to DGEHRD
+*>           set by a previous call to DGEBAL, and then passed to ZGEHRD
 *>           when the matrix output by DGEBAL is reduced to Hessenberg
 *>           form. Otherwise ILO and IHI should be set to 1 and N
 *>           respectively.  If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N.
 *>           If N = 0, then ILO = 1 and IHI = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] H
 *> \verbatim
 *> \param[out] WR
 *> \verbatim
 *>          WR is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] WI
 *> \verbatim
 *>          WI is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>           The real and imaginary parts, respectively, of the computed
 *>           eigenvalues. If two eigenvalues are computed as a complex
 *>           conjugate pair, they are stored in consecutive elements of
 *>           diagonal block, WI(i) = sqrt(-H(i+1,i)*H(i,i+1)) and
 *>           WI(i+1) = -WI(i).
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] Z
 *> \verbatim
index 36c2c57..40f6de0 100644 (file)
 *>     matrix B.
 *> \endverbatim
 *>
-*> \param[in] A
+*> \param[in] AB
 *> \verbatim
-*>          A is DOUBLE PRECISION array, dimension (LDA,N)
-*>     On entry, the N-by-N matrix A.
+*>          AB is DOUBLE PRECISION array, dimension (LDAB,N)
+*>          On entry, the N-by-N matrix AB.
 *> \endverbatim
 *>
-*> \param[in] LDA
+*> \param[in] LDAB
 *> \verbatim
-*>          LDA is INTEGER
-*>     The leading dimension of the array A.  LDA >= max(1,N).
+*>          LDAB is INTEGER
+*>          The leading dimension of the array AB.  LDBA >= max(1,N).
 *> \endverbatim
 *>
-*> \param[in] AF
+*> \param[in] AFB
 *> \verbatim
-*>          AF is DOUBLE PRECISION array, dimension (LDAF,N)
+*>          AFB is DOUBLE PRECISION array, dimension (LDAFB,N)
 *>     The factors L and U from the factorization
 *>     A = P*L*U as computed by DGBTRF.
 *> \endverbatim
 *>
-*> \param[in] LDAF
+*> \param[in] LDAFB
 *> \verbatim
-*>          LDAF is INTEGER
-*>     The leading dimension of the array AF.  LDAF >= max(1,N).
+*>          LDAFB is INTEGER
+*>     The leading dimension of the array AF.  LDAFB >= max(1,N).
 *> \endverbatim
 *>
 *> \param[in] IPIV
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_NORM(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
 *>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_COMP(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
index c9788e9..c3e009b 100644 (file)
 *> and provides error bounds and backward error estimates for the solution.
 *> This subroutine is called by DGERFSX to perform iterative refinement.
 *> In addition to normwise error bound, the code provides maximum
-*> componentwise error bound if possible. See comments for ERR_BNDS_NORM
-*> and ERR_BNDS_COMP for details of the error bounds. Note that this
+*> componentwise error bound if possible. See comments for ERRS_N
+*> and ERRS_C for details of the error bounds. Note that this
 *> subroutine is only resonsible for setting the second fields of
-*> ERR_BNDS_NORM and ERR_BNDS_COMP.
+*> ERRS_N and ERRS_C.
 *>
 *>\endverbatim
 *
 *> \param[in] N_NORMS
 *> \verbatim
 *>          N_NORMS is INTEGER
-*>     Determines which error bounds to return (see ERR_BNDS_NORM
-*>     and ERR_BNDS_COMP).
+*>     Determines which error bounds to return (see ERRS_N
+*>     and ERRS_C).
 *>     If N_NORMS >= 1 return normwise error bounds.
 *>     If N_NORMS >= 2 return componentwise error bounds.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_NORM
+*> \param[in,out] ERRS_N
 *> \verbatim
-*>          ERR_BNDS_NORM is DOUBLE PRECISION array, dimension
+*>          ERRS_N is DOUBLE PRECISION array, dimension
 *>                    (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_N(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_NORM(:,err) contains the following
+*>
+*>     The second index in ERRS_N(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     cautions.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_COMP
+*> \param[in,out] ERRS_C
 *> \verbatim
-*>          ERR_BNDS_COMP is DOUBLE PRECISION array, dimension
+*>          ERRS_C is DOUBLE PRECISION array, dimension
 *>                    (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     pieces of information returned for each right-hand side. If
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
-*>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
+*>     ERRS_C is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_C(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_COMP(:,err) contains the following
+*>
+*>     The second index in ERRS_C(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     permit convergence using approximate factorizations or
 *>     factorizations other than LU. If the factorization uses a
 *>     technique other than Gaussian elimination, the guarantees in
-*>     ERR_BNDS_NORM and ERR_BNDS_COMP may no longer be trustworthy.
+*>     ERRS_N and ERRS_C may no longer be trustworthy.
 *> \endverbatim
 *>
 *> \param[in] RTHRESH
index 8fbc294..dbf450b 100644 (file)
 *>     The denominator in the relative backward error formula above, i.e.,
 *>     the matrix abs(op(A_s))*abs(Y) + abs(B_s). The matrices A, Y, and B
 *>     are from iterative refinement (see dla_gerfsx_extended.f).
+*> \endverbatim
 *>     
 *> \param[out] BERR
 *> \verbatim
 *>          BERR is DOUBLE PRECISION array, dimension (NRHS)
 *>     The component-wise relative backward error from the formula above.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index c677cf9..33a476e 100644 (file)
 *>     column INFO is exactly 0.
 *> \endverbatim
 *>
-*> \param[in] NCOLS
-*> \verbatim
-*>          NCOLS is INTEGER
-*>     The number of columns of the matrix A. NCOLS >= 0.
-*> \endverbatim
-*>
 *> \param[in] A
 *> \verbatim
 *>          A is DOUBLE PRECISION array, dimension (LDA,N)
index 51255d2..406a7b7 100644 (file)
 *>          The number of leading rows and columns of A to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit, the first NB rows and columns of the matrix are
+*>          overwritten; the rest of the array is unchanged.
+*>          If m >= n, elements on and below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the orthogonal
+*>            matrix Q as a product of elementary reflectors; and
+*>            elements above the diagonal in the first NB rows, with the
+*>            array TAUP, represent the orthogonal matrix P as a product
+*>            of elementary reflectors.
+*>          If m < n, elements below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the orthogonal
+*>            matrix Q as a product of elementary reflectors, and
+*>            elements on and above the diagonal in the first NB rows,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (NB)
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (NB)
 *>          The diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.  D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (NB)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (NB)
 *>          The off-diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.
+*> \endverbatim
 *>
-*>  TAUQ    (output) DOUBLE PRECISION array dimension (NB)
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is DOUBLE PRECISION array dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) DOUBLE PRECISION array, dimension (NB)
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is DOUBLE PRECISION array, dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  X       (output) DOUBLE PRECISION array, dimension (LDX,NB)
+*> \param[out] X
+*> \verbatim
+*>          X is DOUBLE PRECISION array, dimension (LDX,NB)
 *>          The m-by-nb matrix X required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDX     (input) INTEGER
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
 *>          The leading dimension of the array X. LDX >= max(1,M).
+*> \endverbatim
 *>
-*>  Y       (output) DOUBLE PRECISION array, dimension (LDY,NB)
+*> \param[out] Y
+*> \verbatim
+*>          Y is DOUBLE PRECISION array, dimension (LDY,NB)
 *>          The n-by-nb matrix Y required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDY     (input) INTEGER
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
 *>          The leading dimension of the array Y. LDY >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index 280ab92..c2489d0 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Contributed by Nick Higham, University of Manchester.
 *>  Originally named SONEST, dated March 16, 1988.
index 8bf0bf9..06a20f0 100644 (file)
 *>          to update the system.
 *> \endverbatim
 *>
-*> \param[in] LDS
-*> \verbatim
-*>          LDS is INTEGER
-*>          The leading dimension of S.  LDS >= max(1,K).
-*> \endverbatim
-*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 300cb2a..bfa2b17 100644 (file)
 *> \verbatim
 *>          X is DOUBLE PRECISION array, dimension (LDX,NRHS)
 *>          The N by NRHS matrix X.
+*> \endverbatim
+*>
 *> \param[in] LDX
 *> \verbatim
 *>          LDX is INTEGER
 *>          The leading dimension of the array X.  LDX >= max(N,1).
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] BETA
 *> \verbatim
index b3a0dcb..81d4923 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is DOUBLE PRECISION array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= N.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) DOUBLE PRECISION array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) DOUBLE PRECISION array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= N.
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index 189e6e8..92e709e 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is DOUBLE PRECISION array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= N.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) DOUBLE PRECISION array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) DOUBLE PRECISION array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= N.
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index c15924f..b83ef92 100644 (file)
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is an orthogonal matrix.  The final
 *>                value of H is upper Hessenberg and quasi-triangular
 *>                in rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the orthogonal matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
 *>     Based on contributions by
 *>        Karen Braman and Ralph Byers, Department of Mathematics,
 *>        University of Kansas, USA
-*> \endverbatim
-*> \verbatim
+*>
 *>     References:
 *>       K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
 *>       Algorithm Part I: Maintaining Well Focused Shifts, and Level 3
 *>       Performance, SIAM Journal of Matrix Analysis, volume 23, pages
 *>       929--947, 2002.
-*> \endverbatim
-*> \verbatim
+*>
 *>       K. Braman, R. Byers and R. Mathias, The Multi-Shift QR
 *>       Algorithm Part II: Aggressive Early Deflation, SIAM Journal
 *>       of Matrix Analysis, volume 23, pages 948--973, 2002.
index 760f13d..635c49b 100644 (file)
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
-*>                where U is an orthogonal matrix.  The final
-*>                value of H is upper Hessenberg and quasi-triangular
-*>                in rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
+*>                where U is a orthogonal matrix.  The final
+*>                value of  H is upper Hessenberg and triangular in
+*>                rows and columns INFO+1 through IHI.
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the orthogonal matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
index d690f3d..00e8b94 100644 (file)
 *>          reflectors whose product defines the block reflector).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] V
 *> \verbatim
-*          The matrix V. See Further Details.
+*>          V is DOUBLE PRECISION array, dimension
+*>                                (LDV,K) if STOREV = 'C'
+*>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
+*>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
+*>          The matrix V. See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) DOUBLE PRECISION array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,K)
 *>          The triangular k by k matrix T in the representation of the
 *>          block reflector.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
-*>  C       (input/output) DOUBLE PRECISION array, dimension (LDC,N)
+*> \param[in,out] C
+*> \verbatim
+*>          C is DOUBLE PRECISION array, dimension (LDC,N)
 *>          On entry, the m by n matrix C.
 *>          On exit, C is overwritten by H*C or H**T*C or C*H or C*H**T.
+*> \endverbatim
 *>
-*>  LDC     (input) INTEGER
+*> \param[in] LDC
+*> \verbatim
+*>          LDC is INTEGER
 *>          The leading dimension of the array C. LDC >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (LDWORK,K)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (LDWORK,K)
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= max(1,N);
 *>          if SIDE = 'R', LDWORK >= max(1,M).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index 58efb59..c131467 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) DOUBLE PRECISION array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is DOUBLE PRECISION array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) DOUBLE PRECISION array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) DOUBLE PRECISION array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index 7963159..662adec 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
 *>  The base representations are required to suffer very little
 *>  element growth and consequently define all their eigenvalues to
 *>  high relative accuracy.
index 98818a5..cac54ed 100644 (file)
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*> \endverbatim
-*> \verbatim
+*>
 *>          > 0:  A problem occured in DLARRV.
 *>          < 0:  One of the called subroutines signaled an internal problem.
 *>                Needs inspection of the corresponding parameter IINFO
 *>                for further information.
-*> \endverbatim
-*> \verbatim
+*>
 *>          =-1:  Problem in DLARRB when refining a child's eigenvalues.
 *>          =-2:  Problem in DLARRF when computing the RRR of a child.
 *>                When a child is inside a tight cluster, it can be difficult
index a0c2b08..a88aa5c 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise                        (not supported yet)
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) DOUBLE PRECISION array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is DOUBLE PRECISION array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) DOUBLE PRECISION array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) DOUBLE PRECISION array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  Based on contributions by
 *>    A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
index 63efaae..b9f3a22 100644 (file)
@@ -84,6 +84,8 @@
 *> \param[in] CTO
 *> \verbatim
 *>          CTO is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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
 *>          can be represented without over/underflow.  CFROM must be
index fb1f897..efba3bc 100644 (file)
@@ -65,9 +65,9 @@
 *>        PP=0 for ping, PP=1 for pong.
 *> \endverbatim
 *>
-*> \param[in] NOIN
+*> \param[in] N0IN
 *> \verbatim
-*>          NOIN is INTEGER
+*>          N0IN is INTEGER
 *>        The value of N0 at start of EIGTEST.
 *> \endverbatim
 *>
index 259fbb7..5d06c90 100644 (file)
 *>          The number of rows and columns to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the symmetric matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit:
+*>          if UPLO = 'U', the last NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements above the diagonal
+*>            with the array TAU, represent the orthogonal matrix Q as a
+*>            product of elementary reflectors;
+*>          if UPLO = 'L', the first NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements below the diagonal
+*>            with the array TAU, represent the  orthogonal matrix Q as a
+*>            product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= (1,N).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
 *>          If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal
 *>          elements of the last NB columns of the reduced matrix;
 *>          if UPLO = 'L', E(1:nb) contains the subdiagonal elements of
 *>          the first NB columns of the reduced matrix.
+*> \endverbatim
 *>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors, stored in
 *>          TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  W       (output) DOUBLE PRECISION array, dimension (LDW,NB)
+*> \param[out] W
+*> \verbatim
+*>          W is DOUBLE PRECISION array, dimension (LDW,NB)
 *>          The n-by-nb matrix W required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDW     (input) INTEGER
+*> \param[in] LDW
+*> \verbatim
+*>          LDW is INTEGER
 *>          The leading dimension of the array W. LDW >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index dee37dd..71b8605 100644 (file)
 *>          The number of columns in X11 and X21. 0 <= Q <= M.
 *> \endverbatim
 *>
-*> \param[in,out] X
+*> \param[in,out] X11
 *> \verbatim
-*>          X is DOUBLE PRECISION array, dimension (LDX,M)
-*>          On entry, the orthogonal matrix whose CSD is desired.
+*>          X11 is DOUBLE PRECISION array, dimension (LDX11,Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
 *> \endverbatim
 *>
-*> \param[in] LDX
+*> \param[in] LDX11
 *> \verbatim
-*>          LDX is INTEGER
-*>          The leading dimension of X. LDX >= MAX(1,M).
+*>          LDX11 is INTEGER
+*>          The leading dimension of X11. LDX11 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X12
+*> \verbatim
+*>          X12 is DOUBLE PRECISION array, dimension (LDX12,M-Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX12
+*> \verbatim
+*>          LDX12 is INTEGER
+*>          The leading dimension of X12. LDX12 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X21
+*> \verbatim
+*>          X21 is DOUBLE PRECISION array, dimension (LDX21,Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX21
+*> \verbatim
+*>          LDX21 is INTEGER
+*>          The leading dimension of X11. LDX21 >= MAX(1,M-P).
+*> \endverbatim
+*>
+*> \param[in,out] X22
+*> \verbatim
+*>          X22 is DOUBLE PRECISION array, dimension (LDX22,M-Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX22
+*> \verbatim
+*>          LDX22 is INTEGER
+*>          The leading dimension of X11. LDX22 >= MAX(1,M-P).
 *> \endverbatim
 *>
 *> \param[out] THETA
index 809dd9c..4903dab 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of DGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index d6368e9..0e1b4fa 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of DGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
@@ -90,7 +94,6 @@
 *>          if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
 *>          ILO = 1 and IHI = 0, if N = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] A
 *> \verbatim
index 8266a69..69d68a4 100644 (file)
 *>          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
 *>          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
 *> \endverbatim
+*> \verbatim
+*>          On exit, if INFO = 0, the factor S from the split Cholesky
+*>          factorization A = S**T*S. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDAB
+*> \verbatim
+*>          LDAB is INTEGER
+*>          The leading dimension of the array AB.  LDAB >= KD+1.
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*>          > 0: if INFO = i, the factorization could not be completed,
+*>               because the updated element a(i,i) was negative; the
+*>               matrix A is not positive definite.
+*> \endverbatim
 *>
 *
 *  Authors
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          factorization A = S**T*S. See Further Details.
-*>
-*>  LDAB    (input) INTEGER
-*>          The leading dimension of the array AB.  LDAB >= KD+1.
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>          > 0: if INFO = i, the factorization could not be completed,
-*>               because the updated element a(i,i) was negative; the
-*>               matrix A is not positive definite.
-*>
 *>
 *>  The band storage scheme is illustrated by the following example, when
 *>  N = 7, KD = 2:
index 88627c0..54addd6 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  The packed storage scheme is illustrated by the following example
 *>  when N = 4, UPLO = 'U':
index 45bf409..83c322a 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 928dcc8..43d20a2 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> DSGESV computes the solution to system of linear equations A * X = B for GE matrices</b>
+*> \brief <b> DSGESV computes the solution to system of linear equations A * X = B for GE matrices</b> (mixed precision with iterative refinement)
 *
 *  =========== DOCUMENTATION ===========
 *
index fb407aa..5383aa6 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index cceacff..e9cce8a 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] AP
+*> \verbatim
+*>          AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
+*>          On entry, the upper or lower triangle of the symmetric matrix
+*>          A, packed columnwise in a linear array.  The j-th column of A
+*>          is stored in the array AP as follows:
+*>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
+*>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the orthogonal
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the orthogonal matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  D       (output) DOUBLE PRECISION array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index 301c4b2..d06fc02 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='V', the lower and upper bounds of the interval to
 *>          be searched for eigenvalues.  Eigenvalues less than or equal
 *>          to VL, or greater than VU, will not be returned.  VL < VU.
 *>          Not referenced if RANGE = 'A' or 'I'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index a4c965d..5ce184d 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index a8fd75a..0a39360 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] M
 *> \verbatim
index df7bbc7..36dadeb 100644 (file)
 *>          WORK is DOUBLE PRECISION array, dimension (N)
 *> \endverbatim
 *>
-*> \param[in] LWORK
-*> \verbatim
-*>          LWORK is INTEGER
-*>          The length of WORK.  LWORK >=1. 
-*>          LWORK = N
-*> \endverbatim
-*> \verbatim
-*>          If LWORK = -1, then a workspace query is assumed; the routine
-*>          only calculates the optimal size of the WORK array, returns
-*>          this value as the first entry of the WORK array, and no error
-*>          message related to LWORK is issued by XERBLA.
-*> \endverbatim
-*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 6121f21..5acf457 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Reference: Livne, O.E. and Golub, G.H., "Scaling by Binormalization",
 *>  Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004.
index 1e5117c..dbc2096 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the symmetric matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the orthogonal
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the orthogonal matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  D       (output) DOUBLE PRECISION array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index 7850c90..003bead 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleSYcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          of elementary reflectors. See Further Details.
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
+*>          On entry, the symmetric matrix A.  If UPLO = 'U', the leading
+*>          N-by-N upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading N-by-N lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the orthogonal
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the orthogonal matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (N)
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (N)
 *>          The diagonal elements of the tridiagonal matrix T:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
 *>          The off-diagonal elements of the tridiagonal matrix T:
 *>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
 *>
-*>  TAU     (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is DOUBLE PRECISION array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= 1.
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleSYcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index a6d65af..69921db 100644 (file)
 *> \param[out] ALPHAR
 *> \verbatim
 *>          ALPHAR is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] ALPHAI
 *> \verbatim
 *>          ALPHAI is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
 *>          be the generalized eigenvalues.  ALPHAR(j) + ALPHAI(j)*i
 *>          and BETA(j),j=1,...,N  are the diagonals of the complex Schur
 *>          positive, then the j-th and (j+1)-st eigenvalues are a
 *>          complex conjugate pair, with ALPHAI(j+1) negative.
 *> \endverbatim
-*> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] Q
 *> \verbatim
 *> \param[out] PL
 *> \verbatim
 *>          PL is DOUBLE PRECISION
+*> \endverbatim
+
 *> \param[out] PR
 *> \verbatim
 *>          PR is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          If IJOB = 1, 4 or 5, PL, PR are lower bounds on the
 *>          reciprocal of the norm of "projections" onto left and right
 *>          eigenspaces with respect to the selected cluster.
 *>          If M = 0 or M = N, PL = PR  = 1.
 *>          If IJOB = 0, 2 or 3, PL and PR are not referenced.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] DIF
 *> \verbatim
index 4bdbf30..3c29c3d 100644 (file)
 *>          The number of columns of the matrices A and B.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
+*> \endverbatim
+*>
+*> \param[in] L
+*> \verbatim
+*>          L is INTEGER
+*> \endverbatim
 *> \verbatim
-*          See Further Details.
+*>          K and L specify the subblocks in the input matrices A and B:
+*>          A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,N-L+1:N)
+*>          of A and B, whose GSVD is going to be computed by DTGSJA.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
 *>          On entry, the M-by-N matrix A.
 *>          On exit, A(N-K+1:N,1:MIN(K+L,M) ) contains the triangular
 *>          matrix R or part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  B       (input/output) DOUBLE PRECISION array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, if necessary, B(M-K+1:L,N+M-K-L+1:N) contains
 *>          a part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
 *>
-*>  TOLA    (input) DOUBLE PRECISION
-*>  TOLB    (input) DOUBLE PRECISION
+*> \param[in] TOLA
+*> \verbatim
+*>          TOLA is DOUBLE PRECISION
+*> \endverbatim
+*>
+*> \param[in] TOLB
+*> \verbatim
+*>          TOLB is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          TOLA and TOLB are the convergence criteria for the Jacobi-
 *>          Kogbetliantz iteration procedure. Generally, they are the
 *>          same as used in the preprocessing step, say
 *>              TOLA = max(M,N)*norm(A)*MAZHEPS,
 *>              TOLB = max(P,N)*norm(B)*MAZHEPS.
+*> \endverbatim
 *>
-*>  ALPHA   (output) DOUBLE PRECISION array, dimension (N)
-*>  BETA    (output) DOUBLE PRECISION array, dimension (N)
+*> \param[out] ALPHA
+*> \verbatim
+*>          ALPHA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] BETA
+*> \verbatim
+*>          BETA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>          Furthermore, if K+L < N,
 *>            ALPHA(K+L+1:N) = 0 and
 *>            BETA(K+L+1:N)  = 0.
+*> \endverbatim
 *>
-*>  U       (input/output) DOUBLE PRECISION array, dimension (LDU,M)
+*> \param[in,out] U
+*> \verbatim
+*>          U is DOUBLE PRECISION array, dimension (LDU,M)
 *>          On entry, if JOBU = 'U', U must contain a matrix U1 (usually
 *>          the orthogonal matrix returned by DGGSVP).
 *>          On exit,
 *>          if JOBU = 'I', U contains the orthogonal matrix U;
 *>          if JOBU = 'U', U contains the product U1*U.
 *>          If JOBU = 'N', U is not referenced.
+*> \endverbatim
 *>
-*>  LDU     (input) INTEGER
+*> \param[in] LDU
+*> \verbatim
+*>          LDU is INTEGER
 *>          The leading dimension of the array U. LDU >= max(1,M) if
 *>          JOBU = 'U'; LDU >= 1 otherwise.
+*> \endverbatim
 *>
-*>  V       (input/output) DOUBLE PRECISION array, dimension (LDV,P)
+*> \param[in,out] V
+*> \verbatim
+*>          V is DOUBLE PRECISION array, dimension (LDV,P)
 *>          On entry, if JOBV = 'V', V must contain a matrix V1 (usually
 *>          the orthogonal matrix returned by DGGSVP).
 *>          On exit,
 *>          if JOBV = 'I', V contains the orthogonal matrix V;
 *>          if JOBV = 'V', V contains the product V1*V.
 *>          If JOBV = 'N', V is not referenced.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V. LDV >= max(1,P) if
 *>          JOBV = 'V'; LDV >= 1 otherwise.
+*> \endverbatim
 *>
-*>  Q       (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
+*> \param[in,out] Q
+*> \verbatim
+*>          Q is DOUBLE PRECISION array, dimension (LDQ,N)
 *>          On entry, if JOBQ = 'Q', Q must contain a matrix Q1 (usually
 *>          the orthogonal matrix returned by DGGSVP).
 *>          On exit,
 *>          if JOBQ = 'I', Q contains the orthogonal matrix Q;
 *>          if JOBQ = 'Q', Q contains the product Q1*Q.
 *>          If JOBQ = 'N', Q is not referenced.
+*> \endverbatim
 *>
-*>  LDQ     (input) INTEGER
+*> \param[in] LDQ
+*> \verbatim
+*>          LDQ is INTEGER
 *>          The leading dimension of the array Q. LDQ >= max(1,N) if
 *>          JOBQ = 'Q'; LDQ >= 1 otherwise.
+*> \endverbatim
 *>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (2*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (2*N)
+*> \endverbatim
 *>
-*>  NCYCLE  (output) INTEGER
+*> \param[out] NCYCLE
+*> \verbatim
+*>          NCYCLE is INTEGER
 *>          The number of cycles required for convergence.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *>          = 1:  the procedure does not converge after MAXIT cycles.
+*> \endverbatim
 *>
+*> \verbatim
 *>  Internal Parameters
 *>  ===================
 *>
 *>          MAXIT specifies the total loops that the iterative procedure
 *>          may take. If after MAXIT cycles, the routine fails to
 *>          converge, we return INFO = 1.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  DTGSJA essentially uses a variant of Kogbetliantz algorithm to reduce
 *>  min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L
index ec1663d..ee10943 100644 (file)
@@ -67,6 +67,7 @@
 *> \verbatim
 *>          N is INTEGER
 *>          The number of columns of the matrix B. N >= 0.
+*> \endverbatim
 *> 
 *> \param[in] K
 *> \verbatim
 *>          The number of elementary reflectors whose product defines
 *>          the matrix Q.
 *> \endverbatim
-*> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size used for the storage of T.  K >= NB >= 1.
 *>          This must be the same value of NB used to generate T
 *>          in CTPQRT.
+*> \endverbatim
 *>
-*>  V       (input) DOUBLE PRECISION array, dimension (LDA,K)
+*> \param[in] V
+*> \verbatim
+*>          V is DOUBLE PRECISION array, dimension (LDA,K)
 *>          The i-th column must contain the vector which defines the
 *>          elementary reflector H(i), for i = 1,2,...,k, as returned by
 *>          CTPQRT in B.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.
-*>          If SIDE = 'L', LDA >= max(1,M);
-*>          if SIDE = 'R', LDA >= max(1,N).
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
+*>          The leading dimension of the array V.
+*>          If SIDE = 'L', LDV >= max(1,M);
+*>          if SIDE = 'R', LDV >= max(1,N).
+*> \endverbatim
 *>
-*>  T       (input) DOUBLE PRECISION array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,K)
 *>          The upper triangular factors of the block reflectors
 *>          as returned by CTPQRT, stored as a NB-by-K matrix.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  A       (input/output) DOUBLE PRECISION array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension
 *>          (LDA,N) if SIDE = 'L' or 
 *>          (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          Q*C or Q**T*C or C*Q or C*Q**T.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) DOUBLE PRECISION array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          Q*C or Q**T*C or C*Q or C*Q**T.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) DOUBLE PRECISION array.  The dimension of WORK is
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array. The dimension of WORK is
 *>           N*NB if SIDE = 'L', or  M*NB if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The columns of the pentagonal matrix V contain the elementary reflectors
 *>  H(1), H(2), ..., H(K); V is composed of a rectangular block V1 and a 
index 1b8607b..3e88994 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size to be used in the blocked QR.  N >= NB >= 1.
+*> \endverbatim
 *>
-*>  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) DOUBLE PRECISION array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) DOUBLE PRECISION array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,N)
 *>          The upper triangular block reflectors stored in compact form
 *>          as a sequence of upper triangular blocks.  See Further Details.
+*> \endverbatim
 *>          
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension (NB*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (NB*N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
-*>  
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
 *>               C = [ A ]
index 99ba2e3..32635cf 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.  
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) DOUBLE PRECISION array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) DOUBLE PRECISION array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,N)
 *>          The N-by-N upper triangular factor T of the block reflector.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit
 *>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
index cad2921..f1bf71c 100644 (file)
 *>          K >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup doubleOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  V       (input) DOUBLE PRECISION array, dimension
+*> \param[in] V
+*> \verbatim
+*>          V is DOUBLE PRECISION array, dimension
 *>                                (LDV,K) if STOREV = 'C'
 *>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
 *>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
 *>          The pentagonal matrix V, which contains the elementary reflectors
 *>          H(1), H(2), ..., H(K).  See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) DOUBLE PRECISION array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is DOUBLE PRECISION array, dimension (LDT,K)
 *>          The triangular K-by-K matrix T in the representation of the
 *>          block reflector.  
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. 
 *>          LDT >= K.
+*> \endverbatim
 *>
-*>  A       (input/output) DOUBLE PRECISION array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension
 *>          (LDA,N) if SIDE = 'L' or (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          H*C or H**T*C or C*H or C*H**T.  See Futher Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) DOUBLE PRECISION array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          H*C or H**T*C or C*H or C*H**T.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) DOUBLE PRECISION array, dimension 
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension
 *>          (LDWORK,N) if SIDE = 'L',
 *>          (LDWORK,K) if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= K; 
 *>          if SIDE = 'R', LDWORK >= M.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix C is a composite matrix formed from blocks A and B.
 *>  The block B is of size M-by-N; if SIDE = 'R', A is of size M-by-K, 
index 6a1e61e..9ce852b 100644 (file)
 *> \param[in,out] IFST
 *> \verbatim
 *>          IFST is INTEGER
+*> \endverbatim
+*>
 *> \param[in,out] ILST
 *> \verbatim
 *>          ILST is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          Specify the reordering of the diagonal blocks of T.
 *>          The block with row index IFST is moved to row ILST, by a
 *>          sequence of transpositions between adjacent blocks.
 *>          position (which may differ from its input value by +1 or -1).
 *>          1 <= IFST <= N; 1 <= ILST <= N.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] WORK
 *> \verbatim
index b5e19a9..18ecc39 100644 (file)
 *> \param[out] WR
 *> \verbatim
 *>          WR is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
 *> \param[out] WI
 *> \verbatim
 *>          WI is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          The real and imaginary parts, respectively, of the reordered
 *>          eigenvalues of T. The eigenvalues are stored in the same
 *>          order as on the diagonal of T, with WR(i) = T(i,i) and, if
 *>          sufficiently ill-conditioned, then its value may differ
 *>          significantly from its value before reordering.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] M
 *> \verbatim
index c8f5118..c82c478 100644 (file)
 *>          partially reduced top-right block.
 *> \endverbatim
 *>
+*> \param[out] B21D
+*> \verbatim
+*>          B21D is REAL array, dimension (Q)
+*>          When CBBCSD converges, B21D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B21D contains the diagonal of the partially reduced bottom-left
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B21E
+*> \verbatim
+*>          B21E is REAL array, dimension (Q-1)
+*>          When CBBCSD converges, B21E contains zeros. If CBBCSD fails
+*>          to converge, then B21E contains the subdiagonal of the
+*>          partially reduced bottom-left block.
+*> \endverbatim
+*>
+*> \param[out] B22D
+*> \verbatim
+*>          B22D is REAL array, dimension (Q)
+*>          When CBBCSD converges, B22D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B22D contains the diagonal of the partially reduced bottom-right
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B22E
+*> \verbatim
+*>          B22E is REAL array, dimension (Q-1)
+*>          When CBBCSD converges, B22E contains zeros. If CBBCSD fails
+*>          to converge, then B22E contains the subdiagonal of the
+*>          partially reduced bottom-right block.
+*> \endverbatim
+*>
 *> \param[out] WORK
 *> \verbatim
 *>          WORK is REAL array, dimension (MAX(1,LWORK))
index e7b2619..4e324c0 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> SGBSV computes the solution to system of linear equations A * X = B for GB matrices</b>
+*> \brief <b> SGBSV computes the solution to system of linear equations A * X = B for GB matrices</b> (simple driver)
 *
 *  =========== DOCUMENTATION ===========
 *
index ca9c6ed..1f5eb37 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the input matrix A.
+*>          On exit,  A is overwritten by the balanced matrix.
+*>          If JOB = 'N', A is not referenced.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  ILO     (output) INTEGER
-*>
-*>  IHI     (output) INTEGER
+*> \param[out] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*> \param[out] IHI
+*> \verbatim
+*>          IHI is 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.
 *>          If JOB = 'N' or 'S', ILO = 1 and IHI = N.
+*> \endverbatim
 *>
-*>  SCALE   (output) REAL array, dimension (N)
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is REAL array, dimension (N)
 *>          Details of the permutations and scaling factors applied to
 *>          A.  If P(j) is the index of the row and column interchanged
 *>          with row and column j and D(j) is the scaling factor
 *>                   = P(j)    for j = IHI+1,...,N.
 *>          The order in which the interchanges are made is N to IHI+1,
 *>          then 1 to ILO-1.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The permutations consist of row and column interchanges which put
 *>  the matrix in the form
index 1b48b8e..9e04c39 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the orthogonal matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the orthogonal matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) REAL array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is REAL array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) REAL array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is REAL array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace) REAL array, dimension (max(M,N))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (max(M,N))
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit.
 *>          < 0: if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index 3e13985..a46b6d7 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the M-by-N general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the orthogonal matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the orthogonal matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) REAL array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is REAL array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) REAL array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is REAL array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,M,N).
 *>          For optimum performance LWORK >= (M+N)*NB, where NB
 *>          is the optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit 
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index 47902fc..0c1a28f 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to SGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= max(1,N).
+*> \endverbatim
 *>
-*>  A       (input/output) REAL array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
 *>          On entry, the n by n general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the orthogonal matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) REAL array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace) REAL array, dimension (N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index 10f7374..2344ee9 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
+*> \verbatim
+*>          IHI is INTEGER
+*> \endverbatim
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to SGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
+*> \endverbatim
 *>
-*>  A       (input/output) REAL array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
 *>          On entry, the N-by-N general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the orthogonal matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) REAL array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details). Elements 1:ILO-1 and IHI:N-1 of TAU are set to
 *>          zero.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (LWORK)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (LWORK)
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index 03944af..0233e8c 100644 (file)
@@ -95,6 +95,7 @@
 *>              a gap sigma_{r+1} < epsilon * sigma_r in which case the
 *>              numerical RANK is declared to be r. The SVD is computed with
 *>              absolute error bounds, but more accurately than with 'A'.
+*> \endverbatim
 *> 
 *> \param[in] JOBU
 *> \verbatim
 *>       = 'W': U may be used as workspace of length M*N. See the description
 *>              of U.
 *>       = 'N': U is not computed.
+*> \endverbatim
 *> 
 *> \param[in] JOBV
 *> \verbatim
 *>       = 'W': V may be used as workspace of length N*N. See the description
 *>              of V.
 *>       = 'N': V is not computed.
+*> \endverbatim
 *> 
 *> \param[in] JOBR
 *> \verbatim
 *>                                             ===========================
 *>         For computing the singular values in the FULL range [SFMIN,BIG]
 *>         use SGESVJ.
+*> \endverbatim
 *> 
 *> \param[in] JOBT
 *> \verbatim
 *>         matrices is used as workspace if the matrix A is transposed.
 *>         The implementer can easily remove this constraint and make the
 *>         code more complicated. See the descriptions of U and V.
+*> \endverbatim
 *> 
 *> \param[in] JOBP
 *> \verbatim
 *>       = 'P': introduce perturbation
 *>       = 'N': do not perturb
 *> \endverbatim
-*> \endverbatim
-*> \endverbatim
-*> \endverbatim
-*> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] M
 *> \verbatim
 *>                    determined to be strictly smaller than N, SCONDA is
 *>                    returned as -1, thus indicating that the smallest
 *>                    singular values might be lost.
-*> \endverbatim
-*> \verbatim
+*>
 *>          If full SVD is needed, the following two condition numbers are
 *>          useful for the analysis of the algorithm. They are provied for
 *>          a developer/implementer who is familiar with the details of
 *>          the method.
-*> \endverbatim
-*> \verbatim
+*>
 *>          WORK(4) = an estimate of the scaled condition number of the
 *>                    triangular factor in the first QR factorization.
 *>          WORK(5) = an estimate of the scaled condition number of the
 *>          The following two parameters are computed if JOBT .EQ. 'T'.
 *>          They are provided for a developer/implementer who is familiar
 *>          with the details of the method.
-*> \endverbatim
-*> \verbatim
+*>
 *>          WORK(6) = the entropy of A^t*A :: this is the Shannon entropy
 *>                    of diag(A^t*A) / Trace(A^t*A) taken as point in the
 *>                    probability simplex.
 *>          LWORK is INTEGER
 *>          Length of WORK to confirm proper allocation of work space.
 *>          LWORK depends on the job:
-*> \endverbatim
-*> \verbatim
+*>
 *>          If only SIGMA is needed ( JOBU.EQ.'N', JOBV.EQ.'N' ) and
 *>            -> .. no scaled condition estimate required (JOBE.EQ.'N'):
 *>               LWORK >= max(2*M+N,4*N+1,7). This is the minimal requirement.
 *>               In general, the optimal length LWORK is computed as
 *>               LWORK >= max(2*M+N,N+LWORK(DGEQP3),N+LWORK(DGEQRF), 
 *>                                                     N+N*N+LWORK(DPOCON),7).
-*> \endverbatim
-*> \verbatim
+*>
 *>          If SIGMA and the right singular vectors are needed (JOBV.EQ.'V'),
 *>            -> the minimal requirement is LWORK >= max(2*M+N,4*N+1,7).
 *>            -> For optimal performance, LWORK >= max(2*M+N,3*N+(N+1)*NB,7),
 *>               DORMLQ. In general, the optimal length LWORK is computed as
 *>               LWORK >= max(2*M+N,N+LWORK(DGEQP3), N+LWORK(DPOCON), 
 *>                       N+LWORK(DGELQ), 2*N+LWORK(DGEQRF), N+LWORK(DORMLQ)).
-*> \endverbatim
-*> \verbatim
+*>
 *>          If SIGMA and the left singular vectors are needed
 *>            -> the minimal requirement is LWORK >= max(2*M+N,4*N+1,7).
 *>            -> For optimal performance:
index b8ce12b..18139bd 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m by min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (M)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) REAL array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) REAL array, dimension (M)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 1bd205b..47d7988 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m-by-min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) REAL array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 1887210..3d28266 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the m by n lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          orthogonal matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) REAL array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) REAL array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 350ab84..0ce303c 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          (see Further Details).
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the N-by-N lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the M-by-N lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          orthogonal matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) REAL array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index d1e9415..4f10f24 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) REAL array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) REAL array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 3f3b8a8..5ee107b 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the orthogonal matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) REAL array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) REAL array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index bd323e6..1c9259f 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  
 *>  The matrix V stores the elementary reflectors H(i) in the i-th column
 *>  below the diagonal. For example, if M=5 and N=3, the matrix V is
 *>
index cb4d193..99e0682 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index 33b3ba9..f15e880 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index 8f4ad73..3694514 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realGEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          reflectors (see Further Details).
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m <= n, the upper triangle of the subarray
+*>          A(1:m,n-m+1:n) contains the M-by-M upper triangular matrix R;
+*>          if m >= n, the elements on and above the (m-n)-th subdiagonal
+*>          contain the M-by-N upper trapezoidal matrix R;
+*>          the remaining elements, with the array TAU, represent the
+*>          orthogonal matrix Q as a product of min(m,n) elementary
+*>          reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) REAL array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is
 *>          the optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realGEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 2e0c063..d413b90 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> SGESV computes the solution to system of linear equations A * X = B for GE matrices</b>
+*> \brief <b> SGESV computes the solution to system of linear equations A * X = B for GE matrices</b> (simple driver)
 *
 *  =========== DOCUMENTATION ===========
 *
index 55b9534..d4951db 100644 (file)
 *> \param[out] X
 *> \verbatim
 *>          X is REAL array, dimension (M)
+*> \endverbatim
+*>
 *> \param[out] Y
 *> \verbatim
 *>          Y is REAL array, dimension (P)
-*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
+*> \verbatim
+*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
 *>
 *> \param[out] WORK
index 0ee9806..33d327a 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI mark the rows and columns of A which are to be
 *>          reduced.  It is assumed that A is already upper triangular
 *>          in rows and columns 1:ILO-1 and IHI+1:N.  ILO and IHI are
 *>          should be set to 1 and N respectively.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index 321414e..386c790 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,N).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the orthogonal matrix Q (see Further Details).
+*>          TAUA is REAL array, dimension (min(N,M))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the orthogonal matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) REAL array, dimension (LDB,P)
+*> \param[in,out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB,P)
 *>          On entry, the N-by-P matrix B.
 *>          On exit, if N <= P, the upper triangle of the subarray
 *>          B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
 *>          elements, with the array TAUB, represent the orthogonal
 *>          matrix Z as a product of elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,N).
+*> \endverbatim
 *>
-*>  TAUB    (output) REAL array, dimension (min(N,P))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is REAL array, dimension (min(N,P))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the QR factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index a1e7b68..173a4ad 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,M).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the orthogonal matrix Q (see Further Details).
+*>          TAUA is REAL array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the orthogonal matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) REAL array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the min(P,N)-by-N upper trapezoidal matrix T (T is
 *>          upper triangular if P >= N); the elements below the diagonal,
 *>          with the array TAUB, represent the orthogonal matrix Z as a
 *>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
 *>
-*>  TAUB    (output) REAL array, dimension (min(P,N))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is REAL array, dimension (min(P,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the RQ factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INF0= -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 49c3896..c61ca87 100644 (file)
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
-*>          described in the Purpose section.
+*>          described in Purpose.
 *>          K + L = effective numerical rank of (A**T,B**T)**T.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
 *> \param[out] ALPHA
 *> \verbatim
 *>          ALPHA is REAL array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is REAL array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>            ALPHA(K+L+1:N) = 0
 *>            BETA(K+L+1:N)  = 0
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index a274816..7d16410 100644 (file)
 *> \param[in] TOLA
 *> \verbatim
 *>          TOLA is REAL
+*> \endverbatim
+*>
 *> \param[in] TOLB
 *> \verbatim
 *>          TOLB is REAL
+*> \endverbatim
+*> \verbatim
 *>          TOLA and TOLB are the thresholds to determine the effective
 *>          numerical rank of matrix B and a subblock of A. Generally,
 *>          they are set to
 *>          The size of TOLA and TOLB may affect the size of backward
 *>          errors of the decomposition.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
 *>          described in Purpose section.
 *>          K + L = effective numerical rank of (A**T,B**T)**T.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index abc2957..83c4537 100644 (file)
 *> \param[in,out] WR
 *> \verbatim
 *>          WR is REAL array, dimension (N)
+*> \endverbatim
+*>
 *> \param[in] WI
 *> \verbatim
 *>          WI is REAL array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On entry, the real and imaginary parts of the eigenvalues of
 *>          H; a complex conjugate pair of eigenvalues must be stored in
 *>          consecutive elements of WR and WI.
 *>          are perturbed slightly in searching for independent
 *>          eigenvectors.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] VL
 *> \verbatim
index 94d280e..1abe921 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>           It is assumed that H is already upper triangular in rows
 *>           and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
-*>           set by a previous call to SGEBAL, and then passed to SGEHRD
+*>           set by a previous call to SGEBAL, and then passed to ZGEHRD
 *>           when the matrix output by SGEBAL is reduced to Hessenberg
 *>           form. Otherwise ILO and IHI should be set to 1 and N
 *>           respectively.  If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N.
 *>           If N = 0, then ILO = 1 and IHI = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] H
 *> \verbatim
 *> \param[out] WR
 *> \verbatim
 *>          WR is REAL array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] WI
 *> \verbatim
 *>          WI is REAL array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>           The real and imaginary parts, respectively, of the computed
 *>           eigenvalues. If two eigenvalues are computed as a complex
 *>           conjugate pair, they are stored in consecutive elements of
 *>           diagonal block, WI(i) = sqrt(-H(i+1,i)*H(i,i+1)) and
 *>           WI(i+1) = -WI(i).
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] Z
 *> \verbatim
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and JOB = 'E', then on exit, the
 *>                remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and JOB   = 'S', then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is an orthogonal matrix.  The final
 *>                value of H is upper Hessenberg and quasi-triangular
 *>                in rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and COMPZ = 'V', then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z)  =  (initial value of Z)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the orthogonal matrix in (*) (regard-
 *>                less of the value of JOB.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and COMPZ = 'I', then on exit
 *>                      (final value of Z)  = U
 *>                where U is the orthogonal matrix in (*) (regard-
 *>                less of the value of JOB.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and COMPZ = 'N', then Z is not
 *>                accessed.
 *> \endverbatim
index 3f9ecf7..21e5b6f 100644 (file)
 *>     matrix B.
 *> \endverbatim
 *>
-*> \param[in] A
+*> \param[in] AB
 *> \verbatim
-*>          A is REAL array, dimension (LDA,N)
-*>     On entry, the N-by-N matrix A.
+*>          AB is REAL array, dimension (LDAB,N)
+*>     On entry, the N-by-N matrix AB.
 *> \endverbatim
 *>
-*> \param[in] LDA
+*> \param[in] LDAB
 *> \verbatim
-*>          LDA is INTEGER
-*>     The leading dimension of the array A.  LDA >= max(1,N).
+*>          LDAB is INTEGER
+*>     The leading dimension of the array AB.  LDAB >= max(1,N).
 *> \endverbatim
 *>
-*> \param[in] AF
+*> \param[in] AFB
 *> \verbatim
-*>          AF is REAL array, dimension (LDAF,N)
+*>          AFB is REAL array, dimension (LDAFB,N)
 *>     The factors L and U from the factorization
 *>     A = P*L*U as computed by SGBTRF.
 *> \endverbatim
 *>
-*> \param[in] LDAF
+*> \param[in] LDAFB
 *> \verbatim
-*>          LDAF is INTEGER
-*>     The leading dimension of the array AF.  LDAF >= max(1,N).
+*>          LDAFB is INTEGER
+*>     The leading dimension of the array AF.  LDAFB >= max(1,N).
 *> \endverbatim
 *>
 *> \param[in] IPIV
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_NORM(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
 *>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_COMP(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
index 437e15d..16a33a9 100644 (file)
@@ -19,7 +19,7 @@
 *       SUBROUTINE SLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE, N, NRHS, A,
 *                                       LDA, AF, LDAF, IPIV, COLEQU, C, B,
 *                                       LDB, Y, LDY, BERR_OUT, N_NORMS,
-*                                       ERR_BNDS_NORM, ERR_BNDS_COMP, RES,
+*                                       ERRS_N, ERRS_C, RES,
 *                                       AYB, DY, Y_TAIL, RCOND, ITHRESH,
 *                                       RTHRESH, DZ_UB, IGNORE_CWISE,
 *                                       INFO )
@@ -35,8 +35,8 @@
 *       REAL               A( LDA, * ), AF( LDAF, * ), B( LDB, * ),
 *      $                   Y( LDY, * ), RES( * ), DY( * ), Y_TAIL( * )
 *       REAL               C( * ), AYB( * ), RCOND, BERR_OUT( * ),
-*      $                   ERR_BNDS_NORM( NRHS, * ),
-*      $                   ERR_BNDS_COMP( NRHS, * )
+*      $                   ERRS_N( NRHS, * ),
+*      $                   ERRS_C( NRHS, * )
 *       ..
 *  
 *  Purpose
 *> and provides error bounds and backward error estimates for the solution.
 *> This subroutine is called by SGERFSX to perform iterative refinement.
 *> In addition to normwise error bound, the code provides maximum
-*> componentwise error bound if possible. See comments for ERR_BNDS_NORM
-*> and ERR_BNDS_COMP for details of the error bounds. Note that this
+*> componentwise error bound if possible. See comments for ERRS_N
+*> and ERRS_C for details of the error bounds. Note that this
 *> subroutine is only resonsible for setting the second fields of
-*> ERR_BNDS_NORM and ERR_BNDS_COMP.
+*> ERRS_N and ERRS_C.
 *>
 *>\endverbatim
 *
 *> \param[in] N_NORMS
 *> \verbatim
 *>          N_NORMS is INTEGER
-*>     Determines which error bounds to return (see ERR_BNDS_NORM
-*>     and ERR_BNDS_COMP).
+*>     Determines which error bounds to return (see ERRS_N
+*>     and ERRS_C).
 *>     If N_NORMS >= 1 return normwise error bounds.
 *>     If N_NORMS >= 2 return componentwise error bounds.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_NORM
+*> \param[in,out] ERRS_N
 *> \verbatim
-*>          ERR_BNDS_NORM is REAL array, dimension (NRHS, N_ERR_BNDS)
+*>          ERRS_N is REAL array, dimension (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_N(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_NORM(:,err) contains the following
+*>
+*>     The second index in ERRS_N(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     cautions.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_COMP
+*> \param[in,out] ERRS_C
 *> \verbatim
-*>          ERR_BNDS_COMP is REAL array, dimension (NRHS, N_ERR_BNDS)
+*>          ERRS_C is REAL array, dimension (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     pieces of information returned for each right-hand side. If
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
-*>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
+*>     ERRS_C is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_C(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_COMP(:,err) contains the following
+*>
+*>     The second index in ERRS_C(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     permit convergence using approximate factorizations or
 *>     factorizations other than LU. If the factorization uses a
 *>     technique other than Gaussian elimination, the guarantees in
-*>     ERR_BNDS_NORM and ERR_BNDS_COMP may no longer be trustworthy.
+*>     ERRS_N and ERRS_C may no longer be trustworthy.
 *> \endverbatim
 *>
 *> \param[in] RTHRESH
       SUBROUTINE SLA_GERFSX_EXTENDED( PREC_TYPE, TRANS_TYPE, N, NRHS, A,
      $                                LDA, AF, LDAF, IPIV, COLEQU, C, B,
      $                                LDB, Y, LDY, BERR_OUT, N_NORMS,
-     $                                ERR_BNDS_NORM, ERR_BNDS_COMP, RES,
+     $                                ERRS_N, ERRS_C, RES,
      $                                AYB, DY, Y_TAIL, RCOND, ITHRESH,
      $                                RTHRESH, DZ_UB, IGNORE_CWISE,
      $                                INFO )
       REAL               A( LDA, * ), AF( LDAF, * ), B( LDB, * ),
      $                   Y( LDY, * ), RES( * ), DY( * ), Y_TAIL( * )
       REAL               C( * ), AYB( * ), RCOND, BERR_OUT( * ),
-     $                   ERR_BNDS_NORM( NRHS, * ),
-     $                   ERR_BNDS_COMP( NRHS, * )
+     $                   ERRS_N( NRHS, * ),
+     $                   ERRS_C( NRHS, * )
 *     ..
 *
 *  =====================================================================
 *     Compute error bounds
 *
          IF (N_NORMS .GE. 1) THEN
-            ERR_BNDS_NORM( J, LA_LINRX_ERR_I ) =
+            ERRS_N( J, LA_LINRX_ERR_I ) =
      $           FINAL_DX_X / (1 - DXRATMAX)
          END IF
          IF ( N_NORMS .GE. 2 ) THEN
-            ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) =
+            ERRS_C( J, LA_LINRX_ERR_I ) =
      $           FINAL_DZ_Z / (1 - DZRATMAX)
          END IF
 *
index b6ff175..04280d3 100644 (file)
 *>     The denominator in the relative backward error formula above, i.e.,
 *>     the matrix abs(op(A_s))*abs(Y) + abs(B_s). The matrices A, Y, and B
 *>     are from iterative refinement (see sla_gerfsx_extended.f).
+*> \endverbatim
 *>     
 *> \param[out] BERR
 *> \verbatim
 *>          BERR is REAL array, dimension (NRHS)
 *>     The componentwise relative backward error from the formula above.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index 1e50587..2f49403 100644 (file)
 *>     column INFO is exactly 0.
 *> \endverbatim
 *>
-*> \param[in] NCOLS
-*> \verbatim
-*>          NCOLS is INTEGER
-*>     The number of columns of the matrix A. NCOLS >= 0.
-*> \endverbatim
-*>
 *> \param[in] A
 *> \verbatim
 *>          A is REAL array, dimension (LDA,N)
index a81da16..a92cf51 100644 (file)
 *>          The number of leading rows and columns of A to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit, the first NB rows and columns of the matrix are
+*>          overwritten; the rest of the array is unchanged.
+*>          If m >= n, elements on and below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the orthogonal
+*>            matrix Q as a product of elementary reflectors; and
+*>            elements above the diagonal in the first NB rows, with the
+*>            array TAUP, represent the orthogonal matrix P as a product
+*>            of elementary reflectors.
+*>          If m < n, elements below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the orthogonal
+*>            matrix Q as a product of elementary reflectors, and
+*>            elements on and above the diagonal in the first NB rows,
+*>            with the array TAUP, represent the orthogonal matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (NB)
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (NB)
 *>          The diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.  D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (NB)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (NB)
 *>          The off-diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.
+*> \endverbatim
 *>
-*>  TAUQ    (output) REAL array dimension (NB)
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is REAL array dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) REAL array, dimension (NB)
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is REAL array, dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the orthogonal matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  X       (output) REAL array, dimension (LDX,NB)
+*> \param[out] X
+*> \verbatim
+*>          X is REAL array, dimension (LDX,NB)
 *>          The m-by-nb matrix X required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDX     (input) INTEGER
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
 *>          The leading dimension of the array X. LDX >= max(1,M).
+*> \endverbatim
 *>
-*>  Y       (output) REAL array, dimension (LDY,NB)
+*> \param[out] Y
+*> \verbatim
+*>          Y is REAL array, dimension (LDY,NB)
 *>          The n-by-nb matrix Y required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDY     (input) INTEGER
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
 *>          The leading dimension of the array Y. LDY >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index dc75174..71fbf6c 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Contributed by Nick Higham, University of Manchester.
 *>  Originally named SONEST, dated March 16, 1988.
index 5e8dbc1..00bf71f 100644 (file)
 *>          to update the system.
 *> \endverbatim
 *>
-*> \param[in] LDS
-*> \verbatim
-*>          LDS is INTEGER
-*>          The leading dimension of S.  LDS >= max(1,K).
-*> \endverbatim
-*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index e0edd7e..48c26ed 100644 (file)
 *> \verbatim
 *>          X is REAL array, dimension (LDX,NRHS)
 *>          The N by NRHS matrix X.
+*> \endverbatim
+*>
 *> \param[in] LDX
 *> \verbatim
 *>          LDX is INTEGER
 *>          The leading dimension of the array X.  LDX >= max(N,1).
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] BETA
 *> \verbatim
index 9742d69..b04bcea 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is REAL array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= N.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) REAL array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) REAL array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) REAL array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= N.
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index 05c09df..b75a3dc 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is REAL array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= N.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) REAL array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) REAL array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) REAL array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= N.
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index 3ad8db4..896f199 100644 (file)
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is an orthogonal matrix.  The final
 *>                value of H is upper Hessenberg and quasi-triangular
 *>                in rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the orthogonal matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
index 955c963..0e0c1ec 100644 (file)
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
+*> \verbatim
+*>          INFO is INTEGER
 *>             =  0:  successful exit
 *>           .GT. 0:  if INFO = i, SLAQR4 failed to compute all of
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
-*>                where U is an orthogonal matrix.  The final
-*>                value of H is upper Hessenberg and quasi-triangular
-*>                in rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
+*>                where U is a orthogonal matrix.  The final
+*>                value of  H is upper Hessenberg and triangular in
+*>                rows and columns INFO+1 through IHI.
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the orthogonal matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
index 27a47f6..232d69e 100644 (file)
 *>          reflectors whose product defines the block reflector).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] V
 *> \verbatim
-*          The matrix V. See Further Details.
+*>          V is REAL array, dimension
+*>                                (LDV,K) if STOREV = 'C'
+*>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
+*>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
+*>          The matrix V. See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) REAL array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,K)
 *>          The triangular k by k matrix T in the representation of the
 *>          block reflector.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
-*>  C       (input/output) REAL array, dimension (LDC,N)
+*> \param[in,out] C
+*> \verbatim
+*>          C is REAL array, dimension (LDC,N)
 *>          On entry, the m by n matrix C.
 *>          On exit, C is overwritten by H*C or H**T*C or C*H or C*H**T.
+*> \endverbatim
 *>
-*>  LDC     (input) INTEGER
+*> \param[in] LDC
+*> \verbatim
+*>          LDC is INTEGER
 *>          The leading dimension of the array C. LDC >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) REAL array, dimension (LDWORK,K)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (LDWORK,K)
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= max(1,N);
 *>          if SIDE = 'R', LDWORK >= max(1,M).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index 80b95ab..1a76c35 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) REAL array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is REAL array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) REAL array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) REAL array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index 75987c6..f8f5d7b 100644 (file)
 *>          Workspace.
 *> \endverbatim
 *>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          Signals processing OK (=0) or failure (=1)
+*> \endverbatim
 *
 *  Authors
 *  =======
index c7f16c0..6650004 100644 (file)
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*> \endverbatim
-*> \verbatim
+*>
 *>          > 0:  A problem occured in SLARRV.
 *>          < 0:  One of the called subroutines signaled an internal problem.
 *>                Needs inspection of the corresponding parameter IINFO
 *>                for further information.
-*> \endverbatim
-*> \verbatim
+*>
 *>          =-1:  Problem in SLARRB when refining a child's eigenvalues.
 *>          =-2:  Problem in SLARRF when computing the RRR of a child.
 *>                When a child is inside a tight cluster, it can be difficult
index 4ba181a..904e4eb 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise                        (not supported yet)
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) REAL array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is REAL array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) REAL array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) REAL array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  Based on contributions by
 *>    A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
index 6d87e7d..c99af37 100644 (file)
@@ -84,6 +84,8 @@
 *> \param[in] CTO
 *> \verbatim
 *>          CTO is REAL
+*> \endverbatim
+*> \verbatim
 *>          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
 *>          can be represented without over/underflow.  CFROM must be
index 027d1c5..a4d9c54 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Local Variables: I0:N0 defines a current unreduced segment of Z.
+*>  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).
 *>
index 7588491..97fcafe 100644 (file)
@@ -65,9 +65,9 @@
 *>        PP=0 for ping, PP=1 for pong.
 *> \endverbatim
 *>
-*> \param[in] NOIN
+*> \param[in] N0IN
 *> \verbatim
-*>          NOIN is INTEGER
+*>          N0IN is INTEGER
 *>        The value of N0 at start of EIGTEST.
 *> \endverbatim
 *>
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  CNST1 = 9/16
+*>  CNST1 = 9/16
 *>
 *> \endverbatim
 *>
index 656a615..ebec3d3 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  A rough bound on x is computed; if that is less than overflow, STBSV
 *>  is called, otherwise, specific code is used which checks for possible
index 91480b7..09225bb 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  A rough bound on x is computed; if that is less than overflow, STPSV
 *>  is called, otherwise, specific code is used which checks for possible
index da02ec7..fc7e45a 100644 (file)
 *>          The number of rows and columns to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the symmetric matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit:
+*>          if UPLO = 'U', the last NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements above the diagonal
+*>            with the array TAU, represent the orthogonal matrix Q as a
+*>            product of elementary reflectors;
+*>          if UPLO = 'L', the first NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements below the diagonal
+*>            with the array TAU, represent the  orthogonal matrix Q as a
+*>            product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= (1,N).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
 *>          If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal
 *>          elements of the last NB columns of the reduced matrix;
 *>          if UPLO = 'L', E(1:nb) contains the subdiagonal elements of
 *>          the first NB columns of the reduced matrix.
+*> \endverbatim
 *>
-*>  TAU     (output) REAL array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors, stored in
 *>          TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  W       (output) REAL array, dimension (LDW,NB)
+*> \param[out] W
+*> \verbatim
+*>          W is REAL array, dimension (LDW,NB)
 *>          The n-by-nb matrix W required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDW     (input) INTEGER
+*> \param[in] LDW
+*> \verbatim
+*>          LDW is INTEGER
 *>          The leading dimension of the array W. LDW >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index 5e3016c..1d30836 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  A rough bound on x is computed; if that is less than overflow, STRSV
 *>  is called, otherwise, specific code is used which checks for possible
index b732bd1..b4b5a60 100644 (file)
 *>          The number of columns in X11 and X21. 0 <= Q <= M.
 *> \endverbatim
 *>
-*> \param[in,out] X
+*> \param[in,out] X11
 *> \verbatim
-*>          X is REAL array, dimension (LDX,M)
-*>          On entry, the orthogonal matrix whose CSD is desired.
+*>          X11 is REAL array, dimension (LDX11,Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
 *> \endverbatim
 *>
-*> \param[in] LDX
+*> \param[in] LDX11
 *> \verbatim
-*>          LDX is INTEGER
-*>          The leading dimension of X. LDX >= MAX(1,M).
+*>          LDX11 is INTEGER
+*>          The leading dimension of X11. LDX11 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X12
+*> \verbatim
+*>          X12 is REAL array, dimension (LDX12,M-Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX12
+*> \verbatim
+*>          LDX12 is INTEGER
+*>          The leading dimension of X12. LDX12 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X21
+*> \verbatim
+*>          X21 is REAL array, dimension (LDX21,Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX21
+*> \verbatim
+*>          LDX21 is INTEGER
+*>          The leading dimension of X11. LDX21 >= MAX(1,M-P).
+*> \endverbatim
+*>
+*> \param[in,out] X22
+*> \verbatim
+*>          X22 is REAL array, dimension (LDX22,M-Q)
+*>          On entry, part of the orthogonal matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX22
+*> \verbatim
+*>          LDX22 is INTEGER
+*>          The leading dimension of X11. LDX22 >= MAX(1,M-P).
 *> \endverbatim
 *>
 *> \param[out] THETA
index 8dcf15a..c0c3c5e 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of SGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index 88c3cae..9e0920f 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of SGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
@@ -91,7 +95,6 @@
 *>          if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
 *>          ILO = 1 and IHI = 0, if N = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] A
 *> \verbatim
index 307795b..021bd44 100644 (file)
 *>          as follows:
 *>          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
 *>          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
+*>
+*>          On exit, if INFO = 0, the factor S from the split Cholesky
+*>          factorization A = S**T*S. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDAB
+*> \verbatim
+*>          LDAB is INTEGER
+*>          The leading dimension of the array AB.  LDAB >= KD+1.
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*>          > 0: if INFO = i, the factorization could not be completed,
+*>               because the updated element a(i,i) was negative; the
+*>               matrix A is not positive definite.
 *> \endverbatim
 *>
 *
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          factorization A = S**T*S. See Further Details.
-*>
-*>  LDAB    (input) INTEGER
-*>          The leading dimension of the array AB.  LDAB >= KD+1.
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>          > 0: if INFO = i, the factorization could not be completed,
-*>               because the updated element a(i,i) was negative; the
-*>               matrix A is not positive definite.
-*>
 *>
 *>  The band storage scheme is illustrated by the following example, when
 *>  N = 7, KD = 2:
index 938f9e2..e0a5a7c 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  The packed storage scheme is illustrated by the following example
 *>  when N = 4, UPLO = 'U':
index d59dd35..654f0c7 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 423f45f..e9eca80 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 3d752b5..70dc78f 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] AP
+*> \verbatim
+*>          AP is REAL array, dimension (N*(N+1)/2)
+*>          On entry, the upper or lower triangle of the symmetric matrix
+*>          A, packed columnwise in a linear array.  The j-th column of A
+*>          is stored in the array AP as follows:
+*>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
+*>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the orthogonal
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the orthogonal matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  D       (output) REAL array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) REAL array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) REAL array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index c9a96fe..c1d9f5d 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='V', the lower and upper bounds of the interval to
 *>          be searched for eigenvalues.  Eigenvalues less than or equal
 *>          to VL, or greater than VU, will not be returned.  VL < VU.
 *>          Not referenced if RANGE = 'A' or 'I'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 4388132..610cee9 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index 9959833..aaed5bd 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is REAL
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is REAL
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] M
 *> \verbatim
index 57b5655..2e9a19c 100644 (file)
 *>          WORK is REAL array, dimension (N)
 *> \endverbatim
 *>
-*> \param[in] LWORK
-*> \verbatim
-*>          LWORK is INTEGER
-*>          The length of WORK.  LWORK >=1. 
-*>          LWORK = N
-*> \endverbatim
-*> \verbatim
-*>          If LWORK = -1, then a workspace query is assumed; the routine
-*>          only calculates the optimal size of the WORK array, returns
-*>          this value as the first entry of the WORK array, and no error
-*>          message related to LWORK is issued by XERBLA.
-*> \endverbatim
-*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index dd9d2a4..d2411e9 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Reference: Livne, O.E. and Golub, G.H., "Scaling by Binormalization",
 *>  Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004.
index e3b86f8..7cc850c 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the symmetric matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the orthogonal
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the orthogonal matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  D       (output) REAL array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) REAL array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) REAL array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index 1a50179..104f2a5 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realSYcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          of elementary reflectors. See Further Details.
+*>          A is REAL array, dimension (LDA,N)
+*>          On entry, the symmetric matrix A.  If UPLO = 'U', the leading
+*>          N-by-N upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading N-by-N lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the orthogonal
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the orthogonal matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  D       (output) REAL array, dimension (N)
+*> \param[out] D
+*> \verbatim
+*>          D is REAL array, dimension (N)
 *>          The diagonal elements of the tridiagonal matrix T:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) REAL array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is REAL array, dimension (N-1)
 *>          The off-diagonal elements of the tridiagonal matrix T:
 *>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
 *>
-*>  TAU     (output) REAL array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is REAL array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= 1.
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realSYcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index aff63cb..d3c65a2 100644 (file)
 *> \param[out] ALPHAR
 *> \verbatim
 *>          ALPHAR is REAL array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] ALPHAI
 *> \verbatim
 *>          ALPHAI is REAL array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is REAL array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
 *>          be the generalized eigenvalues.  ALPHAR(j) + ALPHAI(j)*i
 *>          and BETA(j),j=1,...,N  are the diagonals of the complex Schur
 *>          positive, then the j-th and (j+1)-st eigenvalues are a
 *>          complex conjugate pair, with ALPHAI(j+1) negative.
 *> \endverbatim
-*> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] Q
 *> \verbatim
 *> \param[out] PL
 *> \verbatim
 *>          PL is REAL
+*> \endverbatim
+*>
 *> \param[out] PR
 *> \verbatim
 *>          PR is REAL
+*> \endverbatim
+*> \verbatim
 *>          If IJOB = 1, 4 or 5, PL, PR are lower bounds on the
 *>          reciprocal of the norm of "projections" onto left and right
 *>          eigenspaces with respect to the selected cluster.
 *>          If M = 0 or M = N, PL = PR  = 1.
 *>          If IJOB = 0, 2 or 3, PL and PR are not referenced.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] DIF
 *> \verbatim
index 44c04a9..7f2f30a 100644 (file)
 *>          The number of columns of the matrices A and B.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
+*> \endverbatim
+*>
+*> \param[in] L
+*> \verbatim
+*>          L is INTEGER
+*> \endverbatim
 *> \verbatim
-*          See Further Details.
+*>          K and L specify the subblocks in the input matrices A and B:
+*>          A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,N-L+1:N)
+*>          of A and B, whose GSVD is going to be computed by STGSJA.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  A       (input/output) REAL array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
 *>          On entry, the M-by-N matrix A.
 *>          On exit, A(N-K+1:N,1:MIN(K+L,M) ) contains the triangular
 *>          matrix R or part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  B       (input/output) REAL array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, if necessary, B(M-K+1:L,N+M-K-L+1:N) contains
 *>          a part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
 *>
-*>  TOLA    (input) REAL
-*>  TOLB    (input) REAL
+*> \param[in] TOLA
+*> \verbatim
+*>          TOLA is REAL
+*> \endverbatim
+*>
+*> \param[in] TOLB
+*> \verbatim
+*>          TOLB is REAL
+*> \endverbatim
+*> \verbatim
 *>          TOLA and TOLB are the convergence criteria for the Jacobi-
 *>          Kogbetliantz iteration procedure. Generally, they are the
 *>          same as used in the preprocessing step, say
 *>              TOLA = max(M,N)*norm(A)*MACHEPS,
 *>              TOLB = max(P,N)*norm(B)*MACHEPS.
+*> \endverbatim
 *>
-*>  ALPHA   (output) REAL array, dimension (N)
-*>  BETA    (output) REAL array, dimension (N)
+*> \param[out] ALPHA
+*> \verbatim
+*>          ALPHA is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] BETA
+*> \verbatim
+*>          BETA is REAL array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>          Furthermore, if K+L < N,
 *>            ALPHA(K+L+1:N) = 0 and
 *>            BETA(K+L+1:N)  = 0.
+*> \endverbatim
 *>
-*>  U       (input/output) REAL array, dimension (LDU,M)
+*> \param[in,out] U
+*> \verbatim
+*>          U is REAL array, dimension (LDU,M)
 *>          On entry, if JOBU = 'U', U must contain a matrix U1 (usually
 *>          the orthogonal matrix returned by SGGSVP).
 *>          On exit,
 *>          if JOBU = 'I', U contains the orthogonal matrix U;
 *>          if JOBU = 'U', U contains the product U1*U.
 *>          If JOBU = 'N', U is not referenced.
+*> \endverbatim
 *>
-*>  LDU     (input) INTEGER
+*> \param[in] LDU
+*> \verbatim
+*>          LDU is INTEGER
 *>          The leading dimension of the array U. LDU >= max(1,M) if
 *>          JOBU = 'U'; LDU >= 1 otherwise.
+*> \endverbatim
 *>
-*>  V       (input/output) REAL array, dimension (LDV,P)
+*> \param[in,out] V
+*> \verbatim
+*>          V is REAL array, dimension (LDV,P)
 *>          On entry, if JOBV = 'V', V must contain a matrix V1 (usually
 *>          the orthogonal matrix returned by SGGSVP).
 *>          On exit,
 *>          if JOBV = 'I', V contains the orthogonal matrix V;
 *>          if JOBV = 'V', V contains the product V1*V.
 *>          If JOBV = 'N', V is not referenced.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V. LDV >= max(1,P) if
 *>          JOBV = 'V'; LDV >= 1 otherwise.
+*> \endverbatim
 *>
-*>  Q       (input/output) REAL array, dimension (LDQ,N)
+*> \param[in,out] Q
+*> \verbatim
+*>          Q is REAL array, dimension (LDQ,N)
 *>          On entry, if JOBQ = 'Q', Q must contain a matrix Q1 (usually
 *>          the orthogonal matrix returned by SGGSVP).
 *>          On exit,
 *>          if JOBQ = 'I', Q contains the orthogonal matrix Q;
 *>          if JOBQ = 'Q', Q contains the product Q1*Q.
 *>          If JOBQ = 'N', Q is not referenced.
+*> \endverbatim
 *>
-*>  LDQ     (input) INTEGER
+*> \param[in] LDQ
+*> \verbatim
+*>          LDQ is INTEGER
 *>          The leading dimension of the array Q. LDQ >= max(1,N) if
 *>          JOBQ = 'Q'; LDQ >= 1 otherwise.
+*> \endverbatim
 *>
-*>  WORK    (workspace) REAL array, dimension (2*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (2*N)
+*> \endverbatim
 *>
-*>  NCYCLE  (output) INTEGER
+*> \param[out] NCYCLE
+*> \verbatim
+*>          NCYCLE is INTEGER
 *>          The number of cycles required for convergence.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *>          = 1:  the procedure does not converge after MAXIT cycles.
+*> \endverbatim
 *>
+*> \verbatim
 *>  Internal Parameters
 *>  ===================
 *>
 *>          MAXIT specifies the total loops that the iterative procedure
 *>          may take. If after MAXIT cycles, the routine fails to
 *>          converge, we return INFO = 1.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  STGSJA essentially uses a variant of Kogbetliantz algorithm to reduce
 *>  min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L
index c032b4b..9901dc4 100644 (file)
@@ -67,6 +67,7 @@
 *> \verbatim
 *>          N is INTEGER
 *>          The number of columns of the matrix B. N >= 0.
+*> \endverbatim
 *> 
 *> \param[in] K
 *> \verbatim
 *>          The number of elementary reflectors whose product defines
 *>          the matrix Q.
 *> \endverbatim
-*> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size used for the storage of T.  K >= NB >= 1.
 *>          This must be the same value of NB used to generate T
 *>          in CTPQRT.
+*> \endverbatim
 *>
-*>  V       (input) REAL array, dimension (LDA,K)
+*> \param[in] V
+*> \verbatim
+*>          V is REAL array, dimension (LDA,K)
 *>          The i-th column must contain the vector which defines the
 *>          elementary reflector H(i), for i = 1,2,...,k, as returned by
 *>          CTPQRT in B.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.
-*>          If SIDE = 'L', LDA >= max(1,M);
-*>          if SIDE = 'R', LDA >= max(1,N).
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
+*>          The leading dimension of the array V.
+*>          If SIDE = 'L', LDV >= max(1,M);
+*>          if SIDE = 'R', LDV >= max(1,N).
+*> \endverbatim
 *>
-*>  T       (input) REAL array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,K)
 *>          The upper triangular factors of the block reflectors
 *>          as returned by CTPQRT, stored as a NB-by-K matrix.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  A       (input/output) REAL array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension
 *>          (LDA,N) if SIDE = 'L' or 
 *>          (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          Q*C or Q^H*C or C*Q or C*Q^H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) REAL array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          Q*C or Q^H*C or C*Q or C*Q^H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) REAL array.  The dimension of WORK is
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array. The dimension of WORK is
 *>           N*NB if SIDE = 'L', or  M*NB if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The columns of the pentagonal matrix V contain the elementary reflectors
 *>  H(1), H(2), ..., H(K); V is composed of a rectangular block V1 and a 
index 0c08ed1..ec2e0a9 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size to be used in the blocked QR.  N >= NB >= 1.
+*> \endverbatim
 *>
-*>  A       (input/output) REAL array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) REAL array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) REAL array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,N)
 *>          The upper triangular block reflectors stored in compact form
 *>          as a sequence of upper triangular blocks.  See Further Details.
+*> \endverbatim
 *>          
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  WORK    (workspace) REAL array, dimension (NB*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (NB*N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
-*>  
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
 *>               C = [ A ]
index 2923b4f..c73cf7d 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.  
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  A       (input/output) REAL array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) REAL array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) REAL array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,N)
 *>          The N-by-N upper triangular factor T of the block reflector.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit
 *>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
index a9943ca..abacca8 100644 (file)
 *>          K >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup realOTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  V       (input) REAL array, dimension
+*> \param[in] V
+*> \verbatim
+*>          V is REAL array, dimension
 *>                                (LDV,K) if STOREV = 'C'
 *>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
 *>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
 *>          The pentagonal matrix V, which contains the elementary reflectors
 *>          H(1), H(2), ..., H(K).  See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) REAL array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is REAL array, dimension (LDT,K)
 *>          The triangular K-by-K matrix T in the representation of the
 *>          block reflector.  
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. 
 *>          LDT >= K.
+*> \endverbatim
 *>
-*>  A       (input/output) REAL array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is REAL array, dimension
 *>          (LDA,N) if SIDE = 'L' or (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          H*C or H^H*C or C*H or C*H^H.  See Futher Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) REAL array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          H*C or H^H*C or C*H or C*H^H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) REAL array, dimension 
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension
 *>          (LDWORK,N) if SIDE = 'L',
 *>          (LDWORK,K) if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= K; 
 *>          if SIDE = 'R', LDWORK >= M.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup realOTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix C is a composite matrix formed from blocks A and B.
 *>  The block B is of size M-by-N; if SIDE = 'R', A is of size M-by-K, 
index 3b3c7f3..56e774e 100644 (file)
 *> \param[in,out] IFST
 *> \verbatim
 *>          IFST is INTEGER
+*> \endverbatim
+*>
 *> \param[in,out] ILST
 *> \verbatim
 *>          ILST is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          Specify the reordering of the diagonal blocks of T.
 *>          The block with row index IFST is moved to row ILST, by a
 *>          sequence of transpositions between adjacent blocks.
 *>          position (which may differ from its input value by +1 or -1).
 *>          1 <= IFST <= N; 1 <= ILST <= N.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] WORK
 *> \verbatim
index 632b5d0..340cb47 100644 (file)
 *> \param[out] WR
 *> \verbatim
 *>          WR is REAL array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] WI
 *> \verbatim
 *>          WI is REAL array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          The real and imaginary parts, respectively, of the reordered
 *>          eigenvalues of T. The eigenvalues are stored in the same
 *>          order as on the diagonal of T, with WR(i) = T(i,i) and, if
 *>          sufficiently ill-conditioned, then its value may differ
 *>          significantly from its value before reordering.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] M
 *> \verbatim
index f0965fa..79f2587 100644 (file)
 *>          partially reduced top-right block.
 *> \endverbatim
 *>
+*> \param[out] B21D
+*> \verbatim
+*>          B21D is DOUBLE PRECISION array, dimension (Q)
+*>          When CBBCSD converges, B21D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B21D contains the diagonal of the partially reduced bottom-left
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B21E
+*> \verbatim
+*>          B21E is DOUBLE PRECISION array, dimension (Q-1)
+*>          When CBBCSD converges, B21E contains zeros. If CBBCSD fails
+*>          to converge, then B21E contains the subdiagonal of the
+*>          partially reduced bottom-left block.
+*> \endverbatim
+*>
+*> \param[out] B22D
+*> \verbatim
+*>          B22D is DOUBLE PRECISION array, dimension (Q)
+*>          When CBBCSD converges, B22D contains the negative sines of
+*>          THETA(1), ..., THETA(Q). If CBBCSD fails to converge, then
+*>          B22D contains the diagonal of the partially reduced bottom-right
+*>          block.
+*> \endverbatim
+*>
+*> \param[out] B22E
+*> \verbatim
+*>          B22E is DOUBLE PRECISION array, dimension (Q-1)
+*>          When CBBCSD converges, B22E contains zeros. If CBBCSD fails
+*>          to converge, then B22E contains the subdiagonal of the
+*>          partially reduced bottom-right block.
+*> \endverbatim
+*>
 *> \param[out] RWORK
 *> \verbatim
 *>          RWORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
index 0395a0b..6939cc8 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> ZCGESV computes the solution to system of linear equations A * X = B for GE matrices</b>
+*> \brief <b> ZCGESV computes the solution to system of linear equations A * X = B for GE matrices</b> (mixed precision with iterative refinement)
 *
 *  =========== DOCUMENTATION ===========
 *
index 2092631..5efd27e 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> ZGBSV computes the solution to system of linear equations A * X = B for GB matrices</b>
+*> \brief <b> ZGBSV computes the solution to system of linear equations A * X = B for GB matrices</b> (simple driver)
 *
 *  =========== DOCUMENTATION ===========
 *
index f58a574..fffc8e0 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the input matrix A.
+*>          On exit,  A is overwritten by the balanced matrix.
+*>          If JOB = 'N', A is not referenced.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  ILO     (output) INTEGER
+*> \param[out] ILO
+*> \verbatim
+*> \endverbatim
 *>
-*>  IHI     (output) INTEGER
-*>          ILO and IHI are set to integers such that on exit
+*> \param[out] IHI
+*> \verbatim
+*>          ILO and IHI are set to INTEGER such that on exit
 *>          A(i,j) = 0 if i > j and j = 1,...,ILO-1 or I = IHI+1,...,N.
 *>          If JOB = 'N' or 'S', ILO = 1 and IHI = N.
+*> \endverbatim
 *>
-*>  SCALE   (output) DOUBLE PRECISION array, dimension (N)
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is DOUBLE PRECISION array, dimension (N)
 *>          Details of the permutations and scaling factors applied to
 *>          A.  If P(j) is the index of the row and column interchanged
 *>          with row and column j and D(j) is the scaling factor
 *>                   = P(j)    for j = IHI+1,...,N.
 *>          The order in which the interchanges are made is N to IHI+1,
 *>          then 1 to ILO-1.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
-*>
+*> \endverbatim
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The permutations consist of row and column interchanges which put
 *>  the matrix in the form
index c6eda5b..54c9b4f 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the unitary matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the unitary matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) COMPLEX*16 array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is COMPLEX*16 array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) COMPLEX*16 array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is COMPLEX*16 array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (max(M,N))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (max(M,N))
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit
 *>          < 0: if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index f8be256..f978a8b 100644 (file)
 *>          The number of columns in the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the M-by-N general matrix to be reduced.
+*>          On exit,
+*>          if m >= n, the diagonal and the first superdiagonal are
+*>            overwritten with the upper bidiagonal matrix B; the
+*>            elements below the diagonal, with the array TAUQ, represent
+*>            the unitary matrix Q as a product of elementary
+*>            reflectors, and the elements above the first superdiagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors;
+*>          if m < n, the diagonal and the first subdiagonal are
+*>            overwritten with the lower bidiagonal matrix B; the
+*>            elements below the first subdiagonal, with the array TAUQ,
+*>            represent the unitary matrix Q as a product of
+*>            elementary reflectors, and the elements above the diagonal,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (min(M,N))
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (min(M,N))
 *>          The diagonal elements of the bidiagonal matrix B:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (min(M,N)-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (min(M,N)-1)
 *>          The off-diagonal elements of the bidiagonal matrix B:
 *>          if m >= n, E(i) = A(i,i+1) for i = 1,2,...,n-1;
 *>          if m < n, E(i) = A(i+1,i) for i = 1,2,...,m-1.
+*> \endverbatim
 *>
-*>  TAUQ    (output) COMPLEX*16 array dimension (min(M,N))
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is COMPLEX*16 array dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) COMPLEX*16 array, dimension (min(M,N))
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is COMPLEX*16 array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,M,N).
 *>          For optimum performance LWORK >= (M+N)*NB, where NB
 *>          is the optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit.
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index a804bbf..36e156b 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to ZGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= max(1,N).
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX*16 array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
 *>          On entry, the n by n general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the unitary matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX*16 array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index 2d224f5..9e1a483 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] ILO
+*> \verbatim
+*>          ILO is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHI
+*> \verbatim
+*>          IHI is INTEGER
+*> \endverbatim
 *> \verbatim
-*          set to 1 and N respectively. See Further Details.
+*>          It is assumed that A is already upper triangular in rows
+*>          and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
+*>          set by a previous call to ZGEBAL; otherwise they should be
+*>          set to 1 and N respectively. See Further Details.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX*16 array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
 *>          On entry, the N-by-N general matrix to be reduced.
 *>          On exit, the upper triangle and the first subdiagonal of A
 *>          are overwritten with the upper Hessenberg matrix H, and the
 *>          elements below the first subdiagonal, with the array TAU,
 *>          represent the unitary matrix Q as a product of elementary
 *>          reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX*16 array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details). Elements 1:ILO-1 and IHI:N-1 of TAU are set to
 *>          zero.
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (LWORK)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (LWORK)
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The length of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of (ihi-ilo) elementary
 *>  reflectors
index cc57d72..cbc1f8d 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m by min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (M)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (M)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index c72b27b..a83ea79 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit, the elements on and below the diagonal of the array
+*>          contain the m-by-min(m,n) lower trapezoidal matrix L (L is
+*>          lower triangular if m <= n); the elements above the diagonal,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX*16 array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is the
 *>          optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 742aad2..416f7b8 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          On exit, if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the m by n lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          unitary matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index f48e33d..e83e098 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          (see Further Details).
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m >= n, the lower triangle of the subarray
+*>          A(m-n+1:m,1:n) contains the N-by-N lower triangular matrix L;
+*>          if m <= n, the elements on and below the (n-m)-th
+*>          superdiagonal contain the M-by-N lower trapezoidal matrix L;
+*>          the remaining elements, with the array TAU, represent the
+*>          unitary matrix Q as a product of elementary reflectors
+*>          (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX*16 array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,N).
 *>          For optimum performance LWORK >= N*NB, where NB is
 *>          the optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index cb8e7ed..8d6d0cb 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 7721c11..d259977 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the m by n matrix A.
+*>          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,
+*>          with the array TAU, represent the unitary matrix Q as a
+*>          product of elementary reflectors (see Further Details).
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          product of elementary reflectors (see Further Details).
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,M).
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (min(M,N))
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (N)
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index f990d12..6e447ac 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  
 *>  The matrix V stores the elementary reflectors H(i) in the i-th column
 *>  below the diagonal. For example, if M=5 and N=3, the matrix V is
 *>
index d216b66..9249d4d 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index b233b6b..967cfa9 100644 (file)
 *>          reflector T; the elements below the diagonal are not used.
 *>          See below for further details.
 *> \endverbatim
+*>
+*> \param[in] LDT
 *> \verbatim
-*>  LDT     (intput) INTEGER
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N).
 *> \endverbatim
 *>
index 9a7ce43..f215723 100644 (file)
 *>          The number of columns of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16GEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          reflectors (see Further Details).
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the M-by-N matrix A.
+*>          On exit,
+*>          if m <= n, the upper triangle of the subarray
+*>          A(1:m,n-m+1:n) contains the M-by-M upper triangular matrix R;
+*>          if m >= n, the elements on and above the (m-n)-th subdiagonal
+*>          contain the M-by-N upper trapezoidal matrix R;
+*>          the remaining elements, with the array TAU, represent the
+*>          unitary matrix Q as a product of min(m,n) elementary
+*>          reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX*16 array, dimension (min(M,N))
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (min(M,N))
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= max(1,M).
 *>          For optimum performance LWORK >= M*NB, where NB is
 *>          the optimal blocksize.
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16GEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 40237a0..f5e1303 100644 (file)
@@ -1,4 +1,4 @@
-*> \brief <b> ZGESV computes the solution to system of linear equations A * X = B for GE matrices</b>
+*> \brief <b> ZGESV computes the solution to system of linear equations A * X = B for GE matrices</b> (simple driver)
 *
 *  =========== DOCUMENTATION ===========
 *
index 39d9f3d..6dcd4b8 100644 (file)
 *> \param[out] X
 *> \verbatim
 *>          X is COMPLEX*16 array, dimension (M)
+*> \endverbatim
+*>
 *> \param[out] Y
 *> \verbatim
 *>          Y is COMPLEX*16 array, dimension (P)
-*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
+*> \verbatim
+*>          On exit, X and Y are the solutions of the GLM problem.
 *> \endverbatim
 *>
 *> \param[out] WORK
index 37f475e..2b0f436 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI mark the rows and columns of A which are to be
 *>          reduced.  It is assumed that A is already upper triangular
 *>          in rows and columns 1:ILO-1 and IHI+1:N.  ILO and IHI are
 *>          should be set to 1 and N respectively.
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index ee65341..2eb509b 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,N).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the unitary matrix Q (see Further Details).
+*>          TAUA is COMPLEX*16 array, dimension (min(N,M))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the unitary matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX*16 array, dimension (LDB,P)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX*16 array, dimension (LDB,P)
 *>          On entry, the N-by-P matrix B.
 *>          On exit, if N <= P, the upper triangle of the subarray
 *>          B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
 *>          elements, with the array TAUB, represent the unitary
 *>          matrix Z as a product of elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,N).
+*> \endverbatim
 *>
-*>  TAUB    (output) COMPLEX*16 array, dimension (min(N,P))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is COMPLEX*16 array, dimension (min(N,P))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the QR factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>           = 0:  successful exit
 *>           < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index 5a2b8ca..3c6fd3a 100644 (file)
 *>          The leading dimension of the array A. LDA >= max(1,M).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[out] TAUA
 *> \verbatim
-*          represent the unitary matrix Q (see Further Details).
+*>          TAUA is COMPLEX*16 array, dimension (min(M,N))
+*>          The scalar factors of the elementary reflectors which
+*>          represent the unitary matrix Q (see Further Details).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX*16 array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX*16 array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the min(P,N)-by-N upper trapezoidal matrix T (T is
 *>          upper triangular if P >= N); the elements below the diagonal,
 *>          with the array TAUB, represent the unitary matrix Z as a
 *>          product of elementary reflectors (see Further Details).
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
 *>
-*>  TAUB    (output) COMPLEX*16 array, dimension (min(P,N))
+*> \param[out] TAUB
+*> \verbatim
+*>          TAUB is COMPLEX*16 array, dimension (min(P,N))
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Z (see Further Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK. LWORK >= max(1,N,M,P).
 *>          For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
 *>          where NB1 is the optimal blocksize for the RQ factorization
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO=-i, the i-th argument had an illegal value.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix Q is represented as a product of elementary reflectors
 *>
index d9b359c..1b20bb0 100644 (file)
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
 *>          described in Purpose.
 *>          K + L = effective numerical rank of (A**H,B**H)**H.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
 *> \param[out] ALPHA
 *> \verbatim
 *>          ALPHA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>            ALPHA(K+1:K+L) = C,
 *>            BETA(K+1:K+L)  = S,
 *>          or if M-K-L < 0,
-*>            ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0
-*>            BETA(K+1:M) = S, BETA(M+1:K+L) = 1
+*>            ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0
+*>            BETA(K+1:M) =S, BETA(M+1:K+L) =1
 *>          and
 *>            ALPHA(K+L+1:N) = 0
 *>            BETA(K+L+1:N)  = 0
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index 0f95031..8206dc7 100644 (file)
 *> \param[in] TOLA
 *> \verbatim
 *>          TOLA is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] TOLB
 *> \verbatim
 *>          TOLB is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          TOLA and TOLB are the thresholds to determine the effective
 *>          numerical rank of matrix B and a subblock of A. Generally,
 *>          they are set to
 *>          The size of TOLA and TOLB may affect the size of backward
 *>          errors of the decomposition.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] K
 *> \verbatim
 *>          K is INTEGER
+*> \endverbatim
+*>
 *> \param[out] L
 *> \verbatim
 *>          L is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          On exit, K and L specify the dimension of the subblocks
 *>          described in Purpose section.
 *>          K + L = effective numerical rank of (A**H,B**H)**H.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] U
 *> \verbatim
index 2eacc43..a7e81dc 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index e6d2435..ea1a254 100644 (file)
 *  Arguments
 *  =========
 *
+*> \param[in] UPLO
+*> \verbatim
+*>          UPLO is CHARACTER*1
+*>          = 'U':  Upper triangles of A and B are stored;
+*>          = 'L':  Lower triangles of A and B are stored.
+*> \endverbatim
+*>
 *> \param[in] N
 *> \verbatim
 *>          N is INTEGER
 *>          Absolute value of largest matrix element.  If AMAX is very
 *>          close to overflow or very close to underflow, the matrix
 *>          should be scaled.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (3*N)
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
 *>          > 0:  if INFO = i, the i-th diagonal element is nonpositive.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index 36d94f0..a04d7cf 100644 (file)
 *>          = 'V': all eigenvalues in the half-open interval (VL,VU]
 *>                 will be found.
 *>          = 'I': the IL-th through IU-th eigenvalues will be found.
+*> \endverbatim
+*>
 *> \param[in] UPLO
 *> \verbatim
 *>          UPLO is CHARACTER*1
 *>          = 'U':  Upper triangles of A and B are stored;
 *>          = 'L':  Lower triangles of A and B are stored.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] N
 *> \verbatim
@@ -95,8 +96,7 @@
 *>          upper triangular part of the matrix A.  If UPLO = 'L',
 *>          the leading N-by-N lower triangular part of A contains
 *>          the lower triangular part of the matrix A.
-*> \endverbatim
-*> \verbatim
+*>
 *>          On exit,  the lower triangle (if UPLO='L') or the upper
 *>          triangle (if UPLO='U') of A, including the diagonal, is
 *>          destroyed.
 *>          upper triangular part of the matrix B.  If UPLO = 'L',
 *>          the leading N-by-N lower triangular part of B contains
 *>          the lower triangular part of the matrix B.
-*> \endverbatim
-*> \verbatim
+*>
 *>          On exit, if INFO <= N, the part of B containing the matrix is
 *>          overwritten by the triangular factor U or L from the Cholesky
 *>          factorization B = U**H*U or B = L*L**H.
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
 *>          An approximate eigenvalue is accepted as converged
 *>          when it is determined to lie in an interval [a,b]
 *>          of width less than or equal to
-*> \endverbatim
-*> \verbatim
+*>
 *>                  ABSTOL + EPS *   max( |a|,|b| ) ,
-*> \endverbatim
-*> \verbatim
+*>
 *>          where EPS is the machine precision.  If ABSTOL is less than
 *>          or equal to zero, then  EPS*|T|  will be used in its place,
 *>          where |T| is the 1-norm of the tridiagonal matrix obtained
 *>          by reducing C to tridiagonal form, where C is the symmetric
 *>          matrix of the standard symmetric problem to which the
 *>          generalized problem is transformed.
-*> \endverbatim
-*> \verbatim
+*>
 *>          Eigenvalues will be computed most accurately when ABSTOL is
 *>          set to twice the underflow threshold 2*DLAMCH('S'), not zero.
 *>          If this routine returns with INFO>0, indicating that some
 *>          The eigenvectors are normalized as follows:
 *>          if ITYPE = 1 or 2, Z**T*B*Z = I;
 *>          if ITYPE = 3, Z**T*inv(B)*Z = I.
-*> \endverbatim
-*> \verbatim
+*>
 *>          If an eigenvector fails to converge, then that column of Z
 *>          contains the latest approximation to the eigenvector, and the
 *>          index of the eigenvector is returned in IFAIL.
index 2a8a430..f7734fd 100644 (file)
 *>               copied to AF and factored.
 *> \endverbatim
 *>
+*> \param[in] UPLO
+*> \verbatim
+*>          UPLO is CHARACTER*1
+*>       = 'U':  Upper triangle of A is stored;
+*>       = 'L':  Lower triangle of A is stored.
+*> \endverbatim
+*>
 *> \param[in] N
 *> \verbatim
 *>          N is INTEGER
index c9e4a11..c80744a 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the Hermitian matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the unitary
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the unitary matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  D       (output) DOUBLE PRECISION array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value.
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index ea8fdce..dc1a4b9 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16HEcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          of elementary reflectors. See Further Details.
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the Hermitian matrix A.  If UPLO = 'U', the leading
+*>          N-by-N upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading N-by-N lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the unitary
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the unitary matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (N)
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (N)
 *>          The diagonal elements of the tridiagonal matrix T:
 *>          D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
 *>          The off-diagonal elements of the tridiagonal matrix T:
 *>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX*16 array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors (see Further
 *>          Details).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
+*> \endverbatim
 *>
-*>  LWORK   (input) INTEGER
+*> \param[in] LWORK
+*> \verbatim
+*>          LWORK is INTEGER
 *>          The dimension of the array WORK.  LWORK >= 1.
 *>          For optimum performance LWORK >= N*NB, where NB is the
 *>          optimal blocksize.
-*>
+*> \endverbatim
+*> \verbatim
 *>          If LWORK = -1, then a workspace query is assumed; the routine
 *>          only calculates the optimal size of the WORK array, returns
 *>          this value as the first entry of the WORK array, and no error
 *>          message related to LWORK is issued by XERBLA.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16HEcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index ff3e03d..f034337 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index dd267d5..67b9b67 100644 (file)
 *>          The order of the matrix A.  N >= 0.
 *> \endverbatim
 *>
+*> \param[in,out] AP
+*> \verbatim
+*>          AP is COMPLEX*16 array, dimension (N*(N+1)/2)
+*>          On entry, the upper or lower triangle of the Hermitian matrix
+*>          A, packed columnwise in a linear array.  The j-th column of A
+*>          is stored in the array AP as follows:
+*>          if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
+*>          if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
+*>          On exit, if UPLO = 'U', the diagonal and first superdiagonal
+*>          of A are overwritten by the corresponding elements of the
+*>          tridiagonal matrix T, and the elements above the first
+*>          superdiagonal, with the array TAU, represent the unitary
+*>          matrix Q as a product of elementary reflectors; if UPLO
+*>          = 'L', the diagonal and first subdiagonal of A are over-
+*>          written by the corresponding elements of the tridiagonal
+*>          matrix T, and the elements below the first subdiagonal, with
+*>          the array TAU, represent the unitary matrix Q as a product
+*>          of elementary reflectors. See Further Details.
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (N)
+*>          The diagonal elements of the tridiagonal matrix T:
+*>          D(i) = A(i,i).
+*> \endverbatim
+*>
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
+*>          The off-diagonal elements of the tridiagonal matrix T:
+*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (N-1)
+*>          The scalar factors of the elementary reflectors (see Further
+*>          Details).
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0:  successful exit
+*>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          of elementary reflectors. See Further Details.
-*>
-*>  D       (output) DOUBLE PRECISION array, dimension (N)
-*>          The diagonal elements of the tridiagonal matrix T:
-*>          D(i) = A(i,i).
-*>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
-*>          The off-diagonal elements of the tridiagonal matrix T:
-*>          E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (N-1)
-*>          The scalar factors of the elementary reflectors (see Further
-*>          Details).
-*>
-*>  INFO    (output) INTEGER
-*>          = 0:  successful exit
-*>          < 0:  if INFO = -i, the i-th argument had an illegal value
-*>
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index 95497e6..5cdf954 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>           It is assumed that H is already upper triangular in rows
 *>           and columns 1:ILO-1 and IHI+1:N. ILO and IHI are normally
 *>           set by a previous call to ZGEBAL, and then passed to ZGEHRD
@@ -86,7 +90,6 @@
 *>           respectively.  If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N.
 *>           If N = 0, then ILO = 1 and IHI = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] H
 *> \verbatim
index 91072c5..c023b46 100644 (file)
 *>
 *> \param[in] AB
 *> \verbatim
-*>          AB is COMPLEX*16 array, dimension (LDA,N)
+*>          AB is COMPLEX*16 array, dimension (LDAB,N)
 *>     On entry, the N-by-N matrix A.
 *> \endverbatim
 *>
 *> \param[in] LDAB
 *> \verbatim
 *>          LDAB is INTEGER
-*>     The leading dimension of the array A.  LDA >= max(1,N).
+*>     The leading dimension of the array A.  LDAB >= max(1,N).
 *> \endverbatim
 *>
 *> \param[in] AFB
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_NORM(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
 *>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
+*>
 *>     The second index in ERR_BNDS_COMP(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
index 61b6d3b..3f2964a 100644 (file)
 *> and provides error bounds and backward error estimates for the solution.
 *> This subroutine is called by ZGERFSX to perform iterative refinement.
 *> In addition to normwise error bound, the code provides maximum
-*> componentwise error bound if possible. See comments for ERR_BNDS_NORM
-*> and ERR_BNDS_COMP for details of the error bounds. Note that this
+*> componentwise error bound if possible. See comments for ERRS_N
+*> and ERRS_C for details of the error bounds. Note that this
 *> subroutine is only resonsible for setting the second fields of
-*> ERR_BNDS_NORM and ERR_BNDS_COMP.
+*> ERRS_N and ERRS_C.
 *>
 *>\endverbatim
 *
 *> \param[in] N_NORMS
 *> \verbatim
 *>          N_NORMS is INTEGER
-*>     Determines which error bounds to return (see ERR_BNDS_NORM
-*>     and ERR_BNDS_COMP).
+*>     Determines which error bounds to return (see ERRS_N
+*>     and ERRS_C).
 *>     If N_NORMS >= 1 return normwise error bounds.
 *>     If N_NORMS >= 2 return componentwise error bounds.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_NORM
+*> \param[in,out] ERRS_N
 *> \verbatim
-*>          ERR_BNDS_NORM is DOUBLE PRECISION array, dimension
+*>          ERRS_N is DOUBLE PRECISION array, dimension
 *>                    (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     normwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Normwise relative error in the ith solution vector:
 *>             max_j (abs(XTRUE(j,i) - X(j,i)))
 *>            ------------------------------
 *>                  max_j abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the type of error information as described
 *>     below. There currently are up to three pieces of information
 *>     returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_N(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_NORM(:,err) contains the following
+*>
+*>     The second index in ERRS_N(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated normwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              appropriately scaled matrix Z.
 *>              Let Z = S*A, where S scales each row by a power of the
 *>              radix so all absolute row sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     cautions.
 *> \endverbatim
 *>
-*> \param[in,out] ERR_BNDS_COMP
+*> \param[in,out] ERRS_C
 *> \verbatim
-*>          ERR_BNDS_COMP is DOUBLE PRECISION array, dimension
+*>          ERRS_C is DOUBLE PRECISION array, dimension
 *>                    (NRHS, N_ERR_BNDS)
 *>     For each right-hand side, this array contains information about
 *>     various error bounds and condition numbers corresponding to the
 *>     componentwise relative error, which is defined as follows:
-*> \endverbatim
-*> \verbatim
+*>
 *>     Componentwise relative error in the ith solution vector:
 *>                    abs(XTRUE(j,i) - X(j,i))
 *>             max_j ----------------------
 *>                         abs(X(j,i))
-*> \endverbatim
-*> \verbatim
+*>
 *>     The array is indexed by the right-hand side i (on which the
 *>     componentwise relative error depends), and the type of error
 *>     information as described below. There currently are up to three
 *>     pieces of information returned for each right-hand side. If
 *>     componentwise accuracy is not requested (PARAMS(3) = 0.0), then
-*>     ERR_BNDS_COMP is not accessed.  If N_ERR_BNDS .LT. 3, then at most
+*>     ERRS_C is not accessed.  If N_ERR_BNDS .LT. 3, then at most
 *>     the first (:,N_ERR_BNDS) entries are returned.
-*> \endverbatim
-*> \verbatim
-*>     The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
+*>
+*>     The first index in ERRS_C(i,:) corresponds to the ith
 *>     right-hand side.
-*> \endverbatim
-*> \verbatim
-*>     The second index in ERR_BNDS_COMP(:,err) contains the following
+*>
+*>     The second index in ERRS_C(:,err) contains the following
 *>     three fields:
 *>     err = 1 "Trust/don't trust" boolean. Trust the answer if the
 *>              reciprocal condition number is less than the threshold
 *>              sqrt(n) * slamch('Epsilon').
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 2 "Guaranteed" error bound: The estimated forward error,
 *>              almost certainly within a factor of 10 of the true error
 *>              so long as the next entry is greater than the threshold
 *>              sqrt(n) * slamch('Epsilon'). This error bound should only
 *>              be trusted if the previous boolean is true.
-*> \endverbatim
-*> \verbatim
+*>
 *>     err = 3  Reciprocal condition number: Estimated componentwise
 *>              reciprocal condition number.  Compared with the threshold
 *>              sqrt(n) * slamch('Epsilon') to determine if the error
 *>              current right-hand side and S scales each row of
 *>              A*diag(x) by a power of the radix so all absolute row
 *>              sums of Z are approximately 1.
-*> \endverbatim
-*> \verbatim
+*>
 *>     This subroutine is only responsible for setting the second field
 *>     above.
 *>     See Lapack Working Note 165 for further details and extra
 *>     permit convergence using approximate factorizations or
 *>     factorizations other than LU. If the factorization uses a
 *>     technique other than Gaussian elimination, the guarantees in
-*>     ERR_BNDS_NORM and ERR_BNDS_COMP may no longer be trustworthy.
+*>     ERRS_N and ERRS_C may no longer be trustworthy.
 *> \endverbatim
 *>
 *> \param[in] RTHRESH
index 5be2563..0244bd0 100644 (file)
 *>     column INFO is exactly 0.
 *> \endverbatim
 *>
-*> \param[in] NCOLS
-*> \verbatim
-*>          NCOLS is INTEGER
-*>     The number of columns of the matrix A. NCOLS >= 0.
-*> \endverbatim
-*>
 *> \param[in] A
 *> \verbatim
 *>          A is COMPLEX*16 array, dimension (LDA,N)
index 8162ede..a796d6e 100644 (file)
 *>     The denominator in the relative backward error formula above, i.e.,
 *>     the matrix abs(op(A_s))*abs(Y) + abs(B_s). The matrices A, Y, and B
 *>     are from iterative refinement (see zla_gerfsx_extended.f).
+*> \endverbatim
 *>     
 *> \param[out] BERR
 *> \verbatim
 *>          BERR is COMPLEX*16 array, dimension (NRHS)
 *>     The componentwise relative backward error from the formula above.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index c9cacac..f98a01a 100644 (file)
 *>     column INFO is exactly 0.
 *> \endverbatim
 *>
-*> \param[in] NCOLS
-*> \verbatim
-*>          NCOLS is INTEGER
-*>     The number of columns of the matrix A. NCOLS >= 0.
-*> \endverbatim
-*>
 *> \param[in] A
 *> \verbatim
 *>          A is COMPLEX*16 array, dimension (LDA,N)
index 9d81892..3f734be 100644 (file)
 *>          The number of leading rows and columns of A to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the m by n general matrix to be reduced.
+*>          On exit, the first NB rows and columns of the matrix are
+*>          overwritten; the rest of the array is unchanged.
+*>          If m >= n, elements on and below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the unitary
+*>            matrix Q as a product of elementary reflectors; and
+*>            elements above the diagonal in the first NB rows, with the
+*>            array TAUP, represent the unitary matrix P as a product
+*>            of elementary reflectors.
+*>          If m < n, elements below the diagonal in the first NB
+*>            columns, with the array TAUQ, represent the unitary
+*>            matrix Q as a product of elementary reflectors, and
+*>            elements on and above the diagonal in the first NB rows,
+*>            with the array TAUP, represent the unitary matrix P as
+*>            a product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  D       (output) DOUBLE PRECISION array, dimension (NB)
+*> \param[out] D
+*> \verbatim
+*>          D is DOUBLE PRECISION array, dimension (NB)
 *>          The diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.  D(i) = A(i,i).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (NB)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (NB)
 *>          The off-diagonal elements of the first NB rows and columns of
 *>          the reduced matrix.
+*> \endverbatim
 *>
-*>  TAUQ    (output) COMPLEX*16 array dimension (NB)
+*> \param[out] TAUQ
+*> \verbatim
+*>          TAUQ is COMPLEX*16 array dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix Q. See Further Details.
+*> \endverbatim
 *>
-*>  TAUP    (output) COMPLEX*16 array, dimension (NB)
+*> \param[out] TAUP
+*> \verbatim
+*>          TAUP is COMPLEX*16 array, dimension (NB)
 *>          The scalar factors of the elementary reflectors which
 *>          represent the unitary matrix P. See Further Details.
+*> \endverbatim
 *>
-*>  X       (output) COMPLEX*16 array, dimension (LDX,NB)
+*> \param[out] X
+*> \verbatim
+*>          X is COMPLEX*16 array, dimension (LDX,NB)
 *>          The m-by-nb matrix X required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDX     (input) INTEGER
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
 *>          The leading dimension of the array X. LDX >= max(1,M).
+*> \endverbatim
 *>
-*>  Y       (output) COMPLEX*16 array, dimension (LDY,NB)
+*> \param[out] Y
+*> \verbatim
+*>          Y is COMPLEX*16 array, dimension (LDY,NB)
 *>          The n-by-nb matrix Y required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDY     (input) INTEGER
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
 *>          The leading dimension of the array Y. LDY >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrices Q and P are represented as products of elementary
 *>  reflectors:
index 0dc96c2..3660b44 100644 (file)
 *> \verbatim
 *>          X is COMPLEX*16 array, dimension (LDX,NRHS)
 *>          The N by NRHS matrix X.
+*> \endverbatim
+*>
 *> \param[in] LDX
 *> \verbatim
 *>          LDX is INTEGER
 *>          The leading dimension of the array X.  LDX >= max(N,1).
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] BETA
 *> \verbatim
index bd6c621..3b25e4f 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is COMPLEX*16 array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= N.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) COMPLEX*16 array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) COMPLEX*16 array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= N.
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index b63c7f1..f6abf38 100644 (file)
 *>          The number of columns to be reduced.
 *> \endverbatim
 *>
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N-K+1)
+*>          On entry, the n-by-(n-k+1) general matrix A.
+*>          On exit, the elements on and above the k-th subdiagonal in
+*>          the first NB columns are overwritten with the corresponding
+*>          elements of the reduced matrix; the elements below the k-th
+*>          subdiagonal, with the array TAU, represent the matrix Q as a
+*>          product of elementary reflectors. The other columns of A are
+*>          unchanged. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
+*>
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (NB)
+*>          The scalar factors of the elementary reflectors. See Further
+*>          Details.
+*> \endverbatim
+*>
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,NB)
+*>          The upper triangular matrix T.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
+*>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
+*>
+*> \param[out] Y
+*> \verbatim
+*>          Y is COMPLEX*16 array, dimension (LDY,NB)
+*>          The n-by-nb matrix Y.
+*> \endverbatim
+*>
+*> \param[in] LDY
+*> \verbatim
+*>          LDY is INTEGER
+*>          The leading dimension of the array Y. LDY >= max(1,N).
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          unchanged. See Further Details.
-*>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.  LDA >= max(1,N).
-*>
-*>  TAU     (output) COMPLEX*16 array, dimension (NB)
-*>          The scalar factors of the elementary reflectors. See Further
-*>          Details.
-*>
-*>  T       (output) COMPLEX*16 array, dimension (LDT,NB)
-*>          The upper triangular matrix T.
-*>
-*>  LDT     (input) INTEGER
-*>          The leading dimension of the array T.  LDT >= NB.
-*>
-*>  Y       (output) COMPLEX*16 array, dimension (LDY,NB)
-*>          The n-by-nb matrix Y.
-*>
-*>  LDY     (input) INTEGER
-*>          The leading dimension of the array Y. LDY >= max(1,N).
-*>
 *>
 *>  The matrix Q is represented as a product of nb elementary reflectors
 *>
index 009ae42..34edc5d 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>           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,
 *>           H(ILO,ILO-1) is zero. ILO and IHI are normally set by a
@@ -83,7 +87,6 @@
 *>           respectively.  If N.GT.0, then 1.LE.ILO.LE.IHI.LE.N.
 *>           If N = 0, then ILO = 1 and IHI = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] H
 *> \verbatim
 *>           form returned in H, with W(i) = H(i,i).
 *> \endverbatim
 *>
+*> \param[in] ILOZ
+*> \verbatim
+*>          ILOZ is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHIZ
+*> \verbatim
+*>          IHIZ is INTEGER
+*>           Specify the rows of Z to which transformations must be
+*>           applied if WANTZ is .TRUE..
+*>           1 .LE. ILOZ .LE. ILO; IHI .LE. IHIZ .LE. N.
+*> \endverbatim
+*>
 *> \param[in,out] Z
 *> \verbatim
 *>          Z is COMPLEX*16 array, dimension (LDZ,IHI)
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is a unitary matrix.  The final
 *>                value of  H is upper Hessenberg and triangular in
 *>                rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the unitary matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
index 6035a01..572504f 100644 (file)
 *> \param[in] S1
 *> \verbatim
 *>          S1 is COMPLEX*16
-*>       S2     S1 and S2 are the shifts defining K in (*) above.
+*> \endverbatim
+*>
+*> \param[in] S2
+*> \verbatim
+*>          S2 is COMPLEX*16
+*> \endverbatim
+*> \verbatim
+*>          S1 and S2 are the shifts defining K in (*) above.
 *> \endverbatim
 *>
 *> \param[out] V
index 96e5eea..f8cb278 100644 (file)
 *> \param[in] ILOZ
 *> \verbatim
 *>          ILOZ is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHIZ
 *> \verbatim
 *>          IHIZ is INTEGER
 *>          Specify the rows of Z to which transformations must be
 *>          applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] Z
 *> \verbatim
index e7fabfd..24442cf 100644 (file)
 *>           form returned in H, with W(i) = H(i,i).
 *> \endverbatim
 *>
+*> \param[in] ILOZ
+*> \verbatim
+*>          ILOZ is INTEGER
+*> \endverbatim
+*>
+*> \param[in] IHIZ
+*> \verbatim
+*>          IHIZ is INTEGER
+*>           Specify the rows of Z to which transformations must be
+*>           applied if WANTZ is .TRUE..
+*>           1 .LE. ILOZ .LE. ILO; IHI .LE. IHIZ .LE. N.
+*> \endverbatim
+*>
 *> \param[in,out] Z
 *> \verbatim
 *>          Z is COMPLEX*16 array, dimension (LDZ,IHI)
 *>                the eigenvalues.  Elements 1:ilo-1 and i+1:n of WR
 *>                and WI contain those eigenvalues which have been
 *>                successfully computed.  (Failures are rare.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANT is .FALSE., then on exit,
 *>                the remaining unconverged eigenvalues are the eigen-
 *>                values of the upper Hessenberg matrix rows and
 *>                columns ILO through INFO of the final, output
 *>                value of H.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTT is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>           (*)  (initial value of H)*U  = U*(final value of H)
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is a unitary matrix.  The final
 *>                value of  H is upper Hessenberg and triangular in
 *>                rows and columns INFO+1 through IHI.
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .TRUE., then on exit
-*> \endverbatim
-*> \verbatim
+*>
 *>                  (final value of Z(ILO:IHI,ILOZ:IHIZ)
 *>                   =  (initial value of Z(ILO:IHI,ILOZ:IHIZ)*U
-*> \endverbatim
-*> \verbatim
+*>
 *>                where U is the unitary matrix in (*) (regard-
 *>                less of the value of WANTT.)
-*> \endverbatim
-*> \verbatim
+*>
 *>                If INFO .GT. 0 and WANTZ is .FALSE., then Z is not
 *>                accessed.
 *> \endverbatim
index eaa5d16..e964722 100644 (file)
 *>          reflectors whose product defines the block reflector).
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] V
 *> \verbatim
-*          The matrix V. See Further Details.
+*>          V is COMPLEX*16 array, dimension
+*>                                (LDV,K) if STOREV = 'C'
+*>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
+*>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) COMPLEX*16 array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,K)
 *>          The triangular K-by-K matrix T in the representation of the
 *>          block reflector.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
-*>  C       (input/output) COMPLEX*16 array, dimension (LDC,N)
+*> \param[in,out] C
+*> \verbatim
+*>          C is COMPLEX*16 array, dimension (LDC,N)
 *>          On entry, the M-by-N matrix C.
 *>          On exit, C is overwritten by H*C or H**H*C or C*H or C*H**H.
+*> \endverbatim
 *>
-*>  LDC     (input) INTEGER
+*> \param[in] LDC
+*> \verbatim
+*>          LDC is INTEGER
 *>          The leading dimension of the array C. LDC >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (LDWORK,K)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (LDWORK,K)
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= max(1,N);
 *>          if SIDE = 'R', LDWORK >= max(1,M).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index 99dc21a..544e6a9 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) COMPLEX*16 array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is COMPLEX*16 array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) COMPLEX*16 array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX*16 array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The shape of the matrix V and the storage of the vectors which define
 *>  the H(i) is best illustrated by the following example with n = 5 and
index 978d136..82f8849 100644 (file)
 *>          is stored the corresponding shift as given by DLARRE.
 *>          On exit, L is overwritten.
 *> \endverbatim
+*>
+*> \param[in] PIVMIN
 *> \verbatim
-*>  PIVMIN  (in) DOUBLE PRECISION
+*>          PIVMIN is DOUBLE PRECISION
 *>          The minimum pivot allowed in the Sturm sequence.
 *> \endverbatim
 *>
 *> \verbatim
 *>          INFO is INTEGER
 *>          = 0:  successful exit
-*> \endverbatim
-*> \verbatim
+*>
 *>          > 0:  A problem occured in ZLARRV.
 *>          < 0:  One of the called subroutines signaled an internal problem.
 *>                Needs inspection of the corresponding parameter IINFO
 *>                for further information.
-*> \endverbatim
-*> \verbatim
+*>
 *>          =-1:  Problem in DLARRB when refining a child's eigenvalues.
 *>          =-2:  Problem in DLARRF when computing the RRR of a child.
 *>                When a child is inside a tight cluster, it can be difficult
index 294d692..fe86c54 100644 (file)
@@ -94,8 +94,6 @@
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  3-5-96 - Modified with a new algorithm by W. Kahan and J. Demmel
 *>
index 118f9f8..701ca1f 100644 (file)
 *>          = 'B': H = H(k) . . . H(2) H(1) (Backward)
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] STOREV
 *> \verbatim
-*          reflectors are stored (see also Further Details):
+*>          STOREV is CHARACTER*1
+*>          Specifies how the vectors which define the elementary
+*>          reflectors are stored (see also Further Details):
 *>          = 'C': columnwise                        (not supported yet)
 *>          = 'R': rowwise
+*> \endverbatim
 *>
-*>  N       (input) INTEGER
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
 *>          The order of the block reflector H. N >= 0.
+*> \endverbatim
 *>
-*>  K       (input) INTEGER
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
 *>          The order of the triangular factor T (= the number of
 *>          elementary reflectors). K >= 1.
+*> \endverbatim
 *>
-*>  V       (input/output) COMPLEX*16 array, dimension
+*> \param[in,out] V
+*> \verbatim
+*>          V is COMPLEX*16 array, dimension
 *>                               (LDV,K) if STOREV = 'C'
 *>                               (LDV,N) if STOREV = 'R'
 *>          The matrix V. See further details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C', LDV >= max(1,N); if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  TAU     (input) COMPLEX*16 array, dimension (K)
+*> \param[in] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (K)
 *>          TAU(i) must contain the scalar factor of the elementary
 *>          reflector H(i).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX*16 array, dimension (LDT,K)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,K)
 *>          The k by k triangular factor T of the block reflector.
 *>          If DIRECT = 'F', T is upper triangular; if DIRECT = 'B', T is
 *>          lower triangular. The rest of the array is not used.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. LDT >= K.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  Based on contributions by
 *>    A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
index f478462..1c5989e 100644 (file)
@@ -84,6 +84,8 @@
 *> \param[in] CTO
 *> \verbatim
 *>          CTO is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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
 *>          can be represented without over/underflow.  CFROM must be
index 3ac6a65..e5c6346 100644 (file)
 *>          The number of rows and columns to be reduced.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in,out] A
 *> \verbatim
-*          See Further Details.
+*>          A is COMPLEX*16 array, dimension (LDA,N)
+*>          On entry, the Hermitian matrix A.  If UPLO = 'U', the leading
+*>          n-by-n upper triangular part of A contains the upper
+*>          triangular part of the matrix A, and the strictly lower
+*>          triangular part of A is not referenced.  If UPLO = 'L', the
+*>          leading n-by-n lower triangular part of A contains the lower
+*>          triangular part of the matrix A, and the strictly upper
+*>          triangular part of A is not referenced.
+*>          On exit:
+*>          if UPLO = 'U', the last NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements above the diagonal
+*>            with the array TAU, represent the unitary matrix Q as a
+*>            product of elementary reflectors;
+*>          if UPLO = 'L', the first NB columns have been reduced to
+*>            tridiagonal form, with the diagonal elements overwriting
+*>            the diagonal elements of A; the elements below the diagonal
+*>            with the array TAU, represent the  unitary matrix Q as a
+*>            product of elementary reflectors.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  E       (output) DOUBLE PRECISION array, dimension (N-1)
+*> \param[out] E
+*> \verbatim
+*>          E is DOUBLE PRECISION array, dimension (N-1)
 *>          If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal
 *>          elements of the last NB columns of the reduced matrix;
 *>          if UPLO = 'L', E(1:nb) contains the subdiagonal elements of
 *>          the first NB columns of the reduced matrix.
+*> \endverbatim
 *>
-*>  TAU     (output) COMPLEX*16 array, dimension (N-1)
+*> \param[out] TAU
+*> \verbatim
+*>          TAU is COMPLEX*16 array, dimension (N-1)
 *>          The scalar factors of the elementary reflectors, stored in
 *>          TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  W       (output) COMPLEX*16 array, dimension (LDW,NB)
+*> \param[out] W
+*> \verbatim
+*>          W is COMPLEX*16 array, dimension (LDW,NB)
 *>          The n-by-nb matrix W required to update the unreduced part
 *>          of A.
+*> \endverbatim
 *>
-*>  LDW     (input) INTEGER
+*> \param[in] LDW
+*> \verbatim
+*>          LDW is INTEGER
 *>          The leading dimension of the array W. LDW >= max(1,N).
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  If UPLO = 'U', the matrix Q is represented as a product of elementary
 *>  reflectors
index e77d5b4..8b24812 100644 (file)
 *>          if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
 *>          if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j<=i<=min(n,j+kd).
 *> \endverbatim
+*> \verbatim
+*>          On exit, if INFO = 0, the factor S from the split Cholesky
+*>          factorization A = S**H*S. See Further Details.
+*> \endverbatim
+*>
+*> \param[in] LDAB
+*> \verbatim
+*>          LDAB is INTEGER
+*>          The leading dimension of the array AB.  LDAB >= KD+1.
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*>          > 0: if INFO = i, the factorization could not be completed,
+*>               because the updated element a(i,i) was negative; the
+*>               matrix A is not positive definite.
+*> \endverbatim
 *>
 *
 *  Authors
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*          factorization A = S**H*S. See Further Details.
-*>
-*>  LDAB    (input) INTEGER
-*>          The leading dimension of the array AB.  LDAB >= KD+1.
-*>
-*>  INFO    (output) INTEGER
-*>          = 0: successful exit
-*>          < 0: if INFO = -i, the i-th argument had an illegal value
-*>          > 0: if INFO = i, the factorization could not be completed,
-*>               because the updated element a(i,i) was negative; the
-*>               matrix A is not positive definite.
-*>
 *>
 *>  The band storage scheme is illustrated by the following example, when
 *>  N = 7, KD = 2:
 *>
 *>  Array elements marked * are not used by the routine; s12**H denotes
 *>  conjg(s12); the diagonal elements of S are real.
-
 *>
 *> \endverbatim
 *>
index abd30c0..dd890e7 100644 (file)
@@ -76,6 +76,8 @@
 *> \param[in] C
 *> \verbatim
 *>          C is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] S
 *> \verbatim
 *>          S is COMPLEX*16
@@ -84,7 +86,6 @@
 *>             [ -conjg(S)   C  ]
 *>          where C*C + S*CONJG(S) = 1.0.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index 3ddcea0..126a08d 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] ABSTOL
 *> \verbatim
index ef12031..4e5ff06 100644 (file)
 *> \param[in] VL
 *> \verbatim
 *>          VL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[in] VU
 *> \verbatim
 *>          VU is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          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'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] IL
 *> \verbatim
 *>          IL is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IU
 *> \verbatim
 *>          IU is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          If RANGE='I', the indices (in ascending order) of the
 *>          smallest and largest eigenvalues to be returned.
 *>          1 <= IL <= IU <= N, if N > 0.
 *>          Not referenced if RANGE = 'A' or 'V'.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] M
 *> \verbatim
index 3f3dc99..a5e296b 100644 (file)
 *>          WORK is COMPLEX*16 array, dimension (N)
 *> \endverbatim
 *>
-*> \param[in] LWORK
-*> \verbatim
-*>          LWORK is INTEGER
-*>          The length of WORK.  LWORK >=1. 
-*>          LWORK = N
-*> \endverbatim
-*> \verbatim
-*>          If LWORK = -1, then a workspace query is assumed; the routine
-*>          only calculates the optimal size of the WORK array, returns
-*>          this value as the first entry of the WORK array, and no error
-*>          message related to LWORK is issued by XERBLA.
-*> \endverbatim
-*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 01773de..96d89d2 100644 (file)
 *  ===============
 *>\details \b Further \b Details
 *> \verbatim
-*  Further Details
-*>  ======= =======
 *>
 *>  Reference: Livne, O.E. and Golub, G.H., "Scaling by Binormalization",
 *>  Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004.
index 66ddce9..c5d8882 100644 (file)
 *> \param[out] ALPHA
 *> \verbatim
 *>          ALPHA is COMPLEX*16 array, dimension (N)
+*> \endverbatim
+*>
 *> \param[out] BETA
 *> \verbatim
 *>          BETA is COMPLEX*16 array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          The diagonal elements of A and B, respectively,
 *>          when the pair (A,B) has been reduced to generalized Schur
 *>          form.  ALPHA(i)/BETA(i) i=1,...,N are the generalized
 *>          eigenvalues.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] Q
 *> \verbatim
 *> \param[out] PL
 *> \verbatim
 *>          PL is DOUBLE PRECISION
+*> \endverbatim
+*>
 *> \param[out] PR
 *> \verbatim
 *>          PR is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          If IJOB = 1, 4 or 5, PL, PR are lower bounds on the
 *>          reciprocal  of the norm of "projections" onto left and right
 *>          eigenspace with respect to the selected cluster.
 *>          If M = 0 or M = N, PL = PR  = 1.
 *>          If IJOB = 0, 2 or 3 PL, PR are not referenced.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] DIF
 *> \verbatim
index d40521a..6b407ed 100644 (file)
 *>          The number of columns of the matrices A and B.  N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] K
+*> \verbatim
+*>          K is INTEGER
+*> \endverbatim
+*>
+*> \param[in] L
+*> \verbatim
+*>          L is INTEGER
+*> \endverbatim
 *> \verbatim
-*          See Further Details.
+*>          K and L specify the subblocks in the input matrices A and B:
+*>          A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,,N-L+1:N)
+*>          of A and B, whose GSVD is going to be computed by ZTGSJA.
+*>          See Further Details.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX*16 array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
 *>          On entry, the M-by-N matrix A.
 *>          On exit, A(N-K+1:N,1:MIN(K+L,M) ) contains the triangular
 *>          matrix R or part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. LDA >= max(1,M).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX*16 array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX*16 array, dimension (LDB,N)
 *>          On entry, the P-by-N matrix B.
 *>          On exit, if necessary, B(M-K+1:L,N+M-K-L+1:N) contains
 *>          a part of R.  See Purpose for details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. LDB >= max(1,P).
+*> \endverbatim
 *>
-*>  TOLA    (input) DOUBLE PRECISION
-*>  TOLB    (input) DOUBLE PRECISION
+*> \param[in] TOLA
+*> \verbatim
+*>          TOLA is DOUBLE PRECISION
+*> \endverbatim
+*>
+*> \param[in] TOLB
+*> \verbatim
+*>          TOLB is DOUBLE PRECISION
+*> \endverbatim
+*> \verbatim
 *>          TOLA and TOLB are the convergence criteria for the Jacobi-
 *>          Kogbetliantz iteration procedure. Generally, they are the
 *>          same as used in the preprocessing step, say
 *>              TOLA = MAX(M,N)*norm(A)*MAZHEPS,
 *>              TOLB = MAX(P,N)*norm(B)*MAZHEPS.
+*> \endverbatim
 *>
-*>  ALPHA   (output) DOUBLE PRECISION array, dimension (N)
-*>  BETA    (output) DOUBLE PRECISION array, dimension (N)
+*> \param[out] ALPHA
+*> \verbatim
+*>          ALPHA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] BETA
+*> \verbatim
+*>          BETA is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*> \verbatim
 *>          On exit, ALPHA and BETA contain the generalized singular
 *>          value pairs of A and B;
 *>            ALPHA(1:K) = 1,
 *>          Furthermore, if K+L < N,
 *>            ALPHA(K+L+1:N) = 0 and
 *>            BETA(K+L+1:N)  = 0.
+*> \endverbatim
 *>
-*>  U       (input/output) COMPLEX*16 array, dimension (LDU,M)
+*> \param[in,out] U
+*> \verbatim
+*>          U is COMPLEX*16 array, dimension (LDU,M)
 *>          On entry, if JOBU = 'U', U must contain a matrix U1 (usually
 *>          the unitary matrix returned by ZGGSVP).
 *>          On exit,
 *>          if JOBU = 'I', U contains the unitary matrix U;
 *>          if JOBU = 'U', U contains the product U1*U.
 *>          If JOBU = 'N', U is not referenced.
+*> \endverbatim
 *>
-*>  LDU     (input) INTEGER
+*> \param[in] LDU
+*> \verbatim
+*>          LDU is INTEGER
 *>          The leading dimension of the array U. LDU >= max(1,M) if
 *>          JOBU = 'U'; LDU >= 1 otherwise.
+*> \endverbatim
 *>
-*>  V       (input/output) COMPLEX*16 array, dimension (LDV,P)
+*> \param[in,out] V
+*> \verbatim
+*>          V is COMPLEX*16 array, dimension (LDV,P)
 *>          On entry, if JOBV = 'V', V must contain a matrix V1 (usually
 *>          the unitary matrix returned by ZGGSVP).
 *>          On exit,
 *>          if JOBV = 'I', V contains the unitary matrix V;
 *>          if JOBV = 'V', V contains the product V1*V.
 *>          If JOBV = 'N', V is not referenced.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V. LDV >= max(1,P) if
 *>          JOBV = 'V'; LDV >= 1 otherwise.
+*> \endverbatim
 *>
-*>  Q       (input/output) COMPLEX*16 array, dimension (LDQ,N)
+*> \param[in,out] Q
+*> \verbatim
+*>          Q is COMPLEX*16 array, dimension (LDQ,N)
 *>          On entry, if JOBQ = 'Q', Q must contain a matrix Q1 (usually
 *>          the unitary matrix returned by ZGGSVP).
 *>          On exit,
 *>          if JOBQ = 'I', Q contains the unitary matrix Q;
 *>          if JOBQ = 'Q', Q contains the product Q1*Q.
 *>          If JOBQ = 'N', Q is not referenced.
+*> \endverbatim
 *>
-*>  LDQ     (input) INTEGER
+*> \param[in] LDQ
+*> \verbatim
+*>          LDQ is INTEGER
 *>          The leading dimension of the array Q. LDQ >= max(1,N) if
 *>          JOBQ = 'Q'; LDQ >= 1 otherwise.
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (2*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (2*N)
+*> \endverbatim
 *>
-*>  NCYCLE  (output) INTEGER
+*> \param[out] NCYCLE
+*> \verbatim
+*>          NCYCLE is INTEGER
 *>          The number of cycles required for convergence.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
 *>          = 1:  the procedure does not converge after MAXIT cycles.
-*>
+*> \endverbatim
+*> \verbatim
 *>  Internal Parameters
 *>  ===================
 *>
 *>          MAXIT specifies the total loops that the iterative procedure
 *>          may take. If after MAXIT cycles, the routine fails to
 *>          converge, we return INFO = 1.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  ZTGSJA essentially uses a variant of Kogbetliantz algorithm to reduce
 *>  min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L
index a9d792d..4982861 100644 (file)
@@ -67,6 +67,7 @@
 *> \verbatim
 *>          N is INTEGER
 *>          The number of columns of the matrix B. N >= 0.
+*> \endverbatim
 *> 
 *> \param[in] K
 *> \verbatim
 *>          The number of elementary reflectors whose product defines
 *>          the matrix Q.
 *> \endverbatim
-*> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size used for the storage of T.  K >= NB >= 1.
 *>          This must be the same value of NB used to generate T
 *>          in CTPQRT.
+*> \endverbatim
 *>
-*>  V       (input) COMPLEX*16 array, dimension (LDA,K)
+*> \param[in] V
+*> \verbatim
+*>          V is COMPLEX*16 array, dimension (LDA,K)
 *>          The i-th column must contain the vector which defines the
 *>          elementary reflector H(i), for i = 1,2,...,k, as returned by
 *>          CTPQRT in B.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
-*>          The leading dimension of the array A.
-*>          If SIDE = 'L', LDA >= max(1,M);
-*>          if SIDE = 'R', LDA >= max(1,N).
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
+*>          The leading dimension of the array V.
+*>          If SIDE = 'L', LDV >= max(1,M);
+*>          if SIDE = 'R', LDV >= max(1,N).
+*> \endverbatim
 *>
-*>  T       (input) COMPLEX*16 array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,K)
 *>          The upper triangular factors of the block reflectors
 *>          as returned by CTPQRT, stored as a NB-by-K matrix.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX*16 array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension
 *>          (LDA,N) if SIDE = 'L' or 
 *>          (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          Q*C or Q**H*C or C*Q or C*Q**H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX*16 array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX*16 array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          Q*C or Q**H*C or C*Q or C*Q**H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace/output) COMPLEX*16 array.  The dimension of WORK is
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array. The dimension of WORK is
 *>           N*NB if SIDE = 'L', or  M*NB if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The columns of the pentagonal matrix V contain the elementary reflectors
 *>  H(1), H(2), ..., H(K); V is composed of a rectangular block V1 and a 
index d4ce4d6..8e29577 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  NB      (input) INTEGER
+*> \param[in] NB
+*> \verbatim
+*>          NB is INTEGER
 *>          The block size to be used in the blocked QR.  N >= NB >= 1.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX*16 array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX*16 array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX*16 array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX*16 array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,N)
 *>          The upper triangular block reflectors stored in compact form
 *>          as a sequence of upper triangular blocks.  See Further Details.
+*> \endverbatim
 *>          
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= NB.
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX*16 array, dimension (NB*N)
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension (NB*N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0:  successful exit
 *>          < 0:  if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
-*>  
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
 *>               C = [ A ]
index 04c5cd1..db8dc88 100644 (file)
 *>          N >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERcomputational
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          MIN(M,N) >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The number of rows of the upper trapezoidal part of B.  
+*>          MIN(M,N) >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX*16 array, dimension (LDA,N)
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension (LDA,N)
 *>          On entry, the upper triangular N-by-N matrix A.
 *>          On exit, the elements on and above the diagonal of the array
 *>          contain the upper triangular matrix R.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A.  LDA >= max(1,N).
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX*16 array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX*16 array, dimension (LDB,N)
 *>          On entry, the pentagonal M-by-N matrix B.  The first M-L rows 
 *>          are rectangular, and the last L rows are upper trapezoidal.
 *>          On exit, B contains the pentagonal matrix V.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B.  LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  T       (output) COMPLEX*16 array, dimension (LDT,N)
+*> \param[out] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,N)
 *>          The N-by-N upper triangular factor T of the block reflector.
 *>          See Further Details.
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T.  LDT >= max(1,N)
+*> \endverbatim
 *>
-*>  INFO    (output) INTEGER
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
 *>          = 0: successful exit
 *>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERcomputational
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The input matrix C is a (N+M)-by-N matrix  
 *>
index fc9b02a..32c9ec8 100644 (file)
 *>          K >= 0.
 *> \endverbatim
 *>
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16OTHERauxiliary
-*
-*
-*  Further Details
-*  ===============
-*>\details \b Further \b Details
+*> \param[in] L
 *> \verbatim
-*          K >= L >= 0.  See Further Details.
+*>          L is INTEGER
+*>          The order of the trapezoidal part of V.  
+*>          K >= L >= 0.  See Further Details.
+*> \endverbatim
 *>
-*>  V       (input) COMPLEX*16 array, dimension
+*> \param[in] V
+*> \verbatim
+*>          V is COMPLEX*16 array, dimension
 *>                                (LDV,K) if STOREV = 'C'
 *>                                (LDV,M) if STOREV = 'R' and SIDE = 'L'
 *>                                (LDV,N) if STOREV = 'R' and SIDE = 'R'
 *>          The pentagonal matrix V, which contains the elementary reflectors
 *>          H(1), H(2), ..., H(K).  See Further Details.
+*> \endverbatim
 *>
-*>  LDV     (input) INTEGER
+*> \param[in] LDV
+*> \verbatim
+*>          LDV is INTEGER
 *>          The leading dimension of the array V.
 *>          If STOREV = 'C' and SIDE = 'L', LDV >= max(1,M);
 *>          if STOREV = 'C' and SIDE = 'R', LDV >= max(1,N);
 *>          if STOREV = 'R', LDV >= K.
+*> \endverbatim
 *>
-*>  T       (input) COMPLEX*16 array, dimension (LDT,K)
+*> \param[in] T
+*> \verbatim
+*>          T is COMPLEX*16 array, dimension (LDT,K)
 *>          The triangular K-by-K matrix T in the representation of the
 *>          block reflector.  
+*> \endverbatim
 *>
-*>  LDT     (input) INTEGER
+*> \param[in] LDT
+*> \verbatim
+*>          LDT is INTEGER
 *>          The leading dimension of the array T. 
 *>          LDT >= K.
+*> \endverbatim
 *>
-*>  A       (input/output) COMPLEX*16 array, dimension 
+*> \param[in,out] A
+*> \verbatim
+*>          A is COMPLEX*16 array, dimension
 *>          (LDA,N) if SIDE = 'L' or (LDA,K) if SIDE = 'R'
 *>          On entry, the K-by-N or M-by-K matrix A.
 *>          On exit, A is overwritten by the corresponding block of 
 *>          H*C or H**H*C or C*H or C*H**H.  See Futher Details.
+*> \endverbatim
 *>
-*>  LDA     (input) INTEGER
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
 *>          The leading dimension of the array A. 
 *>          If SIDE = 'L', LDC >= max(1,K);
 *>          If SIDE = 'R', LDC >= max(1,M). 
+*> \endverbatim
 *>
-*>  B       (input/output) COMPLEX*16 array, dimension (LDB,N)
+*> \param[in,out] B
+*> \verbatim
+*>          B is COMPLEX*16 array, dimension (LDB,N)
 *>          On entry, the M-by-N matrix B.
 *>          On exit, B is overwritten by the corresponding block of
 *>          H*C or H**H*C or C*H or C*H**H.  See Further Details.
+*> \endverbatim
 *>
-*>  LDB     (input) INTEGER
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
 *>          The leading dimension of the array B. 
 *>          LDB >= max(1,M).
+*> \endverbatim
 *>
-*>  WORK    (workspace) COMPLEX*16 array, dimension 
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is COMPLEX*16 array, dimension
 *>          (LDWORK,N) if SIDE = 'L',
 *>          (LDWORK,K) if SIDE = 'R'.
+*> \endverbatim
 *>
-*>  LDWORK  (input) INTEGER
+*> \param[in] LDWORK
+*> \verbatim
+*>          LDWORK is INTEGER
 *>          The leading dimension of the array WORK.
 *>          If SIDE = 'L', LDWORK >= K; 
 *>          if SIDE = 'R', LDWORK >= M.
+*> \endverbatim
 *>
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16OTHERauxiliary
+*
+*
+*  Further Details
+*  ===============
+*>\details \b Further \b Details
+*> \verbatim
 *>
 *>  The matrix C is a composite matrix formed from blocks A and B.
 *>  The block B is of size M-by-N; if SIDE = 'R', A is of size M-by-K, 
index ec2a8b3..743db8c 100644 (file)
 *> \param[in] IFST
 *> \verbatim
 *>          IFST is INTEGER
+*> \endverbatim
+*>
 *> \param[in] ILST
 *> \verbatim
 *>          ILST is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          Specify the reordering of the diagonal elements of T:
 *>          The element with row index IFST is moved to row ILST by a
 *>          sequence of transpositions between adjacent elements.
 *>          1 <= IFST <= N; 1 <= ILST <= N.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[out] INFO
 *> \verbatim
index 0350934..35d0f6b 100644 (file)
 *>          The number of columns in X11 and X21. 0 <= Q <= M.
 *> \endverbatim
 *>
-*> \param[in,out] X
+*> \param[in,out] X11
 *> \verbatim
-*>          X is COMPLEX*16 array, dimension (LDX,M)
-*>          On entry, the unitary matrix whose CSD is desired.
+*>          X11 is COMPLEX*16 array, dimension (LDX11,Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
 *> \endverbatim
 *>
-*> \param[in] LDX
+*> \param[in] LDX11
 *> \verbatim
-*>          LDX is INTEGER
-*>          The leading dimension of X. LDX >= MAX(1,M).
+*>          LDX11 is INTEGER
+*>          The leading dimension of X11. LDX11 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X12
+*> \verbatim
+*>          X12 is COMPLEX*16 array, dimension (LDX12,M-Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX12
+*> \verbatim
+*>          LDX12 is INTEGER
+*>          The leading dimension of X12. LDX12 >= MAX(1,P).
+*> \endverbatim
+*>
+*> \param[in,out] X21
+*> \verbatim
+*>          X21 is COMPLEX*16 array, dimension (LDX21,Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX21
+*> \verbatim
+*>          LDX21 is INTEGER
+*>          The leading dimension of X11. LDX21 >= MAX(1,M-P).
+*> \endverbatim
+*>
+*> \param[in,out] X22
+*> \verbatim
+*>          X22 is COMPLEX*16 array, dimension (LDX22,M-Q)
+*>          On entry, part of the unitary matrix whose CSD is desired.
+*> \endverbatim
+*>
+*> \param[in] LDX22
+*> \verbatim
+*>          LDX22 is INTEGER
+*>          The leading dimension of X11. LDX22 >= MAX(1,M-P).
 *> \endverbatim
 *>
 *> \param[out] THETA
index c57ba43..abf3fe4 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of ZGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
 *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in,out] A
 *> \verbatim
index 4df33a8..4ff4cbe 100644 (file)
 *> \param[in] ILO
 *> \verbatim
 *>          ILO is INTEGER
+*> \endverbatim
+*>
 *> \param[in] IHI
 *> \verbatim
 *>          IHI is INTEGER
+*> \endverbatim
+*> \verbatim
 *>          ILO and IHI must have the same values as in the previous call
 *>          of ZGEHRD. Q is equal to the unit matrix except in the
 *>          submatrix Q(ilo+1:ihi,ilo+1:ihi).
@@ -90,7 +94,6 @@
 *>          if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
 *>          ILO = 1 and IHI = 0, if N = 0.
 *> \endverbatim
-*> \endverbatim
 *>
 *> \param[in] A
 *> \verbatim
index c2679ca..659bbb9 100644 (file)
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
-*> \param[out] V
+*> \param[out] VT
 *> \verbatim
-*>          V is COMPLEX array, dimension
+*>          VT is COMPLEX array, dimension
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
index f0d61d7..52d8c98 100644 (file)
 *>
 *> \param[in,out] A
 *> \verbatim
-*>          A is REAL array, dimension
+*>          A is COMPLEX array, dimension
 *>                            (LDA, max(NN))
 *>          Used to hold the matrix whose eigenvalues are to be
 *>          computed.
 *>
 *> \param[out] U
 *> \verbatim
-*>          U is REAL array, dimension (LDU, max(NN))
+*>          U is COMPLEX array, dimension (LDU, max(NN))
 *>          Used to hold the unitary matrix computed by CHBTRD.
 *> \endverbatim
 *>
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is REAL array, dimension (LWORK)
+*>          WORK is COMPLEX array, dimension (LWORK)
 *> \endverbatim
 *>
 *> \param[in] LWORK
 *>          max( LDA+1, max(NN)+1 )*max(NN).
 *> \endverbatim
 *>
+*> \param[out] RWORK
+*> \verbatim
+*>          RWORK is REAL array
+*> \endverbatim
+*>
 *> \param[out] RESULT
 *> \verbatim
 *>          RESULT is REAL array, dimension (4)
index 2d5f299..d72c02b 100644 (file)
 *>          eigenvalues in D3 correspond with the matrix in A.
 *> \endverbatim
 *>
+*> \param[out] D4
+*> \verbatim
+*>          D4 is REAL array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by CPTEQR(V).
+*>          ZPTEQR factors S as  Z4 D4 Z4*
+*>          On exit, the eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] D5
+*> \verbatim
+*>          D5 is REAL array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by ZPTEQR(N)
+*>          when Z is not computed. On exit, the
+*>          eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] WA1
+*> \verbatim
+*>          WA1 is REAL array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by SSTEBZ.
+*> \endverbatim
+*>
+*> \param[out] WA2
+*> \verbatim
+*>          WA2 is REAL array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by SSTEBZ.
+*>          Choose random values for IL and IU, and ask for the
+*>          IL-th through IU-th eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] WA3
+*> \verbatim
+*>          WA3 is REAL array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by SSTEBZ.
+*>          Determine the values VL and VU of the IL-th and IU-th
+*>          eigenvalues and ask for all eigenvalues in this range.
+*> \endverbatim
+*>
+*> \param[out] WR
+*> \verbatim
+*>          WR is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different options.
+*>          as computed by DSTEBZ.
+*> \endverbatim
+*>
 *> \param[out] U
 *> \verbatim
 *>          U is COMPLEX array of
 *> \param[out] IWORK
 *> \verbatim
 *>          IWORK is INTEGER array,
-*>             dimension (6 + 6*Nmax + 5 * Nmax * lg Nmax )
-*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
 *>          Workspace.
 *> \endverbatim
 *>
+*> \param[out] LIWORK
+*> \verbatim
+*>          LIWORK is INTEGER
+*>          The number of entries in IWORK.  This must be at least
+*>                  6 + 6*Nmax + 5 * Nmax * lg Nmax 
+*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
+*> \endverbatim
+*>
 *> \param[out] RWORK
 *> \verbatim
-*>          RWORK is REAL array of
-*>                      dimension( ??? )
+*>          RWORK is REAL array
+*> \endverbatim
+*>
+*> \param[in] LRWORK
+*> \verbatim
+*>          LRWORK is INTEGER
+*>          The number of entries in LRWORK (dimension( ??? )
 *> \endverbatim
 *>
 *> \param[out] RESULT
index 23f897f..264b4cd 100644 (file)
 *>             S is REAL array, dimension (N)
 *> \endverbatim
 *>
-*> \param[out] DTRU    
+*> \param[out] STRU    
 *> \verbatim
-*>             DTRU is REAL array, dimension (N)
+*>             STRU is REAL array, dimension (N)
 *> \endverbatim
 *>
 *> \param[out] DIF             
index e7242e6..5620476 100644 (file)
 *>          or the size of the matrix.  It must be at least zero.
 *> \endverbatim
 *>
-*> \param[in] NOUNIT
-*> \verbatim
-*>          NOUNIT is INTEGER
-*>          The FORTRAN unit number for printing out error messages
-*>          (e.g., if a routine returns IINFO not equal to 0.)
-*> \endverbatim
-*>
 *> \param[out] A
 *> \verbatim
 *>          A is COMPLEX array, dimension (LDA,max(NN))
 *>          IWORK is INTEGER array, dimension at least 8*min(M,N)
 *> \endverbatim
 *>
-*> \param[out] RESULT
+*> \param[in] NOUNIT
 *> \verbatim
-*>          RESULT is REAL array, dimension (7)
-*>          The values computed by the 7 tests described above.
-*>          The values are currently limited to 1/ULP, to avoid
-*>          overflow.
+*>          NOUNIT is INTEGER
+*>          The FORTRAN unit number for printing out error messages
+*>          (e.g., if a routine returns IINFO not equal to 0.)
 *> \endverbatim
 *>
 *> \param[out] INFO
index 152f97b..a79cfe1 100644 (file)
 *>          IWORK is INTEGER array, dimension (max(NN))
 *> \endverbatim
 *>
+*> \param[out] BWORK
+*> \verbatim
+*>          BWORK is LOGICAL array, dimension (max(NN))
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 97e313c..3a15d8f 100644 (file)
 *>          Leading dimension of LRE. Must be at least max(1,max(NN,12))
 *> \endverbatim
 *>
+*> \param[out] RCONDV
+*> \verbatim
+*>          RCONDV is REAL array, dimension (N)
+*>          RCONDV holds the computed reciprocal condition numbers
+*>          for eigenvectors.
+*> \endverbatim
+*>
+*> \param[out] RCNDV1
+*> \verbatim
+*>          RCNDV1 is REAL array, dimension (N)
+*>          RCNDV1 holds more computed reciprocal condition numbers
+*>          for eigenvectors.
+*> \endverbatim
+*>
+*> \param[in] RCDVIN
+*> \verbatim
+*>          RCDVIN is REAL array, dimension (N)
+*>          When COMP = .TRUE. RCDVIN holds the precomputed reciprocal
+*>          condition numbers for eigenvectors to be compared with
+*>          RCONDV.
+*> \endverbatim
+*>
+*> \param[out] RCONDE
+*> \verbatim
+*>          RCONDE is REAL array, dimension (N)
+*>          RCONDE holds the computed reciprocal condition numbers
+*>          for eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] RCNDE1
+*> \verbatim
+*>          RCNDE1 is REAL array, dimension (N)
+*>          RCNDE1 holds more computed reciprocal condition numbers
+*>          for eigenvalues.
+*> \endverbatim
+*>
+*> \param[in] RCDEIN
+*> \verbatim
+*>          RCDEIN is REAL array, dimension (N)
+*>          When COMP = .TRUE. RCDEIN holds the precomputed reciprocal
+*>          condition numbers for eigenvalues to be compared with
+*>          RCONDE.
+*> \endverbatim
+*>
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is REAL array, dimension (N)
+*>          Holds information describing balancing of matrix.
+*> \endverbatim
+*>
+*> \param[out] SCALE1
+*> \verbatim
+*>          SCALE1 is REAL array, dimension (N)
+*>          Holds information describing balancing of matrix.
+*> \endverbatim
+*>
 *> \param[out] RESULT
 *> \verbatim
 *>          RESULT is REAL array, dimension (11)
index fd6f764..267045e 100644 (file)
 *>          RWORK is REAL array, dimension (N)
 *> \endverbatim
 *>
+*> \param[out] RESULT
+*> \verbatim
+*>          RESULT is REAL array, dimension (2)
+*>          RESULT(1) = | A E  -  E W | / ( |A| |E| ulp )
+*>          RESULT(2) = max | m-norm(E(j)) - 1 | / ( n ulp )
+*> \endverbatim
 *
 *  Authors
 *  =======
index 0a22227..15bc8b3 100644 (file)
 *       LOGICAL            LERR, OK
 *       CHARACTER*(*)      SRNAMT
 *       INTEGER            INFOT, NOUT
-*       ..
-*       .. Intrinsic Functions ..
-*       INTRINSIC          LEN_TRIM
-*       ..
-*       .. Executable Statements ..
-*       IF( .NOT.LERR ) THEN
-*          WRITE( NOUT, FMT = 9999 )INFOT,
-*      $        SRNAMT( 1:LEN_TRIM( SRNAMT ) )
-*          OK = .FALSE.
-*       END IF
-*       LERR = .FALSE.
-*       RETURN
-*  
-*  9999 FORMAT( ' *** Illegal value of parameter number ', I2,
-*      $      ' not detected by ', A6, ' ***' )
-*  
-*       End of CHKXER.
-*  
-*       END
+*
 *  Purpose
 *  =======
 *
index f9086aa..c220801 100644 (file)
 *> \param[in] ALPHA
 *> \verbatim
 *>          ALPHA is COMPLEX
+*> \endverbatim
+*>
 *> \param[in] BETA
 *> \verbatim
 *>          BETA is COMPLEX
+*> \endverbatim
+*> \verbatim
 *>          parameters to decide whether the pair (ALPHA, BETA) is
 *>          selected.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index 78c9d78..760b6bf 100644 (file)
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
-*> \param[out] V
+*> \param[out] VT
 *> \verbatim
-*>          V is DOUBLE PRECISION array, dimension
+*>          VT is DOUBLE PRECISION array, dimension
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
index fe030bf..9c9202d 100644 (file)
 *>          the matrices in S1 and P1.  (See DTGEVC for the format.)
 *> \endverbatim
 *>
-*> \param[out] EVEZTR
+*> \param[out] EVECTR
 *> \verbatim
-*>          EVEZTR is DOUBLE PRECISION array, dimension (LDU, max(NN))
+*>          EVECTR is DOUBLE PRECISION array, dimension (LDU, max(NN))
 *>          The (block upper triangular) right eigenvector matrix for
 *>          the matrices in S1 and P1.  (See DTGEVC for the format.)
 *> \endverbatim
index d40bf36..c585fe3 100644 (file)
 *>          eigenvalues in D3 correspond with the matrix in A.
 *> \endverbatim
 *>
+*> \param[out] D4
+*> \verbatim
+*>          D4 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by DPTEQR(V).
+*>          DPTEQR factors S as  Z4 D4 Z4*
+*>          On exit, the eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] D5
+*> \verbatim
+*>          D5 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by DPTEQR(N)
+*>          when Z is not computed. On exit, the
+*>          eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] WA1
+*> \verbatim
+*>          WA1 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by DSTEBZ.
+*> \endverbatim
+*>
+*> \param[out] WA2
+*> \verbatim
+*>          WA2 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by DSTEBZ.
+*>          Choose random values for IL and IU, and ask for the
+*>          IL-th through IU-th eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] WA3
+*> \verbatim
+*>          WA3 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by DSTEBZ.
+*>          Determine the values VL and VU of the IL-th and IU-th
+*>          eigenvalues and ask for all eigenvalues in this range.
+*> \endverbatim
+*>
+*> \param[out] WR
+*> \verbatim
+*>          WR is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different options.
+*>          as computed by DSTEBZ.
+*> \endverbatim
+*>
 *> \param[out] U
 *> \verbatim
 *>          U is DOUBLE PRECISION array of
 *> \param[out] IWORK
 *> \verbatim
 *>          IWORK is INTEGER array,
-*>             dimension (6 + 6*Nmax + 5 * Nmax * lg Nmax )
-*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
 *>          Workspace.
 *> \endverbatim
 *>
+*> \param[out] LIWORK
+*> \verbatim
+*>          LIWORK is INTEGER
+*>          The number of entries in IWORK.  This must be at least
+*>                  6 + 6*Nmax + 5 * Nmax * lg Nmax 
+*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
+*> \endverbatim
+*>
 *> \param[out] RESULT
 *> \verbatim
 *>          RESULT is DOUBLE PRECISION array, dimension (26)
index bebae73..f038d75 100644 (file)
 *>          LIWORK is INTEGER
 *>          Leading dimension of IWORK.  Must be at least N+6.
 *> \endverbatim
-*> \verbatim
 *>
 *> \param[out] RESULT
+*> \verbatim
 *>             RESULT is DOUBLE PRECISION array, dimension (4)
 *> \endverbatim
 *>
index ca8be70..93fa2b6 100644 (file)
 *>          IWORK is INTEGER array, dimension (max(NN))
 *> \endverbatim
 *>
+*> \param[out] BWORK
+*> \verbatim
+*>          BWORK is LOGICAL array, dimension (max(NN))
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 6db6983..2644eba 100644 (file)
 *>          IWORK is INTEGER array, dimension (max(NN)*max(NN))
 *> \endverbatim
 *>
+*> \param[out] BWORK
+*> \verbatim
+*>          BWORK is LOGICAL array, dimension (max(NN))
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index a5ec762..230912b 100644 (file)
 *>          RCONDE.
 *> \endverbatim
 *>
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is DOUBLE PRECISION array, dimension (N)
+*>          Holds information describing balancing of matrix.
+*> \endverbatim
+*>
+*> \param[out] SCALE1
+*> \verbatim
+*>          SCALE1 is DOUBLE PRECISION array, dimension (N)
+*>          Holds information describing balancing of matrix.
+*> \endverbatim
+*>
 *> \param[out] RESULT
 *> \verbatim
 *>          RESULT is DOUBLE PRECISION array, dimension (11)
index 1ffcdc4..8a9cf15 100644 (file)
 *>          IMAT is INTEGER
 *>          An integer key describing which matrix to generate for this
 *>          path.
+*>          = 1:   A: diagonal, B: upper triangular
+*>          = 2:   A: upper triangular, B: upper triangular
+*>          = 3:   A: lower triangular, B: upper triangular
+*>          Else:  A: general dense, B: general dense
 *> \endverbatim
 *>
 *> \param[in] M
 *>          The number of rows in the matrix to be generated.
 *> \endverbatim
 *>
+*> \param[in] P
+*> \verbatim
+*>          P is INTEGER
+*> \endverbatim
+*>
 *> \param[in] N
 *> \verbatim
 *>          N is INTEGER
 *>          = 'N':  nonsymmetric matrix.
 *> \endverbatim
 *>
-*> \param[out] KL
+*> \param[out] KLA
 *> \verbatim
-*>          KL is INTEGER
+*>          KLA is INTEGER
 *>          The lower band width of the matrix to be generated.
 *> \endverbatim
 *>
-*> \param[out] KU
+*> \param[out] KUA
 *> \verbatim
-*>          KU is INTEGER
+*>          KUA is INTEGER
+*>          The upper band width of the matrix to be generated.
+*> \endverbatim
+*>
+*> \param[out] KLB
+*> \verbatim
+*>          KLB is INTEGER
+*>          The lower band width of the matrix to be generated.
+*> \endverbatim
+*>
+*> \param[out] KUB
+*> \verbatim
+*>          KUA is INTEGER
 *>          The upper band width of the matrix to be generated.
 *> \endverbatim
 *>
 *>          value.
 *> \endverbatim
 *>
-*> \param[out] MODE
+*> \param[out] BNORM
+*> \verbatim
+*>          BNORM is DOUBLE PRECISION
+*>          The desired norm of the matrix to be generated.  The diagonal
+*>          matrix of singular values or eigenvalues is scaled by this
+*>          value.
+*> \endverbatim
+*>
+*> \param[out] MODEA
+*> \verbatim
+*>          MODEA is INTEGER
+*>          A key indicating how to choose the vector of eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] MODEB
 *> \verbatim
-*>          MODE is INTEGER
+*>          MODEB is INTEGER
 *>          A key indicating how to choose the vector of eigenvalues.
 *> \endverbatim
 *>
-*> \param[out] CNDNUM
+*> \param[out] CNDNMA
 *> \verbatim
-*>          CNDNUM is DOUBLE PRECISION
+*>          CNDNMA is DOUBLE PRECISION
 *>          The desired condition number.
 *> \endverbatim
 *>
-*> \param[out] DIST
+*> \param[out] CNDNMB
+*> \verbatim
+*>          CNDNMB is DOUBLE PRECISION
+*>          The desired condition number.
+*> \endverbatim
+*>
+*> \param[out] DISTA
+*> \verbatim
+*>          DISTA is CHARACTER*1
+*>          The type of distribution to be used by the random number
+*>          generator.
+*> \endverbatim
+*>
+*> \param[out] DISTB
 *> \verbatim
-*>          DIST is CHARACTER*1
+*>          DISTB is CHARACTER*1
 *>          The type of distribution to be used by the random number
 *>          generator.
 *> \endverbatim
index 256fcfb..6181516 100644 (file)
@@ -40,9 +40,9 @@
 *  Arguments
 *  =========
 *
-*> \param[in] ITYPE
+*> \param[in] IJOB
 *> \verbatim
-*>          ITYPE is INTEGER
+*>          IJOB is INTEGER
 *>          Specifies the type of tests to be performed.  (See above.)
 *> \endverbatim
 *>
index edbd030..442a0e3 100644 (file)
 *>          be required.
 *> \endverbatim
 *>
-*> \param[out] (ILAENV)
+*> \result ILAENV
 *> \verbatim
-*>          (ILAENV) is INTEGER
+*>          ILAENV is INTEGER
 *>          >= 0: the value of the parameter specified by ISPEC
 *>          < 0:  if ILAENV = -k, the k-th argument had an illegal value.
 *> \endverbatim
index e20d44e..59d6ede 100644 (file)
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
-*> \param[out] V
+*> \param[out] VT
 *> \verbatim
-*>          V is REAL array, dimension
+*>          VT is REAL array, dimension
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
index 5933e85..c937cba 100644 (file)
 *>          eigenvalues in D3 correspond with the matrix in A.
 *> \endverbatim
 *>
+*> \param[out] D4
+*> \verbatim
+*>          D4 is REAL array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by SPTEQR(V).
+*>          ZPTEQR factors S as  Z4 D4 Z4*
+*>          On exit, the eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] D5
+*> \verbatim
+*>          D5 is REAL array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by SPTEQR(N)
+*>          when Z is not computed. On exit, the
+*>          eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] WA1
+*> \verbatim
+*>          WA1 is REAL array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by SSTEBZ.
+*> \endverbatim
+*>
+*> \param[out] WA2
+*> \verbatim
+*>          WA2 is REAL array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by SSTEBZ.
+*>          Choose random values for IL and IU, and ask for the
+*>          IL-th through IU-th eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] WA3
+*> \verbatim
+*>          WA3 is REAL array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by SSTEBZ.
+*>          Determine the values VL and VU of the IL-th and IU-th
+*>          eigenvalues and ask for all eigenvalues in this range.
+*> \endverbatim
+*>
+*> \param[out] WR
+*> \verbatim
+*>          WR is REAL array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different options.
+*>          as computed by SSTEBZ.
+*> \endverbatim
+*>
 *> \param[out] U
 *> \verbatim
 *>          U is REAL array of
 *> \param[out] IWORK
 *> \verbatim
 *>          IWORK is INTEGER array,
-*>             dimension (6 + 6*Nmax + 5 * Nmax * lg Nmax )
-*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
 *>          Workspace.
 *> \endverbatim
 *>
+*> \param[out] LIWORK
+*> \verbatim
+*>          LIWORK is INTEGER
+*>          The number of entries in IWORK.  This must be at least
+*>                  6 + 6*Nmax + 5 * Nmax * lg Nmax 
+*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
+*> \endverbatim
+*>
 *> \param[out] RESULT
 *> \verbatim
 *>          RESULT is REAL array, dimension (26)
index d6ffb42..d214e4c 100644 (file)
 *>             S is REAL array, dimension (N)
 *> \endverbatim
 *>
-*> \param[out] DTRU    
+*> \param[out] STRU    
 *> \verbatim
-*>             DTRU is REAL array, dimension (N)
+*>             STRU is REAL array, dimension (N)
 *> \endverbatim
 *>
 *> \param[out] DIF             
index e17ec3a..ad3d178 100644 (file)
 *>          IWORK is INTEGER array, dimension (max(NN))
 *> \endverbatim
 *>
+*> \param[out] BWORK
+*> \verbatim
+*>          BWORK is LOGICAL array, dimension (max(NN))
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 52db48d..ad9355a 100644 (file)
 *>          IWORK is INTEGER array, dimension (max(NN)*max(NN))
 *> \endverbatim
 *>
+*> \param[out] BWORK
+*> \verbatim
+*>          BWORK is LOGICAL array, dimension (max(NN))
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index 0a54ebe..28b8b7b 100644 (file)
 *>          RCONDE.
 *> \endverbatim
 *>
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is REAL array, dimension (N)
+*>          Holds information describing balancing of matrix.
+*> \endverbatim
+*>
+*> \param[out] SCALE1
+*> \verbatim
+*>          SCALE1 is REAL array, dimension (N)
+*>          Holds information describing balancing of matrix.
+*> \endverbatim
+*>
 *> \param[out] RESULT
 *> \verbatim
 *>          RESULT is REAL array, dimension (11)
index db2f830..7e6f281 100644 (file)
 *>          IMAT is INTEGER
 *>          An integer key describing which matrix to generate for this
 *>          path.
+*>          = 1:   A: diagonal, B: upper triangular
+*>          = 2:   A: upper triangular, B: upper triangular
+*>          = 3:   A: lower triangular, B: upper triangular
+*>          Else:  A: general dense, B: general dense
 *> \endverbatim
 *>
 *> \param[in] M
 *>          The number of rows in the matrix to be generated.
 *> \endverbatim
 *>
+*> \param[in] P
+*> \verbatim
+*>          P is INTEGER
+*> \endverbatim
+*>
 *> \param[in] N
 *> \verbatim
 *>          N is INTEGER
 *>          = 'N':  nonsymmetric matrix.
 *> \endverbatim
 *>
-*> \param[out] KL
+*> \param[out] KLA
 *> \verbatim
-*>          KL is INTEGER
+*>          KLA is INTEGER
 *>          The lower band width of the matrix to be generated.
 *> \endverbatim
 *>
-*> \param[out] KU
+*> \param[out] KUA
 *> \verbatim
-*>          KU is INTEGER
+*>          KUA is INTEGER
+*>          The upper band width of the matrix to be generated.
+*> \endverbatim
+*>
+*> \param[out] KLB
+*> \verbatim
+*>          KLB is INTEGER
+*>          The lower band width of the matrix to be generated.
+*> \endverbatim
+*>
+*> \param[out] KUB
+*> \verbatim
+*>          KUA is INTEGER
 *>          The upper band width of the matrix to be generated.
 *> \endverbatim
 *>
 *>          value.
 *> \endverbatim
 *>
-*> \param[out] MODE
+*> \param[out] BNORM
+*> \verbatim
+*>          BNORM is REAL
+*>          The desired norm of the matrix to be generated.  The diagonal
+*>          matrix of singular values or eigenvalues is scaled by this
+*>          value.
+*> \endverbatim
+*>
+*> \param[out] MODEA
+*> \verbatim
+*>          MODEA is INTEGER
+*>          A key indicating how to choose the vector of eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] MODEB
 *> \verbatim
-*>          MODE is INTEGER
+*>          MODEB is INTEGER
 *>          A key indicating how to choose the vector of eigenvalues.
 *> \endverbatim
 *>
-*> \param[out] CNDNUM
+*> \param[out] CNDNMA
 *> \verbatim
-*>          CNDNUM is REAL
+*>          CNDNMA is REAL
 *>          The desired condition number.
 *> \endverbatim
 *>
-*> \param[out] DIST
+*> \param[out] CNDNMB
+*> \verbatim
+*>          CNDNMB is REAL
+*>          The desired condition number.
+*> \endverbatim
+*>
+*> \param[out] DISTA
+*> \verbatim
+*>          DISTA is CHARACTER*1
+*>          The type of distribution to be used by the random number
+*>          generator.
+*> \endverbatim
+*>
+*> \param[out] DISTB
 *> \verbatim
-*>          DIST is CHARACTER*1
+*>          DISTB is CHARACTER*1
 *>          The type of distribution to be used by the random number
 *>          generator.
 *> \endverbatim
index edbc641..853d30b 100644 (file)
@@ -40,9 +40,9 @@
 *  Arguments
 *  =========
 *
-*> \param[in] ITYPE
+*> \param[in] IJOB
 *> \verbatim
-*>          ITYPE is INTEGER
+*>          IJOB is INTEGER
 *>          Specifies the type of tests to be performed.  (See above.)
 *> \endverbatim
 *>
index 297540f..f38e29e 100644 (file)
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
-*> \param[out] V
+*> \param[out] VT
 *> \verbatim
-*>          V is COMPLEX*16 array, dimension
+*>          VT is COMPLEX*16 array, dimension
 *>                      (LDPT,max(min(MVAL(j),NVAL(j))))
 *> \endverbatim
 *>
index f919ee7..3ea100f 100644 (file)
 *>          matrices in S1 and P1.
 *> \endverbatim
 *>
-*> \param[out] EVEZTR
+*> \param[out] EVECTR
 *> \verbatim
-*>          EVEZTR is COMPLEX*16 array, dimension (LDU, max(NN))
+*>          EVECTR is COMPLEX*16 array, dimension (LDU, max(NN))
 *>          The (upper triangular) right eigenvector matrix for the
 *>          matrices in S1 and P1.
 *> \endverbatim
index 3e37f7c..7210363 100644 (file)
 *>
 *> \param[in,out] A
 *> \verbatim
-*>          A is DOUBLE PRECISION array, dimension
+*>          A is COMPLEX*16 array, dimension
 *>                            (LDA, max(NN))
 *>          Used to hold the matrix whose eigenvalues are to be
 *>          computed.
 *>
 *> \param[out] U
 *> \verbatim
-*>          U is DOUBLE PRECISION array, dimension (LDU, max(NN))
+*>          U is COMPLEX*16 array, dimension (LDU, max(NN))
 *>          Used to hold the unitary matrix computed by ZHBTRD.
 *> \endverbatim
 *>
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is DOUBLE PRECISION array, dimension (LWORK)
+*>          WORK is COMPLEX*16 array, dimension (LWORK)
 *> \endverbatim
 *>
 *> \param[in] LWORK
 *>          max( LDA+1, max(NN)+1 )*max(NN).
 *> \endverbatim
 *>
+*> \param[out] RWORK
+*> \verbatim
+*>          RWORK is DOUBLE PRECISION array
+*> \endverbatim
+*>
 *> \param[out] RESULT
 *> \verbatim
 *>          RESULT is DOUBLE PRECISION array, dimension (4)
index 00d7271..0e0b8db 100644 (file)
 *>          eigenvalues in D3 correspond with the matrix in A.
 *> \endverbatim
 *>
+*> \param[out] D4
+*> \verbatim
+*>          D4 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by ZPTEQR(V).
+*>          ZPTEQR factors S as  Z4 D4 Z4*
+*>          On exit, the eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] D5
+*> \verbatim
+*>          D5 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          The eigenvalues of A, as computed by ZPTEQR(N)
+*>          when Z is not computed. On exit, the
+*>          eigenvalues in D4 correspond with the matrix in A.
+*> \endverbatim
+*>
+*> \param[out] WA1
+*> \verbatim
+*>          WA1 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by DSTEBZ.
+*> \endverbatim
+*>
+*> \param[out] WA2
+*> \verbatim
+*>          WA2 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by DSTEBZ.
+*>          Choose random values for IL and IU, and ask for the
+*>          IL-th through IU-th eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] WA3
+*> \verbatim
+*>          WA3 is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          Selected eigenvalues of A, computed to high
+*>          absolute accuracy, with different range options.
+*>          as computed by DSTEBZ.
+*>          Determine the values VL and VU of the IL-th and IU-th
+*>          eigenvalues and ask for all eigenvalues in this range.
+*> \endverbatim
+*>
+*> \param[out] WR
+*> \verbatim
+*>          WR is DOUBLE PRECISION array of
+*>                             dimension( max(NN) )
+*>          All eigenvalues of A, computed to high
+*>          absolute accuracy, with different options.
+*>          as computed by DSTEBZ.
+*> \endverbatim
+*>
 *> \param[out] U
 *> \verbatim
 *>          U is COMPLEX*16 array of
 *> \param[out] IWORK
 *> \verbatim
 *>          IWORK is INTEGER array,
-*>             dimension (6 + 6*Nmax + 5 * Nmax * lg Nmax )
-*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
 *>          Workspace.
 *> \endverbatim
 *>
+*> \param[out] LIWORK
+*> \verbatim
+*>          LIWORK is INTEGER
+*>          The number of entries in IWORK.  This must be at least
+*>                  6 + 6*Nmax + 5 * Nmax * lg Nmax 
+*>          where Nmax = max( NN(j), 2 ) and lg = log base 2.
+*> \endverbatim
+*>
 *> \param[out] RWORK
 *> \verbatim
-*>          RWORK is DOUBLE PRECISION array of
-*>                      dimension( ??? )
+*>          RWORK is DOUBLE PRECISION array
+*> \endverbatim
+*>
+*> \param[in] LRWORK
+*> \verbatim
+*>          LRWORK is INTEGER
+*>          The number of entries in LRWORK (dimension( ??? )
 *> \endverbatim
 *>
 *> \param[out] RESULT
index 86e3271..99fe859 100644 (file)
 *>          LIWORK is INTEGER
 *>          Leading dimension of IWORK.  LIWORK >= N+2.
 *> \endverbatim
-*> \verbatim
 *>
 *> \param[out] RESULT  
+*> \verbatim
 *>             RESULT is DOUBLE PRECISION array, dimension (4)
 *> \endverbatim
 *>
index fa6b8e0..d88ceb0 100644 (file)
 *>          or the size of the matrix.  It must be at least zero.
 *> \endverbatim
 *>
-*> \param[in] NOUNIT
-*> \verbatim
-*>          NOUNIT is INTEGER
-*>          The FORTRAN unit number for printing out error messages
-*>          (e.g., if a routine returns IINFO not equal to 0.)
-*> \endverbatim
-*>
 *> \param[out] A
 *> \verbatim
 *>          A is COMPLEX*16 array, dimension (LDA,max(NN))
 *>          IWORK is INTEGER array, dimension at least 8*min(M,N)
 *> \endverbatim
 *>
-*> \param[out] RESULT
+*> \param[in] NOUNIT
 *> \verbatim
-*>          RESULT is DOUBLE PRECISION array, dimension (7)
-*>          The values computed by the 7 tests described above.
-*>          The values are currently limited to 1/ULP, to avoid
-*>          overflow.
+*>          NOUNIT is INTEGER
+*>          The FORTRAN unit number for printing out error messages
+*>          (e.g., if a routine returns IINFO not equal to 0.)
 *> \endverbatim
 *>
 *> \param[out] INFO
index ab14b84..9f6f142 100644 (file)
 *>          IWORK is INTEGER array, dimension (max(NN))
 *> \endverbatim
 *>
+*> \param[out] BWORK
+*> \verbatim
+*>          BWORK is LOGICAL array, dimension (max(NN))
+*> \endverbatim
+*>
 *> \param[out] INFO
 *> \verbatim
 *>          INFO is INTEGER
index e1125b7..e9794cf 100644 (file)
 *>          Leading dimension of LRE. Must be at least max(1,max(NN,12))
 *> \endverbatim
 *>
-*> \param[out] RESULT
+*> \param[out] RCONDV
 *> \verbatim
-*>          RESULT is DOUBLE PRECISION array, dimension (11)
-*>          The values computed by the seven tests described above.
-*>          The values are currently limited to 1/ulp, to avoid
-*>          overflow.
+*>          RCONDV is DOUBLE PRECISION array, dimension (N)
+*>          RCONDV holds the computed reciprocal condition numbers
+*>          for eigenvectors.
+*> \endverbatim
+*>
+*> \param[out] RCNDV1
+*> \verbatim
+*>          RCNDV1 is DOUBLE PRECISION array, dimension (N)
+*>          RCNDV1 holds more computed reciprocal condition numbers
+*>          for eigenvectors.
+*> \endverbatim
+*>
+*> \param[in] RCDVIN
+*> \verbatim
+*>          RCDVIN is DOUBLE PRECISION array, dimension (N)
+*>          When COMP = .TRUE. RCDVIN holds the precomputed reciprocal
+*>          condition numbers for eigenvectors to be compared with
+*>          RCONDV.
+*> \endverbatim
+*>
+*> \param[out] RCONDE
+*> \verbatim
+*>          RCONDE is DOUBLE PRECISION array, dimension (N)
+*>          RCONDE holds the computed reciprocal condition numbers
+*>          for eigenvalues.
+*> \endverbatim
+*>
+*> \param[out] RCNDE1
+*> \verbatim
+*>          RCNDE1 is DOUBLE PRECISION array, dimension (N)
+*>          RCNDE1 holds more computed reciprocal condition numbers
+*>          for eigenvalues.
+*> \endverbatim
+*>
+*> \param[in] RCDEIN
+*> \verbatim
+*>          RCDEIN is DOUBLE PRECISION array, dimension (N)
+*>          When COMP = .TRUE. RCDEIN holds the precomputed reciprocal
+*>          condition numbers for eigenvalues to be compared with
+*>          RCONDE.
+*> \endverbatim
+*>
+*> \param[out] SCALE
+*> \verbatim
+*>          SCALE is DOUBLE PRECISION array, dimension (N)
+*>          Holds information describing balancing of matrix.
+*> \endverbatim
+*>
+*> \param[out] SCALE1
+*> \verbatim
+*>          SCALE1 is DOUBLE PRECISION array, dimension (N)
+*>          Holds information describing balancing of matrix.
 *> \endverbatim
 *>
 *> \param[out] WORK
 *>          WORK is COMPLEX*16 array, dimension (NWORK)
 *> \endverbatim
 *>
+*> \param[out] RESULT
+*> \verbatim
+*>          RESULT is DOUBLE PRECISION array, dimension (11)
+*>          The values computed by the seven tests described above.
+*>          The values are currently limited to 1/ulp, to avoid
+*>          overflow.
+*> \endverbatim
+*>
 *> \param[in] NWORK
 *> \verbatim
 *>          NWORK is INTEGER
index 804b935..9f2f1cb 100644 (file)
 *>          RWORK is DOUBLE PRECISION array, dimension (N)
 *> \endverbatim
 *>
+*> \param[out] RESULT
+*> \verbatim
+*>          RESULT is DOUBLE PRECISION array, dimension (2)
+*>          RESULT(1) = | A E  -  E W | / ( |A| |E| ulp )
+*>          RESULT(2) = max | m-norm(E(j)) - 1 | / ( n ulp )
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
index 756e79e..7624ed5 100644 (file)
 *> \param[in] ALPHA
 *> \verbatim
 *>          ALPHA is COMPLEX*16
+*> \endverbatim
+*>
 *> \param[in] BETA
 *> \verbatim
 *>          BETA is COMPLEX*16
+*> \endverbatim
+*> \verbatim
 *>          parameters to decide whether the pair (ALPHA, BETA) is
 *>          selected.
 *> \endverbatim
-*> \endverbatim
 *>
 *
 *  Authors
index 4e53170..7c10bb2 100644 (file)
@@ -241,46 +241,76 @@ proto-double: ../xlintstds ../xlintstrfd
 proto-complex: ../xlintstrfc
 proto-complex16: ../xlintstzc ../xlintstrfz
 
-../xlintsts : $(ALINTST) $(SLINTST) $(SCLNTST) ../../$(LAPACKLIB)
+xlintsts : $(ALINTST) $(SLINTST) $(SCLNTST) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(ALINTST) $(SCLNTST) $(SLINTST) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB)  $(BLASLIB) -o xlintsts && mv xlintsts $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB)  $(BLASLIB) -o $@
 
-../xlintstc : $(ALINTST) $(CLINTST) $(SCLNTST) ../../$(LAPACKLIB)
+xlintstc : $(ALINTST) $(CLINTST) $(SCLNTST) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(ALINTST) $(SCLNTST) $(CLINTST) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB)  $(BLASLIB) -o xlintstc && mv xlintstc $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB)  $(BLASLIB) -o $@
  
-../xlintstd : $(ALINTST) $(DLINTST) $(DZLNTST) ../../$(LAPACKLIB)
+xlintstd : $(ALINTST) $(DLINTST) $(DZLNTST) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS) $^ \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o xlintstd && mv xlintstd $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB) $(BLASLIB) -o $@
  
-../xlintstz : $(ALINTST) $(ZLINTST) $(DZLNTST) ../../$(LAPACKLIB)
+xlintstz : $(ALINTST) $(ZLINTST) $(DZLNTST) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(ALINTST) $(DZLNTST) $(ZLINTST) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB)  $(BLASLIB) -o xlintstz && mv xlintstz $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(XBLASLIB)  $(BLASLIB) -o $@
  
-../xlintstds : $(DSLINTST) ../../$(LAPACKLIB)
+xlintstds : $(DSLINTST) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(DSLINTST) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o xlintstds && mv xlintstds $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
  
-../xlintstzc : $(ZCLINTST) ../../$(LAPACKLIB)
+xlintstzc : $(ZCLINTST) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(ZCLINTST) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o xlintstzc && mv xlintstzc $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
  
-../xlintstrfs : $(SLINTSTRFP) ../../$(LAPACKLIB)
+xlintstrfs : $(SLINTSTRFP) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(SLINTSTRFP) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o xlintstrfs && mv xlintstrfs $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
  
-../xlintstrfd : $(DLINTSTRFP) ../../$(LAPACKLIB)
+xlintstrfd : $(DLINTSTRFP) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(DLINTSTRFP) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o xlintstrfd && mv xlintstrfd $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
  
-../xlintstrfc : $(CLINTSTRFP) ../../$(LAPACKLIB)
+xlintstrfc : $(CLINTSTRFP) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(CLINTSTRFP) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o xlintstrfc && mv xlintstrfc $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
  
-../xlintstrfz : $(ZLINTSTRFP) ../../$(LAPACKLIB)
+xlintstrfz : $(ZLINTSTRFP) ../../$(LAPACKLIB)
        $(LOADER) $(LOADOPTS)  $(ZLINTSTRFP) \
-        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o xlintstrfz && mv xlintstrfz $@
+        ../../$(TMGLIB) ../../$(LAPACKLIB) $(BLASLIB) -o $@
  
+../xlintsts: xlintsts
+       mv xlintsts $@
+
+../xlintstc: xlintstc
+       mv xlintstc $@
+
+../xlintstz: xlintstz
+       mv xlintstz $@
+
+../xlintstd: xlintstd
+       mv xlintstd $@
+
+../xlintstds: xlintstds
+       mv xlintstds $@
+
+../xlintstzc: xlintstzc
+       mv xlintstzc $@
+
+../xlintstrfs: xlintstrfs
+       mv xlintstrfs $@
+
+../xlintstrfc: xlintstrfc
+       mv xlintstrfc $@
+
+../xlintstrfd: xlintstrfd
+       mv xlintstrfd $@
+
+../xlintstrfz: xlintstrfz
+       mv xlintstrfz $@
+
 $(ALINTST): $(FRC)
 $(SCLNTST): $(FRC)
 $(DZLNTST): $(FRC)
index 926339c..679e133 100644 (file)
 *>          The values of the number of right hand sides NRHS.
 *> \endverbatim
 *>
-*> \param[in] NRHS
-*> \verbatim
-*>          NRHS is INTEGER
-*>          The number of right hand side vectors to be generated for
-*>          each linear system.
-*> \endverbatim
-*>
 *> \param[in] THRESH
 *> \verbatim
 *>          THRESH is REAL
index 044f052..7b671f4 100644 (file)
 *>          The values of the matrix dimension N.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides, NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] THRESH
 *> \verbatim
 *>          THRESH is REAL
index 542bb85..92942e7 100644 (file)
@@ -70,9 +70,9 @@
 *>          AP is COMPLEX array, dimension ((NMAX*(NMAX+1))/2).
 *> \endverbatim
 *>
-*> \param[out] A2
+*> \param[out] ASAV
 *> \verbatim
-*>          A2 is COMPLEX6 array, dimension (LDA,NMAX)
+*>          ASAV is COMPLEX6 array, dimension (LDA,NMAX)
 *> \endverbatim
 *>
 *
index 9100257..4c2096f 100644 (file)
 *  Definition
 *  ==========
 *
-*       SUBROUTINE CEBCHVXX( THRESH, PATH )
-* 
-*       .. Scalar Arguments ..
-*       REAL               THRESH
-*       CHARACTER*3        PATH
-*  
+*      SUBROUTINE CEBCHVXX( THRESH, PATH )
+*
+*     .. Scalar Arguments ..
+*      REAL               THRESH
+*      CHARACTER*3        PATH
+*       ..
+*
 *  Purpose
-*  =======
+*  ======
 *
 *>\details \b Purpose:
 *>\verbatim
-*> Purpose
-*> ======
+*>  CEBCHVXX will run CGESVXX on a series of Hilbert matrices and then
+*>  compare the error bounds returned by CGESVXX to see if the returned
+*>  answer indeed falls within those bounds.
 *>
-*> CEBCHVXX will run CGESVXX on a series of Hilbert matrices and then
-*> compare the error bounds returned by CGESVXX to see if the returned
-*> answer indeed falls within those bounds.
+*>  Eight test ratios will be computed.  The tests will pass if they are .LT.
+*>  THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
+*>  If that value is .LE. to the component wise reciprocal condition number,
+*>  it uses the guaranteed case, other wise it uses the unguaranteed case.
 *>
-*> Eight test ratios will be computed.  The tests will pass if they are .LT.
-*> THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
-*> If that value is .LE. to the component wise reciprocal condition number,
-*> it uses the guaranteed case, other wise it uses the unguaranteed case.
+*>  Test ratios:
+*>     Let Xc be X_computed and Xt be X_truth.
+*>     The norm used is the infinity norm.
 *>
-*> Test ratios:
-*>    Let Xc be X_computed and Xt be X_truth.
-*>    The norm used is the infinity norm.
-
-*>    Let A be the guaranteed case and B be the unguaranteed case.
+*>     Let A be the guaranteed case and B be the unguaranteed case.
+*>
+*>       1. Normwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
+*>          ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: For this case, CGESVXX should just return 1.  If it is less than
+*>          one, treat it the same as in 1A.  Otherwise it fails. (Set test
+*>          ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
 *>
-*>      1. Normwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
-*>         ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: For this case, CGESVXX should just return 1.  If it is less than
-*>         one, treat it the same as in 1A.  Otherwise it fails. (Set test
-*>         ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
+*>       2. Componentwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
+*>          for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: Same as normwise test ratio.
 *>
-*>      2. Componentwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
-*>         for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: Same as normwise test ratio.
+*>       3. Backwards error.
+*>       A: The test ratio is set to BERR/EPS.
+*>       B: Same test ratio.
 *>
-*>      3. Backwards error.
-*>      A: The test ratio is set to BERR/EPS.
-*>      B: Same test ratio.
+*>       4. Reciprocal condition number.
+*>       A: A condition number is computed with Xt and compared with the one
+*>          returned from CGESVXX.  Let RCONDc be the RCOND returned by CGESVXX
+*>          and RCONDt be the RCOND from the truth value.  Test ratio is set to
+*>          MAX(RCONDc/RCONDt, RCONDt/RCONDc).
+*>       B: Test ratio is set to 1 / (EPS * RCONDc).
 *>
-*>      4. Reciprocal condition number.
-*>      A: A condition number is computed with Xt and compared with the one
-*>         returned from CGESVXX.  Let RCONDc be the RCOND returned by CGESVXX
-*>         and RCONDt be the RCOND from the truth value.  Test ratio is set to
-*>         MAX(RCONDc/RCONDt, RCONDt/RCONDc).
-*>      B: Test ratio is set to 1 / (EPS * RCONDc).
+*>       5. Reciprocal normwise condition number.
+*>       A: The test ratio is set to
+*>          MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
 *>
-*>      5. Reciprocal normwise condition number.
-*>      A: The test ratio is set to
-*>         MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
+*>       6. Reciprocal componentwise condition number.
+*>       A: Test ratio is set to
+*>          MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
 *>
-*>      6. Reciprocal componentwise condition number.
-*>      A: Test ratio is set to
-*>         MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
+*>     .. Parameters ..
+*>     NMAX is determined by the largest number in the inverse of the hilbert
+*>     matrix.  Precision is exhausted when the largest entry in it is greater
+*>     than 2 to the power of the number of bits in the fraction of the data
+*>     type used plus one, which is 24 for single precision.
+*>     NMAX should be 6 for single and 11 for double.
+*> \endverbatim
 *>
-*>    .. Parameters ..
-*>    NMAX is determined by the largest number in the inverse of the hilbert
-*>    matrix.  Precision is exhausted when the largest entry in it is greater
-*>    than 2 to the power of the number of bits in the fraction of the data
-*>    type used plus one, which is 24 for single precision.
-*>    NMAX should be 6 for single and 11 for double.
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex_lin
+*
+*  =====================================================================
+      SUBROUTINE CEBCHVXX( THRESH, PATH )
+      IMPLICIT NONE
+*     .. Scalar Arguments ..
+      REAL               THRESH
+      CHARACTER*3        PATH
 
       INTEGER            NMAX, NPARAMS, NERRBND, NTESTS, KL, KU
       PARAMETER          (NMAX = 6, NPARAMS = 2, NERRBND = 3,
      $                    NTESTS = 6)
 
-*>    .. Local Scalars ..
+*     .. Local Scalars ..
       INTEGER            N, NRHS, INFO, I ,J, k, NFAIL, LDA,
      $                   N_AUX_TESTS, LDAB, LDAFB
       CHARACTER          FACT, TRANS, UPLO, EQUED
      $                   CONDTHRESH, ERRTHRESH
       COMPLEX            ZDUM
 
-*>    .. Local Arrays ..
+*     .. Local Arrays ..
       REAL               TSTRAT(NTESTS), RINV(NMAX), PARAMS(NPARAMS),
      $                   S(NMAX), R(NMAX),C(NMAX),RWORK(3*NMAX),
      $                   DIFF(NMAX, NMAX),
      $                   ABCOPY( (NMAX-1)+(NMAX-1)+1, NMAX ),
      $                   AFB( 2*(NMAX-1)+(NMAX-1)+1, NMAX )
 
-*>    .. External Functions ..
+*     .. External Functions ..
       REAL               SLAMCH
 
-*>    .. External Subroutines ..
+*     .. External Subroutines ..
       EXTERNAL           CLAHILB, CGESVXX, CSYSVXX, CPOSVXX,
      $                   CGBSVXX, CLACPY, LSAMEN
       LOGICAL            LSAMEN
 
-*>    .. Intrinsic Functions ..
+*     .. Intrinsic Functions ..
       INTRINSIC          SQRT, MAX, ABS, REAL, AIMAG
 
-*>    .. Statement Functions ..
+*     .. Statement Functions ..
       REAL               CABS1
-*>    ..
-*>    .. Statement Function Definitions ..
+*     ..
+*     .. Statement Function Definitions ..
       CABS1( ZDUM ) = ABS( REAL( ZDUM ) ) + ABS( AIMAG( ZDUM ) )
 
-*>    .. Parameters ..
+*     .. Parameters ..
       INTEGER            NWISE_I, CWISE_I
       PARAMETER          (NWISE_I = 1, CWISE_I = 1)
       INTEGER            BND_I, COND_I
       PARAMETER          (BND_I = 2, COND_I = 3)
 
-*> Create the loop to test out the Hilbert matrices
+*  Create the loop to test out the Hilbert matrices
 
       FACT = 'E'
       UPLO = 'U'
       LDAFB = 2*(NMAX-1)+(NMAX-1)+1
       C2 = PATH( 2: 3 )
 
-*>    Main loop to test the different Hilbert Matrices.
+*     Main loop to test the different Hilbert Matrices.
 
       printed_guide = .false.
 
          NRHS = n
          M = MAX(SQRT(REAL(N)), 10.0)
 
-*>       Generate the Hilbert matrix, its inverse, and the
-*>       right hand side, all scaled by the LCM(1,..,2N-1).
+*        Generate the Hilbert matrix, its inverse, and the
+*        right hand side, all scaled by the LCM(1,..,2N-1).
          CALL CLAHILB(N, N, A, LDA, INVHILB, LDA, B,
      $        LDA, WORK, INFO, PATH)
 
-*>       Copy A into ACOPY.
+*        Copy A into ACOPY.
          CALL CLACPY('ALL', N, N, A, NMAX, ACOPY, NMAX)
 
-*>       Store A in band format for GB tests
+*        Store A in band format for GB tests
          DO J = 1, N
             DO I = 1, KL+KU+1
                AB( I, J ) = (0.0E+0,0.0E+0)
             END DO
          END DO
 
-*>       Copy AB into ABCOPY.
+*        Copy AB into ABCOPY.
          DO J = 1, N
             DO I = 1, KL+KU+1
                ABCOPY( I, J ) = (0.0E+0,0.0E+0)
          END DO
          CALL CLACPY('ALL', KL+KU+1, N, AB, LDAB, ABCOPY, LDAB)
 
-*>       Call C**SVXX with default PARAMS and N_ERR_BND = 3.
+*        Call C**SVXX with default PARAMS and N_ERR_BND = 3.
          IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
             CALL CSYSVXX(FACT, UPLO, N, NRHS, ACOPY, LDA, AF, LDA,
      $           IPIV, EQUED, S, B, LDA, X, LDA, ORCOND,
             END IF
          END IF
 
-*>       Calculating the difference between C**SVXX's X and the true X.
+*        Calculating the difference between C**SVXX's X and the true X.
          DO I = 1,N
             DO J =1,NRHS
                DIFF(I,J) = X(I,J) - INVHILB(I,J)
             END DO
          END DO
 
-*>       Calculating the RCOND
+*        Calculating the RCOND
          RNORM = 0
          RINORM = 0
          IF ( LSAMEN( 2, C2, 'PO' ) .OR. LSAMEN( 2, C2, 'SY' ) .OR.
          RNORM = RNORM / CABS1(A(1, 1))
          RCOND = 1.0/(RNORM * RINORM)
 
-*>       Calculating the R for normwise rcond.
+*        Calculating the R for normwise rcond.
          DO I = 1, N
             RINV(I) = 0.0
          END DO
             END DO
          END DO
 
-*>       Calculating the Normwise rcond.
+*        Calculating the Normwise rcond.
          RINORM = 0.0
          DO I = 1, N
             SUMRI = 0.0
@@ -453,7 +472,7 @@ c$$$         WRITE(*,*) 'Reciprocal condition number: ',ERRBND(NRHS,cwise_i,cond
 c$$$         WRITE(*,*) 'Raw error estimate: ',ERRBND(NRHS,cwise_i,rawbnd_i)
 c$$$         print *, 'Info: ', info
 c$$$         WRITE(*,*)
-*>        WRITE(*,*) 'TSTRAT: ',TSTRAT
+*         WRITE(*,*) 'TSTRAT: ',TSTRAT
 
       END DO
 
@@ -469,7 +488,7 @@ c$$$         WRITE(*,*)
  9998 FORMAT( ' C', A2, 'SVXX: ', I6, ' out of ', I6,
      $     ' tests failed to pass the threshold' )
  9997 FORMAT( ' C', A2, 'SVXX passed the tests of error bounds' )
-*>    Test ratios.
+*     Test ratios.
  9996 FORMAT( 3X, I2, ': Normwise guaranteed forward error', / 5X,
      $     'Guaranteed case: if norm ( abs( Xc - Xt )',
      $     ' / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ), then',
@@ -487,33 +506,3 @@ c$$$         WRITE(*,*)
      $     ', ORCOND = ', G12.5, ', real RCOND = ', G12.5 )
 
       END
-*>\endverbatim
-*
-*  Arguments
-*  =========
-*
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex_lin
-*
-*  =====================================================================
-      SUBROUTINE CEBCHVXX( THRESH, PATH )
-*
-*  -- LAPACK test routine (input) --
-*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
-*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-*     November 2011
-*
-*     .. Scalar Arguments ..
-      REAL               THRESH
-      CHARACTER*3        PATH
-*
index 4f7d4fb..8725f6f 100644 (file)
 *> \verbatim
 *>          C is COMPLEX array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index d1eddf0..d3ae6e0 100644 (file)
 *> \verbatim
 *>          C is COMPLEX array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index d0f2e16..d140b3b 100644 (file)
 *       SUBROUTINE CLAHILB(N, NRHS, A, LDA, X, LDX, B, LDB, WORK, 
 *            INFO, PATH)
 * 
-* !     .. Scalar Arguments ..
+*       .. Scalar Arguments ..
 *       INTEGER T, N, NRHS, LDA, LDX, LDB, INFO
-* !     .. Array Arguments ..
+*       .. Array Arguments ..
 *       REAL WORK(N)
 *       COMPLEX A(LDA,N), X(LDX, NRHS), B(LDB, NRHS)
 *       CHARACTER*3        PATH
-* !     ..
-* !
+*       ..
+*  
 *  Purpose
 *  =======
 *
 *>\details \b Purpose:
 *>\verbatim
-!  Purpose
-!  =======
-!
-!  CLAHILB generates an N by N scaled Hilbert matrix in A along with
-!  NRHS right-hand sides in B and solutions in X such that A*X=B.
-!
-!  The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
-!  entries are integers.  The right-hand sides are the first NRHS
-!  columns of M * the identity matrix, and the solutions are the
-!  first NRHS columns of the inverse Hilbert matrix.
-!
-!  The condition number of the Hilbert matrix grows exponentially with
-!  its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
-!  Hilbert matrices beyond a relatively small dimension cannot be
-!  generated exactly without extra precision.  Precision is exhausted
-!  when the largest entry in the inverse Hilbert matrix is greater than
-!  2 to the power of the number of bits in the fraction of the data type
-!  used plus one, which is 24 for single precision.
-!
-!  In single, the generated solution is exact for N <= 6 and has
-!  small componentwise error for 7 <= N <= 11.
-!
+*>
+*> CLAHILB generates an N by N scaled Hilbert matrix in A along with
+*> NRHS right-hand sides in B and solutions in X such that A*X=B.
+*>
+*> The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
+*> entries are integers.  The right-hand sides are the first NRHS
+*> columns of M * the identity matrix, and the solutions are the
+*> first NRHS columns of the inverse Hilbert matrix.
+*>
+*> The condition number of the Hilbert matrix grows exponentially with
+*> its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
+*> Hilbert matrices beyond a relatively small dimension cannot be
+*> generated exactly without extra precision.  Precision is exhausted
+*> when the largest entry in the inverse Hilbert matrix is greater than
+*> 2 to the power of the number of bits in the fraction of the data type
+*> used plus one, which is 24 for single precision.
+*>
+*> In single, the generated solution is exact for N <= 6 and has
+*> small componentwise error for 7 <= N <= 11.
+*>
 *>\endverbatim
 *
 *  Arguments
 *  =========
 *
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
+*>          The dimension of the matrix A.
+*> \endverbatim
+*>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is NRHS
+*>          The requested number of right-hand sides.
+*> \endverbatim
+*>
+*> \param[out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA, N)
+*>          The generated scaled Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= N.
+*> \endverbatim
+*>
+*> \param[out] X
+*> \verbatim
+*>          X is COMPLEX array, dimension (LDX, NRHS)
+*>          The generated exact solutions.  Currently, the first NRHS
+*>          columns of the inverse Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
+*>          The leading dimension of the array X.  LDX >= N.
+*> \endverbatim
+*>
+*> \param[out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB, NRHS)
+*>          The generated right-hand sides.  Currently, the first NRHS
+*>          columns of LCM(1, 2, ..., 2*N-1) * the identity matrix.
+*> \endverbatim
+*>
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
+*>          The leading dimension of the array B.  LDB >= N.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          = 1: N is too large; the data is still generated but may not
+*>               be not exact.
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
+*> \param[in] PATH
+*> \verbatim
+*>          PATH is CHARACTER*3
+*>          The LAPACK path name.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2011
 *
-!     .. Scalar Arguments ..
+*     .. Scalar Arguments ..
       INTEGER T, N, NRHS, LDA, LDX, LDB, INFO
-!     .. Array Arguments ..
+*     .. Array Arguments ..
       REAL WORK(N)
       COMPLEX A(LDA,N), X(LDX, NRHS), B(LDB, NRHS)
       CHARACTER*3        PATH
-!     ..
-!
-!  =====================================================================
-
-!     .. Local Scalars ..
+*     ..
+*
+*  =====================================================================
+*     .. Local Scalars ..
       INTEGER TM, TI, R
       INTEGER M
       INTEGER I, J
       COMPLEX TMP
       CHARACTER*2 C2
-
-!     .. Parameters ..
-!     NMAX_EXACT   the largest dimension where the generated data is
-!                  exact.
-!     NMAX_APPROX  the largest dimension where the generated data has
-!                  a small componentwise relative error.
-!     ??? complex uses how many bits ???
+*     ..
+*     .. Parameters ..
+*     NMAX_EXACT   the largest dimension where the generated data is
+*                  exact.
+*     NMAX_APPROX  the largest dimension where the generated data has
+*                  a small componentwise relative error.
+*     ??? complex uses how many bits ???
       INTEGER NMAX_EXACT, NMAX_APPROX, SIZE_D
       PARAMETER (NMAX_EXACT = 6, NMAX_APPROX = 11, SIZE_D = 8)
-
-!     d's are generated from random permuation of those eight elements.
+*
+*     d's are generated from random permuation of those eight elements.
       COMPLEX D1(8), D2(8), INVD1(8), INVD2(8) 
       DATA D1 /(-1,0),(0,1),(-1,-1),(0,-1),(1,0),(-1,1),(1,1),(1,-1)/
       DATA D2 /(-1,0),(0,-1),(-1,1),(0,1),(1,0),(-1,-1),(1,-1),(1,1)/
      $     (-.5,-.5),(.5,-.5),(.5,.5)/
       DATA INVD2 /(-1,0),(0,1),(-.5,-.5),(0,-1),(1,0),
      $     (-.5,.5),(.5,.5),(.5,-.5)/
-      
-!     ..
-!     .. External Functions
+*     ..
+*     .. External Functions
       EXTERNAL CLASET, LSAMEN
       INTRINSIC REAL
       LOGICAL LSAMEN
-!     ..
-!     .. Executable Statements ..
+*     ..
+*     .. Executable Statements ..
       C2 = PATH( 2: 3 )
-!
-!     Test the input arguments
-!
+*
+*     Test the input arguments
+*
       INFO = 0
       IF (N .LT. 0 .OR. N .GT. NMAX_APPROX) THEN
          INFO = -1
       IF (N .GT. NMAX_EXACT) THEN
          INFO = 1
       END IF
-
-!     Compute M = the LCM of the integers [1, 2*N-1].  The largest
-!     reasonable N is small enough that integers suffice (up to N = 11).
+*
+*     Compute M = the LCM of the integers [1, 2*N-1].  The largest
+*     reasonable N is small enough that integers suffice (up to N = 11).
       M = 1
       DO I = 2, (2*N-1)
          TM = M
          END DO
          M = (M / TI) * I
       END DO
-
-!     Generate the scaled Hilbert matrix in A
-!     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
+*
+*     Generate the scaled Hilbert matrix in A
+*     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
       IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
          DO J = 1, N
             DO I = 1, N
             END DO
          END DO
       END IF
-
-!     Generate matrix B as simply the first NRHS columns of M * the
-!     identity.
+*
+*     Generate matrix B as simply the first NRHS columns of M * the
+*     identity.
       TMP = REAL(M)
       CALL CLASET('Full', N, NRHS, (0.0,0.0), TMP, B, LDB)
-
-!     Generate the true solutions in X.  Because B = the first NRHS
-!     columns of M*I, the true solutions are just the first NRHS columns
-!     of the inverse Hilbert matrix.
+*
+*     Generate the true solutions in X.  Because B = the first NRHS
+*     columns of M*I, the true solutions are just the first NRHS columns
+*     of the inverse Hilbert matrix.
       WORK(1) = N
       DO J = 2, N
          WORK(J) = (  ( (WORK(J-1)/(J-1)) * (J-1 - N) ) /(J-1)  )
      $        * (N +J -1)
       END DO
-      
-!     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
+*      
+*     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
       IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
          DO J = 1, NRHS
             DO I = 1, N
          END DO
       END IF
       END
-      
+      
\ No newline at end of file
index 0e3b344..de13ff0 100644 (file)
 *>          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides. NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] A
 *> \verbatim
 *>          A is COMPLEX array, dimension (LDA,N)
index 5ffe51b..7bef530 100644 (file)
 *>          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )
 *> \endverbatim
 *>
+*> \param[in] RANK
+*> \verbatim
+*>          RANK is INTEGER
+*>          number of nonzero singular values of A.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
index 9a250f0..41ae25a 100644 (file)
 *> \verbatim
 *>          C is COMPLEX array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index 4109680..bd3d727 100644 (file)
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is COMPLEX array, dimension (LDWORK,N)
+*>          WORK is COMPLEX array, dimension (LDW,N)
 *> \endverbatim
 *>
-*> \param[in] LDWORK
+*> \param[in] LDW
 *> \verbatim
-*>          LDWORK is INTEGER
-*>          The leading dimension of the array WORK.  LDWORK >= max(1,N).
+*>          LDW is INTEGER
+*>          The leading dimension of the array WORK.  LDW >= max(1,N).
 *> \endverbatim
 *>
 *> \param[out] RWORK
index c959c18..f5d314a 100644 (file)
 *> \verbatim
 *>          C is COMPLEX array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index ca2204a..4820cb6 100644 (file)
 *>          The values of the matrix dimension N.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides, NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] THRESH
 *> \verbatim
 *>          THRESH is DOUBLE PRECISION
index 0838733..ecdf27b 100644 (file)
@@ -70,9 +70,9 @@
 *>          AP is DOUBLE PRECISION array, dimension ((NMAX*(NMAX+1))/2).
 *> \endverbatim
 *>
-*> \param[out] A2
+*> \param[out] ASAV
 *> \verbatim
-*>          A2 is DOUBLE PRECISION array, dimension (LDA,NMAX)
+*>          ASAV is DOUBLE PRECISION array, dimension (LDA,NMAX)
 *> \endverbatim
 *>
 *
index 42389dd..69bf58c 100644 (file)
 *  Definition
 *  ==========
 *
-*       SUBROUTINE DEBCHVXX( THRESH, PATH )
-* 
-*       .. Scalar Arguments ..
-*       DOUBLE PRECISION  THRESH
-*       CHARACTER*3       PATH
-*  
+*     SUBROUTINE DEBCHVXX( THRESH, PATH )
+*
+*     .. Scalar Arguments ..
+*      DOUBLE PRECISION  THRESH
+*      CHARACTER*3       PATH
+*       ..
+*
 *  Purpose
 *  =======
 *
 *>\details \b Purpose:
 *>\verbatim
-*> Purpose
-*> ======
+*>  DEBCHVXX will run D**SVXX on a series of Hilbert matrices and then
+*>  compare the error bounds returned by D**SVXX to see if the returned
+*>  answer indeed falls within those bounds.
 *>
-*> DEBCHVXX will run D**SVXX on a series of Hilbert matrices and then
-*> compare the error bounds returned by D**SVXX to see if the returned
-*> answer indeed falls within those bounds.
+*>  Eight test ratios will be computed.  The tests will pass if they are .LT.
+*>  THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
+*>  If that value is .LE. to the component wise reciprocal condition number,
+*>  it uses the guaranteed case, other wise it uses the unguaranteed case.
 *>
-*> Eight test ratios will be computed.  The tests will pass if they are .LT.
-*> THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
-*> If that value is .LE. to the component wise reciprocal condition number,
-*> it uses the guaranteed case, other wise it uses the unguaranteed case.
+*>  Test ratios:
+*>     Let Xc be X_computed and Xt be X_truth.
+*>     The norm used is the infinity norm.
 *>
-*> Test ratios:
-*>    Let Xc be X_computed and Xt be X_truth.
-*>    The norm used is the infinity norm.
-
-*>    Let A be the guaranteed case and B be the unguaranteed case.
+*>     Let A be the guaranteed case and B be the unguaranteed case.
+*>
+*>       1. Normwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
+*>          ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: For this case, CGESVXX should just return 1.  If it is less than
+*>          one, treat it the same as in 1A.  Otherwise it fails. (Set test
+*>          ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
 *>
-*>      1. Normwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
-*>         ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: For this case, CGESVXX should just return 1.  If it is less than
-*>         one, treat it the same as in 1A.  Otherwise it fails. (Set test
-*>         ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
+*>       2. Componentwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
+*>          for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: Same as normwise test ratio.
 *>
-*>      2. Componentwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
-*>         for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: Same as normwise test ratio.
+*>       3. Backwards error.
+*>       A: The test ratio is set to BERR/EPS.
+*>       B: Same test ratio.
 *>
-*>      3. Backwards error.
-*>      A: The test ratio is set to BERR/EPS.
-*>      B: Same test ratio.
+*>       4. Reciprocal condition number.
+*>       A: A condition number is computed with Xt and compared with the one
+*>          returned from CGESVXX.  Let RCONDc be the RCOND returned by D**SVXX
+*>          and RCONDt be the RCOND from the truth value.  Test ratio is set to
+*>          MAX(RCONDc/RCONDt, RCONDt/RCONDc).
+*>       B: Test ratio is set to 1 / (EPS * RCONDc).
 *>
-*>      4. Reciprocal condition number.
-*>      A: A condition number is computed with Xt and compared with the one
-*>         returned from CGESVXX.  Let RCONDc be the RCOND returned by D**SVXX
-*>         and RCONDt be the RCOND from the truth value.  Test ratio is set to
-*>         MAX(RCONDc/RCONDt, RCONDt/RCONDc).
-*>      B: Test ratio is set to 1 / (EPS * RCONDc).
+*>       5. Reciprocal normwise condition number.
+*>       A: The test ratio is set to
+*>          MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
 *>
-*>      5. Reciprocal normwise condition number.
-*>      A: The test ratio is set to
-*>         MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
+*>       6. Reciprocal componentwise condition number.
+*>       A: Test ratio is set to
+*>          MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
 *>
-*>      6. Reciprocal componentwise condition number.
-*>      A: Test ratio is set to
-*>         MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
+*>     .. Parameters ..
+*>     NMAX is determined by the largest number in the inverse of the hilbert
+*>     matrix.  Precision is exhausted when the largest entry in it is greater
+*>     than 2 to the power of the number of bits in the fraction of the data
+*>     type used plus one, which is 24 for single precision.
+*>     NMAX should be 6 for single and 11 for double.
+*> \endverbatim
 *>
-*>    .. Parameters ..
-*>    NMAX is determined by the largest number in the inverse of the hilbert
-*>    matrix.  Precision is exhausted when the largest entry in it is greater
-*>    than 2 to the power of the number of bits in the fraction of the data
-*>    type used plus one, which is 24 for single precision.
-*>    NMAX should be 6 for single and 11 for double.
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup double_lin
+*
+*  =====================================================================
+      SUBROUTINE DEBCHVXX( THRESH, PATH )
+      IMPLICIT NONE
+*     .. Scalar Arguments ..
+      DOUBLE PRECISION  THRESH
+      CHARACTER*3       PATH
 
       INTEGER            NMAX, NPARAMS, NERRBND, NTESTS, KL, KU
       PARAMETER          (NMAX = 10, NPARAMS = 2, NERRBND = 3,
      $                    NTESTS = 6)
 
-*>    .. Local Scalars ..
+*     .. Local Scalars ..
       INTEGER            N, NRHS, INFO, I ,J, k, NFAIL, LDA,
      $                   N_AUX_TESTS, LDAB, LDAFB
       CHARACTER          FACT, TRANS, UPLO, EQUED
      $                   CWISE_RCOND, NWISE_RCOND,
      $                   CONDTHRESH, ERRTHRESH
 
-*>    .. Local Arrays ..
+*     .. Local Arrays ..
       DOUBLE PRECISION   TSTRAT(NTESTS), RINV(NMAX), PARAMS(NPARAMS),
      $                   S(NMAX),R(NMAX),C(NMAX), DIFF(NMAX, NMAX),
      $                   ERRBND_N(NMAX*3), ERRBND_C(NMAX*3),
      $                   ACOPY(NMAX, NMAX)
       INTEGER            IPIV(NMAX), IWORK(3*NMAX)
 
-*>    .. External Functions ..
+*     .. External Functions ..
       DOUBLE PRECISION   DLAMCH
 
-*>    .. External Subroutines ..
+*     .. External Subroutines ..
       EXTERNAL           DLAHILB, DGESVXX, DPOSVXX, DSYSVXX,
      $                   DGBSVXX, DLACPY, LSAMEN
       LOGICAL            LSAMEN
 
-*>    .. Intrinsic Functions ..
+*     .. Intrinsic Functions ..
       INTRINSIC          SQRT, MAX, ABS, DBLE
 
-*>    .. Parameters ..
+*     .. Parameters ..
       INTEGER            NWISE_I, CWISE_I
       PARAMETER          (NWISE_I = 1, CWISE_I = 1)
       INTEGER            BND_I, COND_I
       PARAMETER          (BND_I = 2, COND_I = 3)
 
-*> Create the loop to test out the Hilbert matrices
+*  Create the loop to test out the Hilbert matrices
 
       FACT = 'E'
       UPLO = 'U'
       LDAFB = 2*(NMAX-1)+(NMAX-1)+1
       C2 = PATH( 2: 3 )
 
-*>    Main loop to test the different Hilbert Matrices.
+*     Main loop to test the different Hilbert Matrices.
 
       printed_guide = .false.
 
          NRHS = n
          M = MAX(SQRT(DBLE(N)), 10.0D+0)
 
-*>       Generate the Hilbert matrix, its inverse, and the
-*>       right hand side, all scaled by the LCM(1,..,2N-1).
+*        Generate the Hilbert matrix, its inverse, and the
+*        right hand side, all scaled by the LCM(1,..,2N-1).
          CALL DLAHILB(N, N, A, LDA, INVHILB, LDA, B, LDA, WORK, INFO)
 
-*>       Copy A into ACOPY.
+*        Copy A into ACOPY.
          CALL DLACPY('ALL', N, N, A, NMAX, ACOPY, NMAX)
 
-*>       Store A in band format for GB tests
+*        Store A in band format for GB tests
          DO J = 1, N
             DO I = 1, KL+KU+1
                AB( I, J ) = 0.0D+0
             END DO
          END DO
 
-*>       Copy AB into ABCOPY.
+*        Copy AB into ABCOPY.
          DO J = 1, N
             DO I = 1, KL+KU+1
                ABCOPY( I, J ) = 0.0D+0
          END DO
          CALL DLACPY('ALL', KL+KU+1, N, AB, LDAB, ABCOPY, LDAB)
 
-*>       Call D**SVXX with default PARAMS and N_ERR_BND = 3.
+*        Call D**SVXX with default PARAMS and N_ERR_BND = 3.
          IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
             CALL DSYSVXX(FACT, UPLO, N, NRHS, ACOPY, LDA, AF, LDA,
      $           IPIV, EQUED, S, B, LDA, X, LDA, ORCOND,
             END IF
          END IF
 
-*>       Calculating the difference between D**SVXX's X and the true X.
+*        Calculating the difference between D**SVXX's X and the true X.
          DO I = 1,N
             DO J =1,NRHS
                DIFF(I,J) = X(I,J) - INVHILB(I,J)
             END DO
          END DO
 
-*>       Calculating the RCOND
+*        Calculating the RCOND
          RNORM = 0.0D+0
          RINORM = 0.0D+0
          IF ( LSAMEN( 2, C2, 'PO' ) .OR. LSAMEN( 2, C2, 'SY' ) ) THEN
          RNORM = RNORM / ABS(A(1, 1))
          RCOND = 1.0D+0/(RNORM * RINORM)
 
-*>       Calculating the R for normwise rcond.
+*        Calculating the R for normwise rcond.
          DO I = 1, N
             RINV(I) = 0.0D+0
          END DO
             END DO
          END DO
 
-*>       Calculating the Normwise rcond.
+*        Calculating the Normwise rcond.
          RINORM = 0.0D+0
          DO I = 1, N
             SUMRI = 0.0D+0
@@ -439,7 +458,7 @@ c$$$         WRITE(*,*) 'Reciprocal condition number: ',ERRBND(NRHS,cwise_i,cond
 c$$$         WRITE(*,*) 'Raw error estimate: ',ERRBND(NRHS,cwise_i,rawbnd_i)
 c$$$         print *, 'Info: ', info
 c$$$         WRITE(*,*)
-*>        WRITE(*,*) 'TSTRAT: ',TSTRAT
+*         WRITE(*,*) 'TSTRAT: ',TSTRAT
 
       END DO
 
@@ -455,7 +474,7 @@ c$$$         WRITE(*,*)
  9998 FORMAT( ' D', A2, 'SVXX: ', I6, ' out of ', I6,
      $     ' tests failed to pass the threshold' )
  9997 FORMAT( ' D', A2, 'SVXX passed the tests of error bounds' )
-*>    Test ratios.
+*     Test ratios.
  9996 FORMAT( 3X, I2, ': Normwise guaranteed forward error', / 5X,
      $     'Guaranteed case: if norm ( abs( Xc - Xt )',
      $     ' / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ), then',
@@ -473,33 +492,3 @@ c$$$         WRITE(*,*)
      $     ', ORCOND = ', G12.5, ', real RCOND = ', G12.5 )
 
       END
-*>\endverbatim
-*
-*  Arguments
-*  =========
-*
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup double_lin
-*
-*  =====================================================================
-      SUBROUTINE DEBCHVXX( THRESH, PATH )
-*
-*  -- LAPACK test routine (input) --
-*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
-*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-*     November 2011
-*
-*     .. Scalar Arguments ..
-      DOUBLE PRECISION  THRESH
-      CHARACTER*3       PATH
-*
index 22673b1..6fc036c 100644 (file)
@@ -82,9 +82,9 @@
 *>          The (n-1) elements of the first super-diagonal of U.
 *> \endverbatim
 *>
-*> \param[in] DU2F
+*> \param[in] DU2
 *> \verbatim
-*>          DU2F is DOUBLE PRECISION array, dimension (N-2)
+*>          DU2 is DOUBLE PRECISION array, dimension (N-2)
 *>          The (n-2) elements of the second super-diagonal of U.
 *> \endverbatim
 *>
index 9ab5498..a4922e8 100644 (file)
 *
 *       SUBROUTINE DLAHILB(N, NRHS, A, LDA, X, LDX, B, LDB, WORK, INFO)
 * 
-* !     .. Scalar Arguments ..
+*       .. Scalar Arguments ..
 *       INTEGER N, NRHS, LDA, LDX, LDB, INFO
-* !     .. Array Arguments ..
+*       .. Array Arguments ..
 *       DOUBLE PRECISION A(LDA, N), X(LDX, NRHS), B(LDB, NRHS), WORK(N)
-* !     ..
-* !
+*       ..
+*  
 *  Purpose
 *  =======
 *
 *>\details \b Purpose:
 *>\verbatim
-!  Purpose
-!  =======
-!
-!  DLAHILB generates an N by N scaled Hilbert matrix in A along with
-!  NRHS right-hand sides in B and solutions in X such that A*X=B.
-!
-!  The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
-!  entries are integers.  The right-hand sides are the first NRHS 
-!  columns of M * the identity matrix, and the solutions are the 
-!  first NRHS columns of the inverse Hilbert matrix.
-!
-!  The condition number of the Hilbert matrix grows exponentially with
-!  its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
-!  Hilbert matrices beyond a relatively small dimension cannot be
-!  generated exactly without extra precision.  Precision is exhausted
-!  when the largest entry in the inverse Hilbert matrix is greater than
-!  2 to the power of the number of bits in the fraction of the data type
-!  used plus one, which is 24 for single precision.  
-!
-!  In single, the generated solution is exact for N <= 6 and has
-!  small componentwise error for 7 <= N <= 11.
-!
+*>
+*> DLAHILB generates an N by N scaled Hilbert matrix in A along with
+*> NRHS right-hand sides in B and solutions in X such that A*X=B.
+*>
+*> The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
+*> entries are integers.  The right-hand sides are the first NRHS 
+*> columns of M * the identity matrix, and the solutions are the 
+*> first NRHS columns of the inverse Hilbert matrix.
+*>
+*> The condition number of the Hilbert matrix grows exponentially with
+*> its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
+*> Hilbert matrices beyond a relatively small dimension cannot be
+*> generated exactly without extra precision.  Precision is exhausted
+*> when the largest entry in the inverse Hilbert matrix is greater than
+*> 2 to the power of the number of bits in the fraction of the data type
+*> used plus one, which is 24 for single precision.  
+*>
+*> In single, the generated solution is exact for N <= 6 and has
+*> small componentwise error for 7 <= N <= 11.
+*>
 *>\endverbatim
 *
 *  Arguments
 *  =========
 *
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
+*>          The dimension of the matrix A.
+*> \endverbatim
+*>      
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is NRHS
+*>          The requested number of right-hand sides.
+*> \endverbatim
+*>
+*> \param[out] A
+*> \verbatim
+*>          A is DOUBLE PRECISION array, dimension (LDA, N)
+*>          The generated scaled Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= N.
+*> \endverbatim
+*>
+*> \param[out] X
+*> \verbatim
+*>          X is DOUBLE PRECISION array, dimension (LDX, NRHS)
+*>          The generated exact solutions.  Currently, the first NRHS
+*>          columns of the inverse Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
+*>          The leading dimension of the array X.  LDX >= N.
+*> \endverbatim
+*>
+*> \param[out] B
+*> \verbatim
+*>          B is DOUBLE PRECISION array, dimension (LDB, NRHS)
+*>          The generated right-hand sides.  Currently, the first NRHS
+*>          columns of LCM(1, 2, ..., 2*N-1) * the identity matrix.
+*> \endverbatim
+*>
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
+*>          The leading dimension of the array B.  LDB >= N.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          = 1: N is too large; the data is still generated but may not
+*>               be not exact.
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2011
 *
-!     .. Scalar Arguments ..
+*     .. Scalar Arguments ..
       INTEGER N, NRHS, LDA, LDX, LDB, INFO
-!     .. Array Arguments ..
+*     .. Array Arguments ..
       DOUBLE PRECISION A(LDA, N), X(LDX, NRHS), B(LDB, NRHS), WORK(N)
-!     ..
-!
-!  =====================================================================
-
-!     .. Local Scalars ..
+*     ..
+*
+*  =====================================================================
+*     .. Local Scalars ..
       INTEGER TM, TI, R
       INTEGER M
       INTEGER I, J
       COMPLEX*16 TMP
-
-!     .. Parameters ..
-!     NMAX_EXACT   the largest dimension where the generated data is
-!                  exact.
-!     NMAX_APPROX  the largest dimension where the generated data has
-!                  a small componentwise relative error.
+*     ..
+*     .. Parameters ..
+*     NMAX_EXACT   the largest dimension where the generated data is
+*                  exact.
+*     NMAX_APPROX  the largest dimension where the generated data has
+*                  a small componentwise relative error.
       INTEGER NMAX_EXACT, NMAX_APPROX
       PARAMETER (NMAX_EXACT = 6, NMAX_APPROX = 11)
 
-!     ..
-!     .. External Functions
+*     ..
+*     .. External Functions
       EXTERNAL DLASET
       INTRINSIC DBLE
-!     ..
-!     .. Executable Statements ..
-!
-!     Test the input arguments
-!
+*     ..
+*     .. Executable Statements ..
+*
+*     Test the input arguments
+*
       INFO = 0
       IF (N .LT. 0 .OR. N .GT. NMAX_APPROX) THEN
          INFO = -1
       IF (N .GT. NMAX_EXACT) THEN
          INFO = 1
       END IF
-
-!     Compute M = the LCM of the integers [1, 2*N-1].  The largest
-!     reasonable N is small enough that integers suffice (up to N = 11).
+*
+*     Compute M = the LCM of the integers [1, 2*N-1].  The largest
+*     reasonable N is small enough that integers suffice (up to N = 11).
       M = 1
       DO I = 2, (2*N-1)
          TM = M
          END DO
          M = (M / TI) * I
       END DO
-
-!     Generate the scaled Hilbert matrix in A
+*
+*     Generate the scaled Hilbert matrix in A
       DO J = 1, N
          DO I = 1, N
             A(I, J) = DBLE(M) / (I + J - 1)
          END DO
       END DO
-
-!     Generate matrix B as simply the first NRHS columns of M * the
-!     identity.
+*
+*     Generate matrix B as simply the first NRHS columns of M * the
+*     identity.
       TMP = DBLE(M)
       CALL DLASET('Full', N, NRHS, 0.0D+0, TMP, B, LDB)
-
-!     Generate the true solutions in X.  Because B = the first NRHS
-!     columns of M*I, the true solutions are just the first NRHS columns
-!     of the inverse Hilbert matrix.
+*
+*     Generate the true solutions in X.  Because B = the first NRHS
+*     columns of M*I, the true solutions are just the first NRHS columns
+*     of the inverse Hilbert matrix.
       WORK(1) = N
       DO J = 2, N
          WORK(J) = (  ( (WORK(J-1)/(J-1)) * (J-1 - N) ) /(J-1)  )
      $        * (N +J -1)
       END DO
-      
+*
       DO J = 1, NRHS
          DO I = 1, N
             X(I, J) = (WORK(I)*WORK(J)) / (I + J - 1)
          END DO
       END DO
-
+*
       END
 
index d2af835..8bac818 100644 (file)
 *>          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides. NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] A
 *> \verbatim
 *>          A is DOUBLE PRECISION array, dimension (LDA,N)
index 23d0074..252fe64 100644 (file)
 *>          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )
 *> \endverbatim
 *>
+*> \param[in] RANK
+*> \verbatim
+*>          RANK is INTEGER
+*>          number of nonzero singular values of A.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
index 05d6a2c..6941630 100644 (file)
 *> \verbatim
 *>          C is DOUBLE PRECISION array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index b432903..585101c 100644 (file)
 *> \verbatim
 *>          C is DOUBLE PRECISION array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index 744d699..6f9b309 100644 (file)
@@ -8,7 +8,7 @@
 *  Definition
 *  ==========
 *
-*       INTEGER          FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3,
+*       INTEGER FUNCTION ILAENV( ISPEC, NAME, OPTS, N1, N2, N3,
 *                        N4 )
 * 
 *       .. Scalar Arguments ..
@@ -63,8 +63,7 @@
 *>               computation tree in the divide-and-conquer algorithm
 *>          =10: ieee NaN arithmetic can be trusted not to trap
 *>          =11: infinity arithmetic can be trusted not to trap
-*> \endverbatim
-*> \verbatim
+*>
 *>          Other specifications (up to 100) can be added later.
 *> \endverbatim
 *>
 *> \param[in] N4
 *> \verbatim
 *>          N4 is INTEGER
-*> \endverbatim
-*> \verbatim
+*>
 *>          Problem dimensions for the subroutine NAME; these may not all
 *>          be required.
 *> \endverbatim
 *>
-*> \param[out] (ILAENV)
+*> \return ILAENV
 *> \verbatim
-*>          (ILAENV) is INTEGER
+*>          ILAENV is INTEGER
 *>          >= 0: the value of the parameter specified by ISPEC
 *>          < 0:  if ILAENV = -k, the k-th argument had an illegal value.
 *> \endverbatim
index fc361c3..f46a42a 100644 (file)
 *>          The values of the matrix dimension N.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides, NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] THRESH
 *> \verbatim
 *>          THRESH is REAL
index 1a8e9fe..46d5d1d 100644 (file)
 *
          N = NVAL( IIN )
 *
-         DO 120 IIT = 1, 3
+         DO 120 IIT = 1, 3         
+*           Nothing to do for N=0
+            IF ( N .EQ. 0 ) EXIT
          
 *           Quick Return if possible
             IF ( N .EQ. 0 ) EXIT
index 3277246..024bb49 100644 (file)
@@ -70,9 +70,9 @@
 *>          AP is REAL array, dimension ((NMAX*(NMAX+1))/2).
 *> \endverbatim
 *>
-*> \param[out] A2
+*> \param[out] ASAV
 *> \verbatim
-*>          A2 is REAL array, dimension (LDA,NMAX)
+*>          ASAV is REAL array, dimension (LDA,NMAX)
 *> \endverbatim
 *>
 *
index f25f315..b29e17c 100644 (file)
 *  Definition
 *  ==========
 *
-*       SUBROUTINE SEBCHVXX( THRESH, PATH )
-* 
-*       .. Scalar Arguments ..
-*       REAL               THRESH
-*       CHARACTER*3        PATH
-*  
+*      SUBROUTINE SEBCHVXX( THRESH, PATH )
+*
+*     .. Scalar Arguments ..
+*      REAL               THRESH
+*      CHARACTER*3        PATH
+*       ..
+*
 *  Purpose
 *  =======
 *
 *>\details \b Purpose:
 *>\verbatim
-*> Purpose
-*> ======
+*>  SEBCHVXX will run S**SVXX on a series of Hilbert matrices and then
+*>  compare the error bounds returned by SGESVXX to see if the returned
+*>  answer indeed falls within those bounds.
 *>
-*> SEBCHVXX will run S**SVXX on a series of Hilbert matrices and then
-*> compare the error bounds returned by SGESVXX to see if the returned
-*> answer indeed falls within those bounds.
+*>  Eight test ratios will be computed.  The tests will pass if they are .LT.
+*>  THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
+*>  If that value is .LE. to the component wise reciprocal condition number,
+*>  it uses the guaranteed case, other wise it uses the unguaranteed case.
 *>
-*> Eight test ratios will be computed.  The tests will pass if they are .LT.
-*> THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
-*> If that value is .LE. to the component wise reciprocal condition number,
-*> it uses the guaranteed case, other wise it uses the unguaranteed case.
+*>  Test ratios:
+*>     Let Xc be X_computed and Xt be X_truth.
+*>     The norm used is the infinity norm.
 *>
-*> Test ratios:
-*>    Let Xc be X_computed and Xt be X_truth.
-*>    The norm used is the infinity norm.
-
-*>    Let A be the guaranteed case and B be the unguaranteed case.
+*>     Let A be the guaranteed case and B be the unguaranteed case.
+*>
+*>       1. Normwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
+*>          ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: For this case, SGESVXX should just return 1.  If it is less than
+*>          one, treat it the same as in 1A.  Otherwise it fails. (Set test
+*>          ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
 *>
-*>      1. Normwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
-*>         ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: For this case, SGESVXX should just return 1.  If it is less than
-*>         one, treat it the same as in 1A.  Otherwise it fails. (Set test
-*>         ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
+*>       2. Componentwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
+*>          for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: Same as normwise test ratio.
 *>
-*>      2. Componentwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
-*>         for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: Same as normwise test ratio.
+*>       3. Backwards error.
+*>       A: The test ratio is set to BERR/EPS.
+*>       B: Same test ratio.
 *>
-*>      3. Backwards error.
-*>      A: The test ratio is set to BERR/EPS.
-*>      B: Same test ratio.
+*>       4. Reciprocal condition number.
+*>       A: A condition number is computed with Xt and compared with the one
+*>          returned from SGESVXX.  Let RCONDc be the RCOND returned by SGESVXX
+*>          and RCONDt be the RCOND from the truth value.  Test ratio is set to
+*>          MAX(RCONDc/RCONDt, RCONDt/RCONDc).
+*>       B: Test ratio is set to 1 / (EPS * RCONDc).
 *>
-*>      4. Reciprocal condition number.
-*>      A: A condition number is computed with Xt and compared with the one
-*>         returned from SGESVXX.  Let RCONDc be the RCOND returned by SGESVXX
-*>         and RCONDt be the RCOND from the truth value.  Test ratio is set to
-*>         MAX(RCONDc/RCONDt, RCONDt/RCONDc).
-*>      B: Test ratio is set to 1 / (EPS * RCONDc).
+*>       5. Reciprocal normwise condition number.
+*>       A: The test ratio is set to
+*>          MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
 *>
-*>      5. Reciprocal normwise condition number.
-*>      A: The test ratio is set to
-*>         MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
+*>       7. Reciprocal componentwise condition number.
+*>       A: Test ratio is set to
+*>          MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
 *>
-*>      7. Reciprocal componentwise condition number.
-*>      A: Test ratio is set to
-*>         MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
+*>     .. Parameters ..
+*>     NMAX is determined by the largest number in the inverse of the Hilbert
+*>     matrix.  Precision is exhausted when the largest entry in it is greater
+*>     than 2 to the power of the number of bits in the fraction of the data
+*>     type used plus one, which is 24 for single precision.
+*>     NMAX should be 6 for single and 11 for double.
+*> \endverbatim
 *>
-*>    .. Parameters ..
-*>    NMAX is determined by the largest number in the inverse of the Hilbert
-*>    matrix.  Precision is exhausted when the largest entry in it is greater
-*>    than 2 to the power of the number of bits in the fraction of the data
-*>    type used plus one, which is 24 for single precision.
-*>    NMAX should be 6 for single and 11 for double.
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup single_lin
+*
+*  =====================================================================
+      SUBROUTINE SEBCHVXX( THRESH, PATH )
+      IMPLICIT NONE
+*     .. Scalar Arguments ..
+      REAL               THRESH
+      CHARACTER*3        PATH
 
       INTEGER            NMAX, NPARAMS, NERRBND, NTESTS, KL, KU
       PARAMETER          (NMAX = 6, NPARAMS = 2, NERRBND = 3,
      $                    NTESTS = 6)
 
-*>    .. Local Scalars ..
+*     .. Local Scalars ..
       INTEGER            N, NRHS, INFO, I ,J, k, NFAIL, LDA, LDAB,
      $                   LDAFB, N_AUX_TESTS
       CHARACTER          FACT, TRANS, UPLO, EQUED
      $                   CWISE_RCOND, NWISE_RCOND,
      $                   CONDTHRESH, ERRTHRESH
 
-*>    .. Local Arrays ..
+*     .. Local Arrays ..
       REAL               TSTRAT(NTESTS), RINV(NMAX), PARAMS(NPARAMS),
      $                   A(NMAX, NMAX), ACOPY(NMAX, NMAX),
      $                   INVHILB(NMAX, NMAX), R(NMAX), C(NMAX), S(NMAX),
      $                   ERRBND_N(NMAX*3), ERRBND_C(NMAX*3)
       INTEGER            IWORK(NMAX), IPIV(NMAX)
 
-*>    .. External Functions ..
+*     .. External Functions ..
       REAL               SLAMCH
 
-*>    .. External Subroutines ..
+*     .. External Subroutines ..
       EXTERNAL           SLAHILB, SGESVXX, SSYSVXX, SPOSVXX, SGBSVXX,
      $                   SLACPY, LSAMEN
       LOGICAL            LSAMEN
 
-*>    .. Intrinsic Functions ..
+*     .. Intrinsic Functions ..
       INTRINSIC          SQRT, MAX, ABS
 
-*>    .. Parameters ..
+*     .. Parameters ..
       INTEGER            NWISE_I, CWISE_I
       PARAMETER          (NWISE_I = 1, CWISE_I = 1)
       INTEGER            BND_I, COND_I
       PARAMETER          (BND_I = 2, COND_I = 3)
 
-*>    Create the loop to test out the Hilbert matrices
+*     Create the loop to test out the Hilbert matrices
 
       FACT = 'E'
       UPLO = 'U'
       LDAFB = 2*(NMAX-1)+(NMAX-1)+1
       C2 = PATH( 2: 3 )
 
-*>    Main loop to test the different Hilbert Matrices.
+*     Main loop to test the different Hilbert Matrices.
 
       printed_guide = .false.
 
          NRHS = n
          M = MAX(SQRT(REAL(N)), 10.0)
 
-*>       Generate the Hilbert matrix, its inverse, and the
-*>       right hand side, all scaled by the LCM(1,..,2N-1).
+*        Generate the Hilbert matrix, its inverse, and the
+*        right hand side, all scaled by the LCM(1,..,2N-1).
          CALL SLAHILB(N, N, A, LDA, INVHILB, LDA, B, LDA, WORK, INFO)
 
-*>       Copy A into ACOPY.
+*        Copy A into ACOPY.
          CALL SLACPY('ALL', N, N, A, NMAX, ACOPY, NMAX)
 
-*>       Store A in band format for GB tests
+*        Store A in band format for GB tests
          DO J = 1, N
             DO I = 1, KL+KU+1
                AB( I, J ) = 0.0E+0
             END DO
          END DO
 
-*>       Copy AB into ABCOPY.
+*        Copy AB into ABCOPY.
          DO J = 1, N
             DO I = 1, KL+KU+1
                ABCOPY( I, J ) = 0.0E+0
          END DO
          CALL SLACPY('ALL', KL+KU+1, N, AB, LDAB, ABCOPY, LDAB)
 
-*>       Call S**SVXX with default PARAMS and N_ERR_BND = 3.
+*        Call S**SVXX with default PARAMS and N_ERR_BND = 3.
          IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
             CALL SSYSVXX(FACT, UPLO, N, NRHS, ACOPY, LDA, AF, LDA,
      $           IPIV, EQUED, S, B, LDA, X, LDA, ORCOND,
             END IF
          END IF
 
-*>       Calculating the difference between S**SVXX's X and the true X.
+*        Calculating the difference between S**SVXX's X and the true X.
          DO I = 1, N
             DO J = 1, NRHS
                DIFF( I, J ) = X( I, J ) - INVHILB( I, J )
             END DO
          END DO
 
-*>       Calculating the RCOND
+*        Calculating the RCOND
          RNORM = 0
          RINORM = 0
          IF ( LSAMEN( 2, C2, 'PO' ) .OR. LSAMEN( 2, C2, 'SY' ) ) THEN
          RNORM = RNORM / A(1, 1)
          RCOND = 1.0/(RNORM * RINORM)
 
-*>       Calculating the R for normwise rcond.
+*        Calculating the R for normwise rcond.
          DO I = 1, N
             RINV(I) = 0.0
          END DO
             END DO
          END DO
 
-*>       Calculating the Normwise rcond.
+*        Calculating the Normwise rcond.
          RINORM = 0.0
          DO I = 1, N
             SUMRI = 0.0
@@ -441,7 +460,7 @@ c$$$         WRITE(*,*) 'Reciprocal condition number: ',ERRBND(NRHS,cwise_i,cond
 c$$$         WRITE(*,*) 'Raw error estimate: ',ERRBND(NRHS,cwise_i,rawbnd_i)
 c$$$         print *, 'Info: ', info
 c$$$         WRITE(*,*)
-*>        WRITE(*,*) 'TSTRAT: ',TSTRAT
+*         WRITE(*,*) 'TSTRAT: ',TSTRAT
 
       END DO
 
@@ -457,7 +476,7 @@ c$$$         WRITE(*,*)
  9998 FORMAT( ' S', A2, 'SVXX: ', I6, ' out of ', I6,
      $     ' tests failed to pass the threshold' )
  9997 FORMAT( ' S', A2, 'SVXX passed the tests of error bounds' )
-*>    Test ratios.
+*     Test ratios.
  9996 FORMAT( 3X, I2, ': Normwise guaranteed forward error', / 5X,
      $     'Guaranteed case: if norm ( abs( Xc - Xt )',
      $     ' / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ), then',
@@ -475,33 +494,3 @@ c$$$         WRITE(*,*)
      $     ', ORCOND = ', G12.5, ', real RCOND = ', G12.5 )
 
       END
-*>\endverbatim
-*
-*  Arguments
-*  =========
-*
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup single_lin
-*
-*  =====================================================================
-      SUBROUTINE SEBCHVXX( THRESH, PATH )
-*
-*  -- LAPACK test routine (input) --
-*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
-*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-*     November 2011
-*
-*     .. Scalar Arguments ..
-      REAL               THRESH
-      CHARACTER*3        PATH
-*
index adfd9ab..c2f8e71 100644 (file)
@@ -82,9 +82,9 @@
 *>          The (n-1) elements of the first super-diagonal of U.
 *> \endverbatim
 *>
-*> \param[in] DU2F
+*> \param[in] DU2
 *> \verbatim
-*>          DU2F is REAL array, dimension (N-2)
+*>          DU2 is REAL array, dimension (N-2)
 *>          The (n-2) elements of the second super-diagonal of U.
 *> \endverbatim
 *>
index ed25756..7ced82f 100644 (file)
 *
 *       SUBROUTINE SLAHILB(N, NRHS, A, LDA, X, LDX, B, LDB, WORK, INFO)
 * 
-* !     .. Scalar Arguments ..
+*       .. Scalar Arguments ..
 *       INTEGER N, NRHS, LDA, LDX, LDB, INFO
-* !     .. Array Arguments ..
+*       .. Array Arguments ..
 *       REAL A(LDA, N), X(LDX, NRHS), B(LDB, NRHS), WORK(N)
-* !     ..
-* !
+*       ..
+*  
 *  Purpose
 *  =======
 *
 *>\details \b Purpose:
 *>\verbatim
-!  Purpose
-!  =======
-!
-!  SLAHILB generates an N by N scaled Hilbert matrix in A along with
-!  NRHS right-hand sides in B and solutions in X such that A*X=B.
-!
-!  The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
-!  entries are integers.  The right-hand sides are the first NRHS 
-!  columns of M * the identity matrix, and the solutions are the 
-!  first NRHS columns of the inverse Hilbert matrix.
-!
-!  The condition number of the Hilbert matrix grows exponentially with
-!  its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
-!  Hilbert matrices beyond a relatively small dimension cannot be
-!  generated exactly without extra precision.  Precision is exhausted
-!  when the largest entry in the inverse Hilbert matrix is greater than
-!  2 to the power of the number of bits in the fraction of the data type
-!  used plus one, which is 24 for single precision.  
-!
-!  In single, the generated solution is exact for N <= 6 and has
-!  small componentwise error for 7 <= N <= 11.
-!
+*>
+*> SLAHILB generates an N by N scaled Hilbert matrix in A along with
+*> NRHS right-hand sides in B and solutions in X such that A*X=B.
+*>
+*> The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
+*> entries are integers.  The right-hand sides are the first NRHS 
+*> columns of M * the identity matrix, and the solutions are the 
+*> first NRHS columns of the inverse Hilbert matrix.
+*>
+*> The condition number of the Hilbert matrix grows exponentially with
+*> its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
+*> Hilbert matrices beyond a relatively small dimension cannot be
+*> generated exactly without extra precision.  Precision is exhausted
+*> when the largest entry in the inverse Hilbert matrix is greater than
+*> 2 to the power of the number of bits in the fraction of the data type
+*> used plus one, which is 24 for single precision.  
+*>
+*> In single, the generated solution is exact for N <= 6 and has
+*> small componentwise error for 7 <= N <= 11.
+*>
 *>\endverbatim
 *
 *  Arguments
 *  =========
 *
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
+*>          The dimension of the matrix A.
+*> \endverbatim
+*>      
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is NRHS
+*>          The requested number of right-hand sides.
+*> \endverbatim
+*>
+*> \param[out] A
+*> \verbatim
+*>          A is REAL array, dimension (LDA, N)
+*>          The generated scaled Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= N.
+*> \endverbatim
+*>
+*> \param[out] X
+*> \verbatim
+*>          X is REAL array, dimension (LDX, NRHS)
+*>          The generated exact solutions.  Currently, the first NRHS
+*>          columns of the inverse Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
+*>          The leading dimension of the array X.  LDX >= N.
+*> \endverbatim
+*>
+*> \param[out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB, NRHS)
+*>          The generated right-hand sides.  Currently, the first NRHS
+*>          columns of LCM(1, 2, ..., 2*N-1) * the identity matrix.
+*> \endverbatim
+*>
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
+*>          The leading dimension of the array B.  LDB >= N.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          = 1: N is too large; the data is still generated but may not
+*>               be not exact.
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2011
 *
-!     .. Scalar Arguments ..
+*     .. Scalar Arguments ..
       INTEGER N, NRHS, LDA, LDX, LDB, INFO
-!     .. Array Arguments ..
+*     .. Array Arguments ..
       REAL A(LDA, N), X(LDX, NRHS), B(LDB, NRHS), WORK(N)
-!     ..
-!
-!  =====================================================================
-
-!     .. Local Scalars ..
+*     ..
+*
+*  =====================================================================
+*     .. Local Scalars ..
       INTEGER TM, TI, R
       INTEGER M
       INTEGER I, J
-
-!     .. Parameters ..
-!     NMAX_EXACT   the largest dimension where the generated data is
-!                  exact.
-!     NMAX_APPROX  the largest dimension where the generated data has
-!                  a small componentwise relative error.
+*     ..
+*     .. Parameters ..
+*     NMAX_EXACT   the largest dimension where the generated data is
+*                  exact.
+*     NMAX_APPROX  the largest dimension where the generated data has
+*                  a small componentwise relative error.
       INTEGER NMAX_EXACT, NMAX_APPROX
       PARAMETER (NMAX_EXACT = 6, NMAX_APPROX = 11)
-
-!     ..
-!     .. External Functions
+*     ..
+*     .. External Functions
       EXTERNAL SLASET
       INTRINSIC REAL
-!     ..
-!     .. Executable Statements ..
-!
-!     Test the input arguments
-!
+*     ..
+*     .. Executable Statements ..
+*
+*     Test the input arguments
+*
       INFO = 0
       IF (N .LT. 0 .OR. N .GT. NMAX_APPROX) THEN
          INFO = -1
       IF (N .GT. NMAX_EXACT) THEN
          INFO = 1
       END IF
-
-!     Compute M = the LCM of the integers [1, 2*N-1].  The largest
-!     reasonable N is small enough that integers suffice (up to N = 11).
+*
+*     Compute M = the LCM of the integers [1, 2*N-1].  The largest
+*     reasonable N is small enough that integers suffice (up to N = 11).
       M = 1
       DO I = 2, (2*N-1)
          TM = M
          END DO
          M = (M / TI) * I
       END DO
-
-!     Generate the scaled Hilbert matrix in A
+*
+*     Generate the scaled Hilbert matrix in A
       DO J = 1, N
          DO I = 1, N
             A(I, J) = REAL(M) / (I + J - 1)
          END DO
       END DO
-
-!     Generate matrix B as simply the first NRHS columns of M * the
-!     identity.
+*
+*     Generate matrix B as simply the first NRHS columns of M * the
+*     identity.
       CALL SLASET('Full', N, NRHS, 0.0, REAL(M), B, LDB)
-
-!     Generate the true solutions in X.  Because B = the first NRHS
-!     columns of M*I, the true solutions are just the first NRHS columns
-!     of the inverse Hilbert matrix.
+*
+*     Generate the true solutions in X.  Because B = the first NRHS
+*     columns of M*I, the true solutions are just the first NRHS columns
+*     of the inverse Hilbert matrix.
       WORK(1) = N
       DO J = 2, N
          WORK(J) = (  ( (WORK(J-1)/(J-1)) * (J-1 - N) ) /(J-1)  )
      $        * (N +J -1)
       END DO
-      
+*
       DO J = 1, NRHS
          DO I = 1, N
             X(I, J) = (WORK(I)*WORK(J)) / (I + J - 1)
          END DO
       END DO
-
+*
       END
 
index 45c7cbd..144994b 100644 (file)
 *>          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides. NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] A
 *> \verbatim
 *>          A is REAL array, dimension (LDA,N)
index 29fabd4..01e4b69 100644 (file)
 *>          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )
 *> \endverbatim
 *>
+*> \param[in] RANK
+*> \verbatim
+*>          RANK is INTEGER
+*>          number of nonzero singular values of A.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
index a46e689..ddb38a9 100644 (file)
 *> \verbatim
 *>          C is REAL array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index 7aaeae9..bce84e6 100644 (file)
 *> \verbatim
 *>          C is REAL array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index 8d05756..8d5d970 100644 (file)
 *>          The values of the number of right hand sides NRHS.
 *> \endverbatim
 *>
-*> \param[in] NRHS
-*> \verbatim
-*>          NRHS is INTEGER
-*>          The number of right hand side vectors to be generated for
-*>          each linear system.
-*> \endverbatim
-*>
 *> \param[in] THRESH
 *> \verbatim
 *>          THRESH is DOUBLE PRECISION
index 91cf6cb..debecad 100644 (file)
 *>          The values of the matrix dimension N.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides, NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] THRESH
 *> \verbatim
 *>          THRESH is DOUBLE PRECISION
index 734d0f9..c6c0f20 100644 (file)
@@ -70,9 +70,9 @@
 *>          AP is COMPLEX*16 array, dimension ((NMAX*(NMAX+1))/2).
 *> \endverbatim
 *>
-*> \param[out] A2
+*> \param[out] ASAV
 *> \verbatim
-*>          A2 is COMPLEX*16 array, dimension (LDA,NMAX)
+*>          ASAV is COMPLEX*16 array, dimension (LDA,NMAX)
 *> \endverbatim
 *>
 *
index 2694c93..3410f06 100644 (file)
 *  Definition
 *  ==========
 *
-*       SUBROUTINE ZEBCHVXX( THRESH, PATH )
-* 
-*       .. Scalar Arguments ..
-*       DOUBLE PRECISION  THRESH
-*       CHARACTER*3       PATH
-*  
+*      SUBROUTINE ZEBCHVXX( THRESH, PATH )
+*
+*     .. Scalar Arguments ..
+*      DOUBLE PRECISION  THRESH
+*      CHARACTER*3       PATH
+*       ..
+*
 *  Purpose
-*  =======
+*  ======
 *
 *>\details \b Purpose:
 *>\verbatim
-*> Purpose
-*> ======
+*>  ZEBCHVXX will run Z**SVXX on a series of Hilbert matrices and then
+*>  compare the error bounds returned by Z**SVXX to see if the returned
+*>  answer indeed falls within those bounds.
 *>
-*> ZEBCHVXX will run Z**SVXX on a series of Hilbert matrices and then
-*> compare the error bounds returned by Z**SVXX to see if the returned
-*> answer indeed falls within those bounds.
+*>  Eight test ratios will be computed.  The tests will pass if they are .LT.
+*>  THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
+*>  If that value is .LE. to the component wise reciprocal condition number,
+*>  it uses the guaranteed case, other wise it uses the unguaranteed case.
 *>
-*> Eight test ratios will be computed.  The tests will pass if they are .LT.
-*> THRESH.  There are two cases that are determined by 1 / (SQRT( N ) * EPS).
-*> If that value is .LE. to the component wise reciprocal condition number,
-*> it uses the guaranteed case, other wise it uses the unguaranteed case.
+*>  Test ratios:
+*>     Let Xc be X_computed and Xt be X_truth.
+*>     The norm used is the infinity norm.
 *>
-*> Test ratios:
-*>    Let Xc be X_computed and Xt be X_truth.
-*>    The norm used is the infinity norm.
-
-*>    Let A be the guaranteed case and B be the unguaranteed case.
+*>     Let A be the guaranteed case and B be the unguaranteed case.
+*>
+*>       1. Normwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
+*>          ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: For this case, CGESVXX should just return 1.  If it is less than
+*>          one, treat it the same as in 1A.  Otherwise it fails. (Set test
+*>          ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
 *>
-*>      1. Normwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc - Xt ) / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ) and
-*>         ERRBND( *, nwise_i, bnd_i ) .LE. MAX(SQRT(N),10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, nwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: For this case, CGESVXX should just return 1.  If it is less than
-*>         one, treat it the same as in 1A.  Otherwise it fails. (Set test
-*>         ratio to ERRBND( *, nwise_i, bnd_i ) * THRESH?)
+*>       2. Componentwise guaranteed forward error bound.
+*>       A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
+*>          for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
+*>          If these conditions are met, the test ratio is set to be
+*>          ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
+*>       B: Same as normwise test ratio.
 *>
-*>      2. Componentwise guaranteed forward error bound.
-*>      A: norm ( abs( Xc(j) - Xt(j) ) ) / norm (Xt(j)) .LE. ERRBND( *, cwise_i, bnd_i )
-*>         for all j .AND. ERRBND( *, cwise_i, bnd_i ) .LE. MAX(SQRT(N), 10) * EPS.
-*>         If these conditions are met, the test ratio is set to be
-*>         ERRBND( *, cwise_i, bnd_i ) / MAX(SQRT(N), 10).  Otherwise it is 1/EPS.
-*>      B: Same as normwise test ratio.
+*>       3. Backwards error.
+*>       A: The test ratio is set to BERR/EPS.
+*>       B: Same test ratio.
 *>
-*>      3. Backwards error.
-*>      A: The test ratio is set to BERR/EPS.
-*>      B: Same test ratio.
+*>       4. Reciprocal condition number.
+*>       A: A condition number is computed with Xt and compared with the one
+*>          returned from CGESVXX.  Let RCONDc be the RCOND returned by CGESVXX
+*>          and RCONDt be the RCOND from the truth value.  Test ratio is set to
+*>          MAX(RCONDc/RCONDt, RCONDt/RCONDc).
+*>       B: Test ratio is set to 1 / (EPS * RCONDc).
 *>
-*>      4. Reciprocal condition number.
-*>      A: A condition number is computed with Xt and compared with the one
-*>         returned from CGESVXX.  Let RCONDc be the RCOND returned by CGESVXX
-*>         and RCONDt be the RCOND from the truth value.  Test ratio is set to
-*>         MAX(RCONDc/RCONDt, RCONDt/RCONDc).
-*>      B: Test ratio is set to 1 / (EPS * RCONDc).
+*>       5. Reciprocal normwise condition number.
+*>       A: The test ratio is set to
+*>          MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
 *>
-*>      5. Reciprocal normwise condition number.
-*>      A: The test ratio is set to
-*>         MAX(ERRBND( *, nwise_i, cond_i ) / NCOND, NCOND / ERRBND( *, nwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, nwise_i, cond_i )).
+*>       6. Reciprocal componentwise condition number.
+*>       A: Test ratio is set to
+*>          MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
+*>       B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
 *>
-*>      6. Reciprocal componentwise condition number.
-*>      A: Test ratio is set to
-*>         MAX(ERRBND( *, cwise_i, cond_i ) / CCOND, CCOND / ERRBND( *, cwise_i, cond_i )).
-*>      B: Test ratio is set to 1 / (EPS * ERRBND( *, cwise_i, cond_i )).
+*>     .. Parameters ..
+*>     NMAX is determined by the largest number in the inverse of the hilbert
+*>     matrix.  Precision is exhausted when the largest entry in it is greater
+*>     than 2 to the power of the number of bits in the fraction of the data
+*>     type used plus one, which is 24 for single precision.
+*>     NMAX should be 6 for single and 11 for double.
+*> \endverbatim
 *>
-*>    .. Parameters ..
-*>    NMAX is determined by the largest number in the inverse of the hilbert
-*>    matrix.  Precision is exhausted when the largest entry in it is greater
-*>    than 2 to the power of the number of bits in the fraction of the data
-*>    type used plus one, which is 24 for single precision.
-*>    NMAX should be 6 for single and 11 for double.
+*
+*  Authors
+*  =======
+*
+*> \author Univ. of Tennessee 
+*> \author Univ. of California Berkeley 
+*> \author Univ. of Colorado Denver 
+*> \author NAG Ltd. 
+*
+*> \date November 2011
+*
+*> \ingroup complex16_lin
+*
+*  =====================================================================
+      SUBROUTINE ZEBCHVXX( THRESH, PATH )
+      IMPLICIT NONE
+*     .. Scalar Arguments ..
+      DOUBLE PRECISION  THRESH
+      CHARACTER*3       PATH
 
       INTEGER            NMAX, NPARAMS, NERRBND, NTESTS, KL, KU
       PARAMETER          (NMAX = 10, NPARAMS = 2, NERRBND = 3,
      $                    NTESTS = 6)
 
-*>    .. Local Scalars ..
+*     .. Local Scalars ..
       INTEGER            N, NRHS, INFO, I ,J, k, NFAIL, LDA,
      $                   N_AUX_TESTS, LDAB, LDAFB
       CHARACTER          FACT, TRANS, UPLO, EQUED
      $                   CONDTHRESH, ERRTHRESH
       COMPLEX*16         ZDUM
 
-*>    .. Local Arrays ..
+*     .. Local Arrays ..
       DOUBLE PRECISION   TSTRAT(NTESTS), RINV(NMAX), PARAMS(NPARAMS),
      $                   S(NMAX),R(NMAX),C(NMAX),RWORK(3*NMAX),
      $                   DIFF(NMAX, NMAX),
      $                   ABCOPY( (NMAX-1)+(NMAX-1)+1, NMAX ),
      $                   AFB( 2*(NMAX-1)+(NMAX-1)+1, NMAX )
 
-*>    .. External Functions ..
+*     .. External Functions ..
       DOUBLE PRECISION   DLAMCH
 
-*>    .. External Subroutines ..
+*     .. External Subroutines ..
       EXTERNAL           ZLAHILB, ZGESVXX, ZPOSVXX, ZSYSVXX,
      $                   ZGBSVXX, ZLACPY, LSAMEN
       LOGICAL            LSAMEN
 
-*>    .. Intrinsic Functions ..
+*     .. Intrinsic Functions ..
       INTRINSIC          SQRT, MAX, ABS, DBLE, DIMAG
 
-*>    .. Statement Functions ..
+*     .. Statement Functions ..
       DOUBLE PRECISION   CABS1
 
-*>    .. Statement Function Definitions ..
+*     .. Statement Function Definitions ..
       CABS1( ZDUM ) = ABS( DBLE( ZDUM ) ) + ABS( DIMAG( ZDUM ) )
 
-*>    .. Parameters ..
+*     .. Parameters ..
       INTEGER            NWISE_I, CWISE_I
       PARAMETER          (NWISE_I = 1, CWISE_I = 1)
       INTEGER            BND_I, COND_I
       PARAMETER          (BND_I = 2, COND_I = 3)
 
-*> Create the loop to test out the Hilbert matrices
+*  Create the loop to test out the Hilbert matrices
 
       FACT = 'E'
       UPLO = 'U'
       LDAFB = 2*(NMAX-1)+(NMAX-1)+1
       C2 = PATH( 2: 3 )
 
-*>    Main loop to test the different Hilbert Matrices.
+*     Main loop to test the different Hilbert Matrices.
 
       printed_guide = .false.
 
          NRHS = n
          M = MAX(SQRT(DBLE(N)), 10.0D+0)
 
-*>       Generate the Hilbert matrix, its inverse, and the
-*>       right hand side, all scaled by the LCM(1,..,2N-1).
+*        Generate the Hilbert matrix, its inverse, and the
+*        right hand side, all scaled by the LCM(1,..,2N-1).
          CALL ZLAHILB(N, N, A, LDA, INVHILB, LDA, B,
      $        LDA, WORK, INFO, PATH)
 
-*>       Copy A into ACOPY.
+*        Copy A into ACOPY.
          CALL ZLACPY('ALL', N, N, A, NMAX, ACOPY, NMAX)
 
-*>       Store A in band format for GB tests
+*        Store A in band format for GB tests
          DO J = 1, N
             DO I = 1, KL+KU+1
                AB( I, J ) = (0.0D+0,0.0D+0)
             END DO
          END DO
 
-*>       Copy AB into ABCOPY.
+*        Copy AB into ABCOPY.
          DO J = 1, N
             DO I = 1, KL+KU+1
                ABCOPY( I, J ) = (0.0D+0,0.0D+0)
          END DO
          CALL ZLACPY('ALL', KL+KU+1, N, AB, LDAB, ABCOPY, LDAB)
 
-*>       Call Z**SVXX with default PARAMS and N_ERR_BND = 3.
+*        Call Z**SVXX with default PARAMS and N_ERR_BND = 3.
          IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
             CALL ZSYSVXX(FACT, UPLO, N, NRHS, ACOPY, LDA, AF, LDA,
      $           IPIV, EQUED, S, B, LDA, X, LDA, ORCOND,
             END IF
          END IF
 
-*>       Calculating the difference between Z**SVXX's X and the true X.
+*        Calculating the difference between Z**SVXX's X and the true X.
          DO I = 1,N
             DO J =1,NRHS
                DIFF(I,J) = X(I,J) - INVHILB(I,J)
             END DO
          END DO
 
-*>       Calculating the RCOND
+*        Calculating the RCOND
          RNORM = 0
          RINORM = 0
          IF ( LSAMEN( 2, C2, 'PO' ) .OR. LSAMEN( 2, C2, 'SY' ) .OR.
          RNORM = RNORM / CABS1(A(1, 1))
          RCOND = 1.0D+0/(RNORM * RINORM)
 
-*>       Calculating the R for normwise rcond.
+*        Calculating the R for normwise rcond.
          DO I = 1, N
             RINV(I) = 0.0D+0
          END DO
             END DO
          END DO
 
-*>       Calculating the Normwise rcond.
+*        Calculating the Normwise rcond.
          RINORM = 0.0D+0
          DO I = 1, N
             SUMRI = 0.0D+0
@@ -453,7 +472,7 @@ c$$$         WRITE(*,*) 'Reciprocal condition number: ',ERRBND(NRHS,cwise_i,cond
 c$$$         WRITE(*,*) 'Raw error estimate: ',ERRBND(NRHS,cwise_i,rawbnd_i)
 c$$$         print *, 'Info: ', info
 c$$$         WRITE(*,*)
-*>        WRITE(*,*) 'TSTRAT: ',TSTRAT
+*         WRITE(*,*) 'TSTRAT: ',TSTRAT
 
       END DO
 
@@ -469,7 +488,7 @@ c$$$         WRITE(*,*)
  9998 FORMAT( ' Z', A2, 'SVXX: ', I6, ' out of ', I6,
      $     ' tests failed to pass the threshold' )
  9997 FORMAT( ' Z', A2, 'SVXX passed the tests of error bounds' )
-*>    Test ratios.
+*     Test ratios.
  9996 FORMAT( 3X, I2, ': Normwise guaranteed forward error', / 5X,
      $     'Guaranteed case: if norm ( abs( Xc - Xt )',
      $     ' / norm ( Xt ) .LE. ERRBND( *, nwise_i, bnd_i ), then',
@@ -487,33 +506,3 @@ c$$$         WRITE(*,*)
      $     ', ORCOND = ', G12.5, ', real RCOND = ', G12.5 )
 
       END
-*>\endverbatim
-*
-*  Arguments
-*  =========
-*
-*
-*  Authors
-*  =======
-*
-*> \author Univ. of Tennessee 
-*> \author Univ. of California Berkeley 
-*> \author Univ. of Colorado Denver 
-*> \author NAG Ltd. 
-*
-*> \date November 2011
-*
-*> \ingroup complex16_lin
-*
-*  =====================================================================
-      SUBROUTINE ZEBCHVXX( THRESH, PATH )
-*
-*  -- LAPACK test routine (input) --
-*  -- LAPACK is a software package provided by Univ. of Tennessee,    --
-*  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-*     November 2011
-*
-*     .. Scalar Arguments ..
-      DOUBLE PRECISION  THRESH
-      CHARACTER*3       PATH
-*
index 9d3b91f..4f2a11f 100644 (file)
 *> \verbatim
 *>          C is COMPLEX*16 array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index f35f6d3..5224a42 100644 (file)
 *> \verbatim
 *>          C is COMPLEX*16 array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index 1b44dd0..8479b3b 100644 (file)
 *       SUBROUTINE ZLAHILB(N, NRHS, A, LDA, X, LDX, B, LDB, WORK,
 *            INFO, PATH)
 * 
-* !     .. Scalar Arguments ..
+*       .. Scalar Arguments ..
 *       INTEGER N, NRHS, LDA, LDX, LDB, INFO
-* !     .. Array Arguments ..
+*       .. Array Arguments ..
 *       DOUBLE PRECISION WORK(N)
 *       COMPLEX*16 A(LDA,N), X(LDX, NRHS), B(LDB, NRHS)
 *       CHARACTER*3 PATH
-* !     ..
-* !
+*       ..
+*  
 *  Purpose
 *  =======
 *
 *>\details \b Purpose:
 *>\verbatim
-!  Purpose
-!  =======
-!
-!  ZLAHILB generates an N by N scaled Hilbert matrix in A along with
-!  NRHS right-hand sides in B and solutions in X such that A*X=B.
-!
-!  The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
-!  entries are integers.  The right-hand sides are the first NRHS
-!  columns of M * the identity matrix, and the solutions are the
-!  first NRHS columns of the inverse Hilbert matrix.
-!
-!  The condition number of the Hilbert matrix grows exponentially with
-!  its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
-!  Hilbert matrices beyond a relatively small dimension cannot be
-!  generated exactly without extra precision.  Precision is exhausted
-!  when the largest entry in the inverse Hilbert matrix is greater than
-!  2 to the power of the number of bits in the fraction of the data type
-!  used plus one, which is 24 for single precision.
-!
-!  In single, the generated solution is exact for N <= 6 and has
-!  small componentwise error for 7 <= N <= 11.
-!
+*>
+*> ZLAHILB generates an N by N scaled Hilbert matrix in A along with
+*> NRHS right-hand sides in B and solutions in X such that A*X=B.
+*>
+*> The Hilbert matrix is scaled by M = LCM(1, 2, ..., 2*N-1) so that all
+*> entries are integers.  The right-hand sides are the first NRHS
+*> columns of M * the identity matrix, and the solutions are the
+*> first NRHS columns of the inverse Hilbert matrix.
+*>
+*> The condition number of the Hilbert matrix grows exponentially with
+*> its size, roughly as O(e ** (3.5*N)).  Additionally, the inverse
+*> Hilbert matrices beyond a relatively small dimension cannot be
+*> generated exactly without extra precision.  Precision is exhausted
+*> when the largest entry in the inverse Hilbert matrix is greater than
+*> 2 to the power of the number of bits in the fraction of the data type
+*> used plus one, which is 24 for single precision.
+*>
+*> In single, the generated solution is exact for N <= 6 and has
+*> small componentwise error for 7 <= N <= 11.
+*>
 *>\endverbatim
 *
 *  Arguments
 *  =========
 *
+*> \param[in] N
+*> \verbatim
+*>          N is INTEGER
+*>          The dimension of the matrix A.
+*> \endverbatim
+*>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is NRHS
+*>          The requested number of right-hand sides.
+*> \endverbatim
+*>
+*> \param[out] A
+*> \verbatim
+*>          A is COMPLEX array, dimension (LDA, N)
+*>          The generated scaled Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDA
+*> \verbatim
+*>          LDA is INTEGER
+*>          The leading dimension of the array A.  LDA >= N.
+*> \endverbatim
+*>
+*> \param[out] X
+*> \verbatim
+*>          X is COMPLEX array, dimension (LDX, NRHS)
+*>          The generated exact solutions.  Currently, the first NRHS
+*>          columns of the inverse Hilbert matrix.
+*> \endverbatim
+*>
+*> \param[in] LDX
+*> \verbatim
+*>          LDX is INTEGER
+*>          The leading dimension of the array X.  LDX >= N.
+*> \endverbatim
+*>
+*> \param[out] B
+*> \verbatim
+*>          B is REAL array, dimension (LDB, NRHS)
+*>          The generated right-hand sides.  Currently, the first NRHS
+*>          columns of LCM(1, 2, ..., 2*N-1) * the identity matrix.
+*> \endverbatim
+*>
+*> \param[in] LDB
+*> \verbatim
+*>          LDB is INTEGER
+*>          The leading dimension of the array B.  LDB >= N.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*>          WORK is REAL array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*>          INFO is INTEGER
+*>          = 0: successful exit
+*>          = 1: N is too large; the data is still generated but may not
+*>               be not exact.
+*>          < 0: if INFO = -i, the i-th argument had an illegal value
+*> \endverbatim
+*>
+*> \param[in] PATH
+*> \verbatim
+*>          PATH is CHARACTER*3
+*>          The LAPACK path name.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2011
 *
-!     .. Scalar Arguments ..
+*     .. Scalar Arguments ..
       INTEGER N, NRHS, LDA, LDX, LDB, INFO
-!     .. Array Arguments ..
+*     .. Array Arguments ..
       DOUBLE PRECISION WORK(N)
       COMPLEX*16 A(LDA,N), X(LDX, NRHS), B(LDB, NRHS)
       CHARACTER*3 PATH
-!     ..
-!
-!  =====================================================================
-
-!     .. Local Scalars ..
+*     ..
+*
+*  =====================================================================
+*     .. Local Scalars ..
       INTEGER TM, TI, R
       INTEGER M
       INTEGER I, J
       COMPLEX*16 TMP
       CHARACTER*2 C2
-
-!     .. Parameters ..
-!     NMAX_EXACT   the largest dimension where the generated data is
-!                  exact.
-!     NMAX_APPROX  the largest dimension where the generated data has
-!                  a small componentwise relative error.
-!     ??? complex uses how many bits ???
+*     ..
+*     .. Parameters ..
+*     NMAX_EXACT   the largest dimension where the generated data is
+*                  exact.
+*     NMAX_APPROX  the largest dimension where the generated data has
+*                  a small componentwise relative error.
+*     ??? complex uses how many bits ???
       INTEGER NMAX_EXACT, NMAX_APPROX, SIZE_D
       PARAMETER (NMAX_EXACT = 6, NMAX_APPROX = 11, SIZE_D = 8)
-
-!     d's are generated from random permuation of those eight elements.
+*
+*     d's are generated from random permuation of those eight elements.
       COMPLEX*16 d1(8), d2(8), invd1(8), invd2(8)
       DATA D1 /(-1,0),(0,1),(-1,-1),(0,-1),(1,0),(-1,1),(1,1),(1,-1)/
       DATA D2 /(-1,0),(0,-1),(-1,1),(0,1),(1,0),(-1,-1),(1,-1),(1,1)/
      $     (-.5,-.5),(.5,-.5),(.5,.5)/
       DATA INVD2 /(-1,0),(0,1),(-.5,-.5),(0,-1),(1,0),
      $     (-.5,.5),(.5,.5),(.5,-.5)/
-!     ..
-!     .. External Functions
+*     ..
+*     .. External Functions
       EXTERNAL ZLASET, LSAMEN
       INTRINSIC DBLE
       LOGICAL LSAMEN
-!     ..
-!     .. Executable Statements ..
+*     ..
+*     .. Executable Statements ..
       C2 = PATH( 2: 3 )
-!
-!     Test the input arguments
-!
+*
+*     Test the input arguments
+*
       INFO = 0
       IF (N .LT. 0 .OR. N .GT. NMAX_APPROX) THEN
          INFO = -1
       IF (N .GT. NMAX_EXACT) THEN
          INFO = 1
       END IF
-
-!     Compute M = the LCM of the integers [1, 2*N-1].  The largest
-!     reasonable N is small enough that integers suffice (up to N = 11).
+*
+*     Compute M = the LCM of the integers [1, 2*N-1].  The largest
+*     reasonable N is small enough that integers suffice (up to N = 11).
       M = 1
       DO I = 2, (2*N-1)
          TM = M
          END DO
          M = (M / TI) * I
       END DO
-
-!     Generate the scaled Hilbert matrix in A
-!     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
+*
+*     Generate the scaled Hilbert matrix in A
+*     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
       IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
          DO J = 1, N
             DO I = 1, N
             END DO
          END DO
       END IF
-      
-!     Generate matrix B as simply the first NRHS columns of M * the
-!     identity.
+*      
+*     Generate matrix B as simply the first NRHS columns of M * the
+*     identity.
       TMP = DBLE(M)
       CALL ZLASET('Full', N, NRHS, (0.0D+0,0.0D+0), TMP, B, LDB)
-
-!     Generate the true solutions in X.  Because B = the first NRHS
-!     columns of M*I, the true solutions are just the first NRHS columns
-!     of the inverse Hilbert matrix.
+*
+*     Generate the true solutions in X.  Because B = the first NRHS
+*     columns of M*I, the true solutions are just the first NRHS columns
+*     of the inverse Hilbert matrix.
       WORK(1) = N
       DO J = 2, N
          WORK(J) = (  ( (WORK(J-1)/(J-1)) * (J-1 - N) ) /(J-1)  )
      $        * (N +J -1)
       END DO
-
-!     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
+*
+*     If we are testing SY routines, take D1_i = D2_i, else, D1_i = D2_i*
       IF ( LSAMEN( 2, C2, 'SY' ) ) THEN
          DO J = 1, NRHS
             DO I = 1, N
index e28df4a..ae70258 100644 (file)
 *>          or the number of sub-diagonals if UPLO = 'L'.  KD >= 0.
 *> \endverbatim
 *>
+*> \param[in] NRHS
+*> \verbatim
+*>          NRHS is INTEGER
+*>          The number of right hand sides. NRHS >= 0.
+*> \endverbatim
+*>
 *> \param[in] A
 *> \verbatim
 *>          A is COMPLEX*16 array, dimension (LDA,N)
index 380b54e..bbedf4a 100644 (file)
 *>          If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS )
 *> \endverbatim
 *>
+*> \param[in] RANK
+*> \verbatim
+*>          RANK is INTEGER
+*>          number of nonzero singular values of A.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
index 5ff3eb5..37e0b09 100644 (file)
 *> \verbatim
 *>          C is COMPLEX*16 array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index c97c505..2c3caf7 100644 (file)
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is COMPLEX*16 array, dimension (LDWORK,N)
+*>          WORK is COMPLEX*16 array, dimension (LDW,N)
 *> \endverbatim
 *>
-*> \param[in] LDWORK
+*> \param[in] LDW
 *> \verbatim
-*>          LDWORK is INTEGER
-*>          The leading dimension of the array WORK.  LDWORK >= max(1,N).
+*>          LDW is INTEGER
+*>          The leading dimension of the array WORK.  LDW >= max(1,N).
 *> \endverbatim
 *>
 *> \param[out] RWORK
index d73ac21..a676e43 100644 (file)
 *> \verbatim
 *>          C is COMPLEX*16 array, dimension (LDC,N)
 *> \endverbatim
+*>
+*> \param[in] LDC
 *> \verbatim
-*>  LDC     (integer) INTEGER
+*>          LDC is INTEGER
 *>          The leading dimension of the array C.  LDC >= max(1,N).
 *> \endverbatim
 *>
index 4c04f0a..68661e5 100644 (file)
 *>          < 0: if INFO = -i, the i-th argument had an illegal value
 *> \endverbatim
 *>
+*> \param[in] PATH
+*> \verbatim
+*>          PATH is CHARACTER*3
+*>          The LAPACK path name.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
index 53df508..3d68ab6 100644 (file)
 *>          < 0: if INFO = -i, the i-th argument had an illegal value
 *> \endverbatim
 *>
+*> \param[in] PATH
+*> \verbatim
+*>          PATH is CHARACTER*3
+*>          The LAPACK path name.
+*> \endverbatim
+*>
 *
 *  Authors
 *  =======
index 34d3222..6eab03c 100644 (file)
 *>                           identity matrix before applying U.
 *>              INIT = 'N'   No initialization.  Apply U to the
 *>                           input matrix A.
-*> \endverbatim
-*> \verbatim
+*>
 *>           INIT = 'I' may be used to generate square (i.e., unitary)
 *>           or rectangular orthogonal matrices (orthogonality being
 *>           in the sense of ZDOTC):
-*> \endverbatim
-*> \verbatim
+*>
 *>           For square matrices, M=N, and SIDE many be either 'L' or
 *>           'R'; the rows will be orthogonal to each other, as will the
 *>           columns.
@@ -75,8 +73,7 @@
 *>           For matrices where M > N, just use the previous
 *>           explanation, interchanging 'L' and 'R' and "rows" and
 *>           "columns".
-*> \endverbatim
-*> \verbatim
+*>
 *>           Not modified.
 *> \endverbatim
 *>
 *>          N is INTEGER
 *>           Number of columns of A. Not modified.
 *> \endverbatim
+*>
+*> \param[in,out] A
 *> \verbatim
-*>  A        COMPLEX*16 array, dimension ( LDA, N )
+*>           A is COMPLEX*16 array, dimension ( LDA, N )
 *>           Input and output array. Overwritten by U A ( if SIDE = 'L' )
 *>           or by A U ( if SIDE = 'R' )
 *>           or by U A U* ( if SIDE = 'C')