# TEST_EIGEN Test Matrices for Eigenvalue Analysis

TEST_EIGEN is a C++ library which generates eigenvalue tests.

The current version of the code can only generate a symmetric or nonsymmetric matrix of arbitrary size, with eigenvalues distributed according to a normal distribution whose mean and standard deviation are specified by the user (subroutines R8SYMM_GEN and R8NSYMM_GEN).

### Languages:

TEST_EIGEN is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version and a Python version.

### Related Data and Programs:

EISPACK, a C++ library which carries out eigenvalue computations. It includes a function to compute the singular value decomposition (SVD) of a rectangular matrix. superseded by LAPACK;

JACOBI_EIGENVALUE, a C++ library which implements the Jacobi iteration for the iterative determination of the eigenvalues and eigenvectors of a real symmetric matrix.

POWER_METHOD, a C++ library which carries out the power method for finding a dominant eigenvalue and its eigenvector.

TEST_MAT, a C++ library which defines test matrices.

### Reference:

1. Robert Gregory, David Karney,
A Collection of Matrices for Testing Computational Algorithms,
Wiley, 1969,
ISBN: 0882756494,
LC: QA263.G68.
2. Pete Stewart,
Efficient Generation of Random Orthogonal Matrices With an Application to Condition Estimators,
SIAM Journal on Numerical Analysis,
Volume 17, Number 3, June 1980, pages 403-409.

### List of Routines:

• I4_MAX returns the maximum of two I4's.
• I4_MIN returns the minimum of two I4's.
• R8_ABS returns the absolute value of an R8.
• R8_NORMAL_01 samples the standard normal probability distribution.
• R8_SIGN returns the sign of an R8.
• R8_UNIFORM_01 returns a unit pseudorandom R8.
• R8BIN_PRINT prints the bins of a real vector.
• R8MAT_COPY copies one R8MAT to another.
• R8MAT_HOUSE_AXH_NEW computes A*H where H is a compact Householder matrix.
• R8MAT_IDENTITY returns an identity matrix.
• R8MAT_MM_NEW multiplies two matrices.
• R8MAT_ORTH_UNIFORM returns a random orthogonal matrix.
• R8MAT_PRINT prints an R8MAT.
• R8MAT_PRINT_SOME prints some of an R8MAT.
• R8NSYMM_TEST determines a nonsymmetric matrix with a certain eigenstructure.
• R8SYMM_TEST determines a symmetric matrix with a certain eigenstructure.
• R8VEC_BIN computes bins based on a given R8VEC.
• R8VEC_COPY copies an R8VEC.
• R8VEC_HOUSE_COLUMN defines a Householder premultiplier that "packs" a column.
• R8VEC_MAX returns the value of the maximum element in an R8VEC.
• R8VEC_MIN returns the value of the minimum element in an R8VEC.
• R8VEC_NORM_L2 returns the L2 norm of an R8VEC.
• R8VEC_NORMAL returns a scaled pseudonormal R8VEC.
• R8VEC_PRINT prints an R8VEC.
• R8VEC_UNIFORM_01_NEW returns a new unit pseudorandom R8VEC.
• R8VEC_ZERO_NEW creates and zeroes an R8VEC.
• R8VEC2_PRINT prints an R8VEC2.
• TIMESTAMP prints the current YMDHMS date as a time stamp.

You can go up one level to the C++ source codes.

Last revised on 09 March 2018.