LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
zlaipd.f
Go to the documentation of this file.
00001 *> \brief \b ZLAIPD
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 ZLAIPD( N, A, INDA, VINDA )
00012 * 
00013 *       .. Scalar Arguments ..
00014 *       INTEGER            INDA, N, VINDA
00015 *       ..
00016 *       .. Array Arguments ..
00017 *       COMPLEX*16         A( * )
00018 *       ..
00019 *  
00020 *
00021 *> \par Purpose:
00022 *  =============
00023 *>
00024 *> \verbatim
00025 *>
00026 *> ZLAIPD sets the imaginary part of the diagonal elements of a complex
00027 *> matrix A to a large value.  This is used to test LAPACK routines for
00028 *> complex Hermitian matrices, which are not supposed to access or use
00029 *> the imaginary parts of the diagonals.
00030 *> \endverbatim
00031 *
00032 *  Arguments:
00033 *  ==========
00034 *
00035 *> \param[in] N
00036 *> \verbatim
00037 *>          N is INTEGER
00038 *>         The number of diagonal elements of A.
00039 *> \endverbatim
00040 *>
00041 *> \param[in,out] A
00042 *> \verbatim
00043 *>          A is COMPLEX*16 array, dimension
00044 *>                        (1+(N-1)*INDA+(N-2)*VINDA)
00045 *>         On entry, the complex (Hermitian) matrix A.
00046 *>         On exit, the imaginary parts of the diagonal elements are set
00047 *>         to BIGNUM = EPS / SAFMIN, where EPS is the machine epsilon and
00048 *>         SAFMIN is the safe minimum.
00049 *> \endverbatim
00050 *>
00051 *> \param[in] INDA
00052 *> \verbatim
00053 *>          INDA is INTEGER
00054 *>         The increment between A(1) and the next diagonal element of A.
00055 *>         Typical values are
00056 *>         = LDA+1:  square matrices with leading dimension LDA
00057 *>         = 2:  packed upper triangular matrix, starting at A(1,1)
00058 *>         = N:  packed lower triangular matrix, starting at A(1,1)
00059 *> \endverbatim
00060 *>
00061 *> \param[in] VINDA
00062 *> \verbatim
00063 *>          VINDA is INTEGER
00064 *>         The change in the diagonal increment between columns of A.
00065 *>         Typical values are
00066 *>         = 0:  no change, the row and column increments in A are fixed
00067 *>         = 1:  packed upper triangular matrix
00068 *>         = -1:  packed lower triangular matrix
00069 *> \endverbatim
00070 *
00071 *  Authors:
00072 *  ========
00073 *
00074 *> \author Univ. of Tennessee 
00075 *> \author Univ. of California Berkeley 
00076 *> \author Univ. of Colorado Denver 
00077 *> \author NAG Ltd. 
00078 *
00079 *> \date November 2011
00080 *
00081 *> \ingroup complex16_lin
00082 *
00083 *  =====================================================================
00084       SUBROUTINE ZLAIPD( N, A, INDA, VINDA )
00085 *
00086 *  -- LAPACK test routine (version 3.4.0) --
00087 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00088 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00089 *     November 2011
00090 *
00091 *     .. Scalar Arguments ..
00092       INTEGER            INDA, N, VINDA
00093 *     ..
00094 *     .. Array Arguments ..
00095       COMPLEX*16         A( * )
00096 *     ..
00097 *
00098 *  =====================================================================
00099 *
00100 *     .. Local Scalars ..
00101       INTEGER            I, IA, IXA
00102       DOUBLE PRECISION   BIGNUM
00103 *     ..
00104 *     .. External Functions ..
00105       DOUBLE PRECISION   DLAMCH
00106       EXTERNAL           DLAMCH
00107 *     ..
00108 *     .. Intrinsic Functions ..
00109       INTRINSIC          DBLE, DCMPLX
00110 *     ..
00111 *     .. Executable Statements ..
00112 *
00113       BIGNUM = DLAMCH( 'Epsilon' ) / DLAMCH( 'Safe minimum' )
00114       IA = 1
00115       IXA = INDA
00116       DO 10 I = 1, N
00117          A( IA ) = DCMPLX( DBLE( A( IA ) ), BIGNUM )
00118          IA = IA + IXA
00119          IXA = IXA + VINDA
00120    10 CONTINUE
00121       RETURN
00122       END
 All Files Functions