SpecialMatrix

Advanced Analysis Library Only

AnalysisLibErrType SpecialMatrix (int matrixType, int matrixSize, double inputArray1[], int sizeArray1, double inputArray2[], int sizeArray2, void *outputMatrix);

Purpose

Generates a special type of real matrix depending on the value of matrixType. There are five possible matrix types: Identity, Diagonal, Toeplitz, Vandermonde, and Companion.

Parameters

Input
Name Type Description
matrixType integer Type of matrix to generate.

The following table shows each matrix type and its behavior. Let n represent matrixSize, x represent inputArray1, nx represent sizeArray1, y represent inputArray2, ny represent sizeArray2, and B represent the outputMatrix.

Matrix Type Value Behavior
Identity 0 SpecialMatrix generates an n-by-n identity matrix.
Diagonal 1 SpecialMatrix generates an nx-by-nx diagonal matrix with diagonal elements that are the elements of x.
Toeplitz 2 SpecialMatrix generates an nx-by-ny Toeplitz matrix, which has x as its first column and y as its first row. If the first element of x and y are different, SpecialMatrix uses the first element of x.
Vandermonde 3 SpecialMatrix generates an nx-by-nx Vandermonde matrix in which the kth column, for k = 0, 1, 2, . . ., nx — 1, equals the (nx — k —1)th power of the elements of x. The elements of a Vandermonde matrix are as follows:

bi,j = xinx — j — 1 where i, j = 0, 1, . . ., nx — 1
Companion 4 SpecialMatrix generates an nx — 1-by-nx — 1 companion matrix. Assuming that the vector x consists of polynomial coefficients where the first element of x is the coefficient of the highest order and the last element of x is the constant term in the polynomial, SpecialMatrix constructs the corresponding companion matrix as follows:

The first row of the matrix is
for j = 1, 2, . . ., nx — 1

and the remaining rows of the generated matrix form an identity matrix. The eigenvalues of a companion matrix contain the roots of the corresponding polynomial.
matrixSize integer Number of rows and columns to generate when matrixType is Identity matrix.
inputArray1 double-precision array Complex vector used to generate a Diagonal matrix, Toeplitz matrix, Vandermonde matrix, or Companion matrix.
sizeArray1 integer Number of elements in vector inputArray1.
inputArray2 double-precision array Second vector to use to generate the Toeplitz matrix.
sizeArray2 integer Number of elements in vector inputArray2.
Output
Name Type Description
outputMatrix numeric array Generated matrix as an array of doubles.

Return Value

Name Type Description
status AnalysisLibErrType A value that specifies the type of error that occurred. Refer to analysis.h for definitions of these constants.