Matrix.DetectMtxType Method

TMtxType DetectMtxType(Boolean CheckPosDef)

Determines type of the matrix.

#NameTypeDescription
1CheckPosDefBoolean

Returns: TMtxType

Remarks:

Tests the calling matrix and returns the Dew.Math.TMtxType of the calling of matrix. The following types are supported:

  • mtSymmPosDef = symmetric positive definite matrix
  • mtSymmetric = symmetric matrix
  • mtHermPosDef = Hermitian positive definite matrix
  • mtHermitian = Hermitian matrix
  • mtTriangle = triangular matrix, with unit or non unit main diagonal
  • mtGeneral = general matrix (none of the above)

Checking for positive definite matrix can be very expensive (O(n) = 1/3*n^3). Therefore the ChekPosDef parameter is False by default, unless the user specifies otherwise. The method will not detect banded matrix storage.

Examples
Vector X;
Vector B;
Matrix A;
TMtxType at;
B.SetIt(false,new double[] {0,2});
A.SetIt(2,2,false,[1,2,
2,4]);  // 2x2 real matrix

at = A.DetectMtxType;
A.LUSolve(B,X,at);
// This is the same for this example (except slower)
A.LUSolve(B,X,mtSymmetric);
// You could also specify
A.AutoMtxType = true
A.LUSolve(B,X);  // the type is autodetected