int i, j;
int m = A.Nrows(); // number of rows
int n = A.Ncols(); // number of columns
Real r = A.AsScalar(); // value of 1x1 matrix
Real ssq = A.SumSquare(); // sum of squares of elements
Real sav = A.SumAbsoluteValue(); // sum of absolute values
Real s = A.Sum(); // sum of values
Real mv = A.MaximumAbsoluteValue(); // maximum of absolute values
Real mv = A.MinimumAbsoluteValue(); // minimum of absolute values
Real mv = A.Maximum(); // maximum value
Real mv = A.Minimum(); // minimum value
Real mv = A.MaximumAbsoluteValue1(i); // maximum of absolute values
Real mv = A.MinimumAbsoluteValue1(i); // minimum of absolute values
Real mv = A.Maximum1(i); // maximum value
Real mv = A.Minimum1(i); // minimum value
Real mv = A.MaximumAbsoluteValue2(i,j);// maximum of absolute values
Real mv = A.MinimumAbsoluteValue2(i,j);// minimum of absolute values
Real mv = A.Maximum2(i,j); // maximum value
Real mv = A.Minimum2(i,j); // minimum value
Real norm = A.Norm1(); // maximum of sum of absolute
values of elements of a column
Real norm = A.NormInfinity(); // maximum of sum of absolute
values of elements of a row
Real t = A.Trace(); // trace
Real d = A.Determinant(); // determinant
LogAndSign ld = A.LogDeterminant(); // log of determinant
bool z = A.IsZero(); // test all elements zero
MatrixType mt = A.Type(); // type of matrix
Real* s = Store(); // pointer to array of elements
int l = Storage(); // length of array of elements
bool s = A.IsSingular(); // A is a CroutMatrix or
BandLUMatrix
MatrixBandWidth mbw = A.BandWidth(); // upper and lower bandwidths
The functions A.MaximumAbsoluteValue(), A.MinimumAbsoluteValue(), A.Maximum() and A.Minimum() throw an exception if A has no rows or no columns. The versions A.MaximumAbsoluteValue1(i), etc return the location of the extreme element in a RowVector, ColumnVector or DiagonalMatrix. The versions A.MaximumAbsoluteValue2(i,j), etc return the row and column numbers of the extreme element. These versions also throw an exception if A has no rows or no columns. If the extreme value occurs more than once the location of the last one is given.
A.LogDeterminant() returns a value of type LogAndSign. If ld is of type LogAndSign use
ld.Value() to get the value of the determinant
ld.Sign() to get the sign of the determinant (values 1, 0, -1)
ld.LogValue() to get the log of the absolute value.
Note that the direct use of the function Determinant() will often
cause a floating point overflow exception.
A.IsZero() returns Boolean value true if the matrix A has all elements equal to 0.0.
IsSingular is defined only for CroutMatrix and BandLUMatrix. It returns true if one of the diagonal elements of the LU decomposition is exactly zero.
MatrixType mt = A.Type() returns the type of a matrix. Use (char*)mt to get a string (UT, LT, Rect, Sym, Diag, Band, UB, LB, Crout, BndLU) showing the type (Vector types are returned as Rect).
MatrixBandWidth has member functions Upper() and Lower() for finding the upper and lower bandwidths (number of diagonals above and below the diagonal, both zero for a diagonal matrix). For non-band matrices -1 is returned for both these values.
The versions Sum(A), SumSquare(A), SumAbsoluteValue(A), MaximumAbsoluteValue(A), MinimumAbsoluteValue(A), Maximum(A), Minimum(A), Trace(A), LogDeterminant(A), Determinant(A), Norm1(A), NormInfinity(A) can be used in place of A.Sum(), A.SumSquare(), A.SumAbsoluteValue(), A.MaximumAbsoluteValue(), A.MinimumAbsoluteValue(), A.Maximum(), A.Minimum(), A.Trace(), A.LogDeterminant(), A.Norm1(), A.NormInfinity().