Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

?latm1

Computes the entries of a matrix as specified.

Syntax

void slatm1
(
lapack_int
*mode
,
*cond
,
lapack_int
*irsign
,
lapack_int
*idist
,
lapack_int
*iseed
,
float
*d
,
lapack_int
*n
,
lapack_int
*info
);
void dlatm1
(
lapack_int
*mode
,
*cond
,
lapack_int
*irsign
,
lapack_int
*idist
,
lapack_int
*iseed
,
double
*d
,
lapack_int
*n
,
lapack_int
*info
);
void clatm1
(
lapack_int
*mode
,
*cond
,
lapack_int
*irsign
,
lapack_int
*idist
,
lapack_int
*iseed
,
lapack_complex
*d
,
lapack_int
*n
,
lapack_int
*info
);
void zlatm1
(
lapack_int
*mode
,
*cond
,
lapack_int
*irsign
,
lapack_int
*idist
,
lapack_int
*iseed
,
lapack_complex_double
*d
,
lapack_int
*n
,
lapack_int
*info
);
Include Files
  • mkl.h
Description
The
?latm1
routine computes the entries of
D
(1..
n
)
as specified by
mode
,
cond
and
irsign
.
idist
and
iseed
determine the generation of random numbers.
?latm1
is called by
slatmr
(for
slatm1
and
dlatm1
), and by
clatmr
(for
clatm1
and
zlatm1
) to generate random test matrices for LAPACK programs.
Input Parameters
mode
On entry describes how
d
is to be computed:
mode
= 0
means do not change
d
.
mode
= 1
sets
d
[0]
= 1
and
d
[1:
n
- 1]
= 1.0/
cond
mode
= 2
sets
d
[0:
n
- 2]
= 1
and
d
[
n
- 1]
=1.0/
cond
mode
= 3
sets
d
[
i
- 1]
=
cond
**(-(
i
-1)/(
n
-1))
mode
= 4
sets
d
[
i
- 1]
= 1 - (
i
-1)/(
n
-1)*(1 - 1/
cond
)
mode
= 5
sets
d
to random numbers in the range
( 1/
cond
, 1 )
such that their logarithms are uniformly distributed.
mode
= 6
sets
d
to random numbers from same distribution as the rest of the matrix.
mode
< 0
has the same meaning as
abs(
mode
)
, except that the order of the elements of
d
is reversed.
Thus if
mode
is positive,
d
has entries ranging from 1 to
1/
cond
, if negative, from
1/
cond
to 1.
cond
On entry, used as described under
mode
above. If used, it must be
1
.
irsign
On entry, if
mode
is not -6, 0, or 6, determines sign of entries of
d
.
If
irsign
= 0
, entries of
d
are unchanged.
If
irsign
= 1
, each entry of
d
is multiplied by a random complex number uniformly distributed with absolute value 1.
idist
Specifies the distribution of the random numbers.
For
slatm1
and
dlatm1
:
= 1: uniform (0,1)
= 2: uniform (-1,1)
= 3: normal (0,1)
For
clatm1
and
zlatm1
:
= 1: real and imaginary parts each uniform (0,1)
= 2: real and imaginary parts each uniform (-1,1)
= 3: real and imaginary parts each normal (0,1)
= 4: complex number uniform in disk(0, 1)
iseed
Array, size (4).
Specifies the seed of the random number generator. The random number generator uses a linear congruential sequence limited to small integers, and so should produce machine independent random numbers. The values of
iseed
[3]
are changed on exit, and can be used in the next call to
?latm1
to continue the same random number sequence.
d
Array, size
n
.
n
Number of entries of
d
.
Output Parameters
iseed
On exit, the seed is updated.
d
On exit,
d
is updated, unless
mode
= 0
.
info
If
info
= 0
, the execution is successful.
If
info
= -1
,
mode
is not in range -6 to 6.
If
info
= -2
,
mode
is neither -6, 0 nor 6, and
irsign
is neither 0 nor 1.
If
info
= -3
,
mode
is neither -6, 0 nor 6 and
cond
is less than 1.
If
info
= -4
,
mode
equals 6 or -6 and
idist
is not in range 1 to 4.
If
info
= -7
,
n
is negative.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.