LAPACK  3.10.1
LAPACK: Linear Algebra PACKage

◆ zqrt13()

subroutine zqrt13 ( integer  SCALE,
integer  M,
integer  N,
complex*16, dimension( lda, * )  A,
integer  LDA,
double precision  NORMA,
integer, dimension( 4 )  ISEED 
)

ZQRT13

Purpose:
 ZQRT13 generates a full-rank matrix that may be scaled to have large
 or small norm.
Parameters
[in]SCALE
          SCALE is INTEGER
          SCALE = 1: normally scaled matrix
          SCALE = 2: matrix scaled up
          SCALE = 3: matrix scaled down
[in]M
          M is INTEGER
          The number of rows of the matrix A.
[in]N
          N is INTEGER
          The number of columns of A.
[out]A
          A is COMPLEX*16 array, dimension (LDA,N)
          The M-by-N matrix A.
[in]LDA
          LDA is INTEGER
          The leading dimension of the array A.
[out]NORMA
          NORMA is DOUBLE PRECISION
          The one-norm of A.
[in,out]ISEED
          ISEED is integer array, dimension (4)
          Seed for random number generator
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 90 of file zqrt13.f.

91 *
92 * -- LAPACK test routine --
93 * -- LAPACK is a software package provided by Univ. of Tennessee, --
94 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
95 *
96 * .. Scalar Arguments ..
97  INTEGER LDA, M, N, SCALE
98  DOUBLE PRECISION NORMA
99 * ..
100 * .. Array Arguments ..
101  INTEGER ISEED( 4 )
102  COMPLEX*16 A( LDA, * )
103 * ..
104 *
105 * =====================================================================
106 *
107 * .. Parameters ..
108  DOUBLE PRECISION ONE
109  parameter( one = 1.0d0 )
110 * ..
111 * .. Local Scalars ..
112  INTEGER INFO, J
113  DOUBLE PRECISION BIGNUM, SMLNUM
114 * ..
115 * .. External Functions ..
116  DOUBLE PRECISION DLAMCH, DZASUM, ZLANGE
117  EXTERNAL dlamch, dzasum, zlange
118 * ..
119 * .. External Subroutines ..
120  EXTERNAL dlabad, zlarnv, zlascl
121 * ..
122 * .. Intrinsic Functions ..
123  INTRINSIC dble, dcmplx, sign
124 * ..
125 * .. Local Arrays ..
126  DOUBLE PRECISION DUMMY( 1 )
127 * ..
128 * .. Executable Statements ..
129 *
130  IF( m.LE.0 .OR. n.LE.0 )
131  $ RETURN
132 *
133 * benign matrix
134 *
135  DO 10 j = 1, n
136  CALL zlarnv( 2, iseed, m, a( 1, j ) )
137  IF( j.LE.m ) THEN
138  a( j, j ) = a( j, j ) + dcmplx( sign( dzasum( m, a( 1, j ),
139  $ 1 ), dble( a( j, j ) ) ) )
140  END IF
141  10 CONTINUE
142 *
143 * scaled versions
144 *
145  IF( scale.NE.1 ) THEN
146  norma = zlange( 'Max', m, n, a, lda, dummy )
147  smlnum = dlamch( 'Safe minimum' )
148  bignum = one / smlnum
149  CALL dlabad( smlnum, bignum )
150  smlnum = smlnum / dlamch( 'Epsilon' )
151  bignum = one / smlnum
152 *
153  IF( scale.EQ.2 ) THEN
154 *
155 * matrix scaled up
156 *
157  CALL zlascl( 'General', 0, 0, norma, bignum, m, n, a, lda,
158  $ info )
159  ELSE IF( scale.EQ.3 ) THEN
160 *
161 * matrix scaled down
162 *
163  CALL zlascl( 'General', 0, 0, norma, smlnum, m, n, a, lda,
164  $ info )
165  END IF
166  END IF
167 *
168  norma = zlange( 'One-norm', m, n, a, lda, dummy )
169  RETURN
170 *
171 * End of ZQRT13
172 *
double precision function dlamch(CMACH)
DLAMCH
Definition: dlamch.f:69
subroutine dlabad(SMALL, LARGE)
DLABAD
Definition: dlabad.f:74
double precision function zlange(NORM, M, N, A, LDA, WORK)
ZLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
Definition: zlange.f:115
subroutine zlascl(TYPE, KL, KU, CFROM, CTO, M, N, A, LDA, INFO)
ZLASCL multiplies a general rectangular matrix by a real scalar defined as cto/cfrom.
Definition: zlascl.f:143
subroutine zlarnv(IDIST, ISEED, N, X)
ZLARNV returns a vector of random numbers from a uniform or normal distribution.
Definition: zlarnv.f:99
double precision function dzasum(N, ZX, INCX)
DZASUM
Definition: dzasum.f:72
Here is the call graph for this function:
Here is the caller graph for this function: