LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
zerrrq.f
Go to the documentation of this file.
00001 *> \brief \b ZERRRQ
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *  Definition:
00009 *  ===========
00010 *
00011 *       SUBROUTINE ZERRRQ( PATH, NUNIT )
00012 * 
00013 *       .. Scalar Arguments ..
00014 *       CHARACTER*3        PATH
00015 *       INTEGER            NUNIT
00016 *       ..
00017 *  
00018 *
00019 *> \par Purpose:
00020 *  =============
00021 *>
00022 *> \verbatim
00023 *>
00024 *> ZERRRQ tests the error exits for the COMPLEX*16 routines
00025 *> that use the RQ decomposition of a general matrix.
00026 *> \endverbatim
00027 *
00028 *  Arguments:
00029 *  ==========
00030 *
00031 *> \param[in] PATH
00032 *> \verbatim
00033 *>          PATH is CHARACTER*3
00034 *>          The LAPACK path name for the routines to be tested.
00035 *> \endverbatim
00036 *>
00037 *> \param[in] NUNIT
00038 *> \verbatim
00039 *>          NUNIT is INTEGER
00040 *>          The unit number for output.
00041 *> \endverbatim
00042 *
00043 *  Authors:
00044 *  ========
00045 *
00046 *> \author Univ. of Tennessee 
00047 *> \author Univ. of California Berkeley 
00048 *> \author Univ. of Colorado Denver 
00049 *> \author NAG Ltd. 
00050 *
00051 *> \date November 2011
00052 *
00053 *> \ingroup complex16_lin
00054 *
00055 *  =====================================================================
00056       SUBROUTINE ZERRRQ( PATH, NUNIT )
00057 *
00058 *  -- LAPACK test routine (version 3.4.0) --
00059 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00060 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00061 *     November 2011
00062 *
00063 *     .. Scalar Arguments ..
00064       CHARACTER*3        PATH
00065       INTEGER            NUNIT
00066 *     ..
00067 *
00068 *  =====================================================================
00069 *
00070 *     .. Parameters ..
00071       INTEGER            NMAX
00072       PARAMETER          ( NMAX = 2 )
00073 *     ..
00074 *     .. Local Scalars ..
00075       INTEGER            I, INFO, J
00076 *     ..
00077 *     .. Local Arrays ..
00078       COMPLEX*16         A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
00079      $                   W( NMAX ), X( NMAX )
00080 *     ..
00081 *     .. External Subroutines ..
00082       EXTERNAL           ALAESM, CHKXER, ZGERQ2, ZGERQF, ZGERQS, ZUNGR2,
00083      $                   ZUNGRQ, ZUNMR2, ZUNMRQ
00084 *     ..
00085 *     .. Scalars in Common ..
00086       LOGICAL            LERR, OK
00087       CHARACTER*32       SRNAMT
00088       INTEGER            INFOT, NOUT
00089 *     ..
00090 *     .. Common blocks ..
00091       COMMON             / INFOC / INFOT, NOUT, OK, LERR
00092       COMMON             / SRNAMC / SRNAMT
00093 *     ..
00094 *     .. Intrinsic Functions ..
00095       INTRINSIC          DBLE, DCMPLX
00096 *     ..
00097 *     .. Executable Statements ..
00098 *
00099       NOUT = NUNIT
00100       WRITE( NOUT, FMT = * )
00101 *
00102 *     Set the variables to innocuous values.
00103 *
00104       DO 20 J = 1, NMAX
00105          DO 10 I = 1, NMAX
00106             A( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00107      $                  -1.D0 / DBLE( I+J ) )
00108             AF( I, J ) = DCMPLX( 1.D0 / DBLE( I+J ),
00109      $                   -1.D0 / DBLE( I+J ) )
00110    10    CONTINUE
00111          B( J ) = 0.D0
00112          W( J ) = 0.D0
00113          X( J ) = 0.D0
00114    20 CONTINUE
00115       OK = .TRUE.
00116 *
00117 *     Error exits for RQ factorization
00118 *
00119 *     ZGERQF
00120 *
00121       SRNAMT = 'ZGERQF'
00122       INFOT = 1
00123       CALL ZGERQF( -1, 0, A, 1, B, W, 1, INFO )
00124       CALL CHKXER( 'ZGERQF', INFOT, NOUT, LERR, OK )
00125       INFOT = 2
00126       CALL ZGERQF( 0, -1, A, 1, B, W, 1, INFO )
00127       CALL CHKXER( 'ZGERQF', INFOT, NOUT, LERR, OK )
00128       INFOT = 4
00129       CALL ZGERQF( 2, 1, A, 1, B, W, 2, INFO )
00130       CALL CHKXER( 'ZGERQF', INFOT, NOUT, LERR, OK )
00131       INFOT = 7
00132       CALL ZGERQF( 2, 1, A, 2, B, W, 1, INFO )
00133       CALL CHKXER( 'ZGERQF', INFOT, NOUT, LERR, OK )
00134 *
00135 *     ZGERQ2
00136 *
00137       SRNAMT = 'ZGERQ2'
00138       INFOT = 1
00139       CALL ZGERQ2( -1, 0, A, 1, B, W, INFO )
00140       CALL CHKXER( 'ZGERQ2', INFOT, NOUT, LERR, OK )
00141       INFOT = 2
00142       CALL ZGERQ2( 0, -1, A, 1, B, W, INFO )
00143       CALL CHKXER( 'ZGERQ2', INFOT, NOUT, LERR, OK )
00144       INFOT = 4
00145       CALL ZGERQ2( 2, 1, A, 1, B, W, INFO )
00146       CALL CHKXER( 'ZGERQ2', INFOT, NOUT, LERR, OK )
00147 *
00148 *     ZGERQS
00149 *
00150       SRNAMT = 'ZGERQS'
00151       INFOT = 1
00152       CALL ZGERQS( -1, 0, 0, A, 1, X, B, 1, W, 1, INFO )
00153       CALL CHKXER( 'ZGERQS', INFOT, NOUT, LERR, OK )
00154       INFOT = 2
00155       CALL ZGERQS( 0, -1, 0, A, 1, X, B, 1, W, 1, INFO )
00156       CALL CHKXER( 'ZGERQS', INFOT, NOUT, LERR, OK )
00157       INFOT = 2
00158       CALL ZGERQS( 2, 1, 0, A, 2, X, B, 1, W, 1, INFO )
00159       CALL CHKXER( 'ZGERQS', INFOT, NOUT, LERR, OK )
00160       INFOT = 3
00161       CALL ZGERQS( 0, 0, -1, A, 1, X, B, 1, W, 1, INFO )
00162       CALL CHKXER( 'ZGERQS', INFOT, NOUT, LERR, OK )
00163       INFOT = 5
00164       CALL ZGERQS( 2, 2, 0, A, 1, X, B, 2, W, 1, INFO )
00165       CALL CHKXER( 'ZGERQS', INFOT, NOUT, LERR, OK )
00166       INFOT = 8
00167       CALL ZGERQS( 2, 2, 0, A, 2, X, B, 1, W, 1, INFO )
00168       CALL CHKXER( 'ZGERQS', INFOT, NOUT, LERR, OK )
00169       INFOT = 10
00170       CALL ZGERQS( 1, 1, 2, A, 1, X, B, 1, W, 1, INFO )
00171       CALL CHKXER( 'ZGERQS', INFOT, NOUT, LERR, OK )
00172 *
00173 *     ZUNGRQ
00174 *
00175       SRNAMT = 'ZUNGRQ'
00176       INFOT = 1
00177       CALL ZUNGRQ( -1, 0, 0, A, 1, X, W, 1, INFO )
00178       CALL CHKXER( 'ZUNGRQ', INFOT, NOUT, LERR, OK )
00179       INFOT = 2
00180       CALL ZUNGRQ( 0, -1, 0, A, 1, X, W, 1, INFO )
00181       CALL CHKXER( 'ZUNGRQ', INFOT, NOUT, LERR, OK )
00182       INFOT = 2
00183       CALL ZUNGRQ( 2, 1, 0, A, 2, X, W, 2, INFO )
00184       CALL CHKXER( 'ZUNGRQ', INFOT, NOUT, LERR, OK )
00185       INFOT = 3
00186       CALL ZUNGRQ( 0, 0, -1, A, 1, X, W, 1, INFO )
00187       CALL CHKXER( 'ZUNGRQ', INFOT, NOUT, LERR, OK )
00188       INFOT = 3
00189       CALL ZUNGRQ( 1, 2, 2, A, 1, X, W, 1, INFO )
00190       CALL CHKXER( 'ZUNGRQ', INFOT, NOUT, LERR, OK )
00191       INFOT = 5
00192       CALL ZUNGRQ( 2, 2, 0, A, 1, X, W, 2, INFO )
00193       CALL CHKXER( 'ZUNGRQ', INFOT, NOUT, LERR, OK )
00194       INFOT = 8
00195       CALL ZUNGRQ( 2, 2, 0, A, 2, X, W, 1, INFO )
00196       CALL CHKXER( 'ZUNGRQ', INFOT, NOUT, LERR, OK )
00197 *
00198 *     ZUNGR2
00199 *
00200       SRNAMT = 'ZUNGR2'
00201       INFOT = 1
00202       CALL ZUNGR2( -1, 0, 0, A, 1, X, W, INFO )
00203       CALL CHKXER( 'ZUNGR2', INFOT, NOUT, LERR, OK )
00204       INFOT = 2
00205       CALL ZUNGR2( 0, -1, 0, A, 1, X, W, INFO )
00206       CALL CHKXER( 'ZUNGR2', INFOT, NOUT, LERR, OK )
00207       INFOT = 2
00208       CALL ZUNGR2( 2, 1, 0, A, 2, X, W, INFO )
00209       CALL CHKXER( 'ZUNGR2', INFOT, NOUT, LERR, OK )
00210       INFOT = 3
00211       CALL ZUNGR2( 0, 0, -1, A, 1, X, W, INFO )
00212       CALL CHKXER( 'ZUNGR2', INFOT, NOUT, LERR, OK )
00213       INFOT = 3
00214       CALL ZUNGR2( 1, 2, 2, A, 2, X, W, INFO )
00215       CALL CHKXER( 'ZUNGR2', INFOT, NOUT, LERR, OK )
00216       INFOT = 5
00217       CALL ZUNGR2( 2, 2, 0, A, 1, X, W, INFO )
00218       CALL CHKXER( 'ZUNGR2', INFOT, NOUT, LERR, OK )
00219 *
00220 *     ZUNMRQ
00221 *
00222       SRNAMT = 'ZUNMRQ'
00223       INFOT = 1
00224       CALL ZUNMRQ( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00225       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00226       INFOT = 2
00227       CALL ZUNMRQ( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00228       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00229       INFOT = 3
00230       CALL ZUNMRQ( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, 1, INFO )
00231       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00232       INFOT = 4
00233       CALL ZUNMRQ( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, 1, INFO )
00234       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00235       INFOT = 5
00236       CALL ZUNMRQ( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, 1, INFO )
00237       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00238       INFOT = 5
00239       CALL ZUNMRQ( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, 1, INFO )
00240       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00241       INFOT = 5
00242       CALL ZUNMRQ( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, 1, INFO )
00243       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00244       INFOT = 7
00245       CALL ZUNMRQ( 'L', 'N', 2, 1, 2, A, 1, X, AF, 2, W, 1, INFO )
00246       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00247       INFOT = 7
00248       CALL ZUNMRQ( 'R', 'N', 1, 2, 2, A, 1, X, AF, 1, W, 1, INFO )
00249       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00250       INFOT = 10
00251       CALL ZUNMRQ( 'L', 'N', 2, 1, 0, A, 1, X, AF, 1, W, 1, INFO )
00252       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00253       INFOT = 12
00254       CALL ZUNMRQ( 'L', 'N', 1, 2, 0, A, 1, X, AF, 1, W, 1, INFO )
00255       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00256       INFOT = 12
00257       CALL ZUNMRQ( 'R', 'N', 2, 1, 0, A, 1, X, AF, 2, W, 1, INFO )
00258       CALL CHKXER( 'ZUNMRQ', INFOT, NOUT, LERR, OK )
00259 *
00260 *     ZUNMR2
00261 *
00262       SRNAMT = 'ZUNMR2'
00263       INFOT = 1
00264       CALL ZUNMR2( '/', 'N', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00265       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00266       INFOT = 2
00267       CALL ZUNMR2( 'L', '/', 0, 0, 0, A, 1, X, AF, 1, W, INFO )
00268       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00269       INFOT = 3
00270       CALL ZUNMR2( 'L', 'N', -1, 0, 0, A, 1, X, AF, 1, W, INFO )
00271       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00272       INFOT = 4
00273       CALL ZUNMR2( 'L', 'N', 0, -1, 0, A, 1, X, AF, 1, W, INFO )
00274       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00275       INFOT = 5
00276       CALL ZUNMR2( 'L', 'N', 0, 0, -1, A, 1, X, AF, 1, W, INFO )
00277       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00278       INFOT = 5
00279       CALL ZUNMR2( 'L', 'N', 0, 1, 1, A, 1, X, AF, 1, W, INFO )
00280       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00281       INFOT = 5
00282       CALL ZUNMR2( 'R', 'N', 1, 0, 1, A, 1, X, AF, 1, W, INFO )
00283       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00284       INFOT = 7
00285       CALL ZUNMR2( 'L', 'N', 2, 1, 2, A, 1, X, AF, 2, W, INFO )
00286       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00287       INFOT = 7
00288       CALL ZUNMR2( 'R', 'N', 1, 2, 2, A, 1, X, AF, 1, W, INFO )
00289       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00290       INFOT = 10
00291       CALL ZUNMR2( 'L', 'N', 2, 1, 0, A, 1, X, AF, 1, W, INFO )
00292       CALL CHKXER( 'ZUNMR2', INFOT, NOUT, LERR, OK )
00293 *
00294 *     Print a summary line.
00295 *
00296       CALL ALAESM( PATH, OK, NOUT )
00297 *
00298       RETURN
00299 *
00300 *     End of ZERRRQ
00301 *
00302       END
 All Files Functions