Table 7 List of functions implemented for the Matrix<M,N> class.

From: A new advance on dimensional-aware scalar, vector and matrix operations in C++

Operation

Method

Description

 

\( {\mathcal {A}}_{m,n} < \infty \)

a.isFinite()

All elements are finite

 

\( {\mathcal {A}}_{m,n} = \pm \infty \)

a.isInfinite()

Any element is not finite

 

\( {\mathcal {A}}_{m,n} \notin {\mathbb {R}} \)

a.isNan()

Any element is a nan

 

\( {\mathcal {A}} \approx {\mathcal {B}} \)

a.isNear(b)

Is approximate equals

 

\( {\mathcal {A}}_{m,n} \in {\mathbb {R}} \backslash \{0\} \)

a.isNormal()

All elements are finite, real and non-zero

 

\( {\mathcal {A}}_{m,n} = 0\)

a.isNull()

All elements are zero

 

\({\mathcal {A}} = {\mathcal {I}}\)

a.isIdentity()

Is identity

\(\dagger \)

\({\mathcal {A}}^H = {\mathcal {A}}^{-1}\)

a.isUnitary()

Is unitary

\(\dagger \)

\({\mathcal {A}}_{m,n} = \overline{{\mathcal {A}}}_{n,m}\)

a.isHermitian()

Is hermitian

\(\dagger \)

\({\mathcal {A}}_{m \ne n} = 0\)

a.isDiagonal()

Is diagonal

\(\dagger \)

\({\mathcal {A}} A^T = {\mathcal {I}}\)

a.isOrthogonal()

Is orthogonal

\(\dagger \)

\(\det ({\mathcal {A}}) = 0\)

a.isSingular()

Is singular

\(\dagger \)

\({\mathcal {A}}_{m,n} = {\mathcal {A}}_{n,m}\)

a.isSymmetric()

Is symmetric

\(\dagger \)

\({\mathcal {A}}_{m,n} = -\overline{{\mathcal {A}}}_{n,m}\)

a.isSkewHermitian()

Is skew-hermitian

\(\dagger \)

\({\mathcal {A}}_{m,n} = -{\mathcal {A}}_{n,m}\)

a.isSkewSymmetric()

Is skew-symmetric

\(\dagger \)

\({\mathcal {A}}_{m,n} = -{\mathcal {A}}_{n,m}\)

a.isTriangular()

Is triangular

\(\dagger \)

\({\mathcal {A}}_{m < n} = 0\)

a.isLowerTriangular()

Is lower-triangular

\(\dagger \)

\({\mathcal {A}}_{m > n} = 0\)

a.isUpperTriangular()

Is upper-triangular

\(\dagger \)

 

a.isStrictTriangular()

Is strict-triangular

\(\dagger \)

 

a.isRowEchelon()

Is row echelon form

 
 

a.isColEchelon()

Is column echelon form

 
 

a.isRedRowEchelon()

Is reduced row echelon form

 
 

a.isRedColEchelon()

Is reduced column echelon form

 

\(\Vert {\mathcal {A}}\Vert \)

a.norm()

Euclidean row or column norm

\(\ddagger \)

\(\Vert {\mathcal {A}}\Vert ^2\)

a.normSquared()

Euclidean row or column norm squared

\(\ddagger \)

\(\Vert {\mathcal {A}}\Vert _{1}\)

a.normL1()

\(L_1\) norm

 

\(\Vert {\mathcal {A}}\Vert _{max}\)

a.normLMax()

Max norm

 

\(\Vert {\mathcal {A}}\Vert _{\infty }\)

a.normLInf()

Infinity norm

 

\(\Vert {\mathcal {A}}\Vert _{p,q}\)

a.normL(p,q)

pq norm

 

\(\Vert {\mathcal {A}}\Vert _{F}\)

a.normF()

Frobenius norm

 
  1. The \(\dagger \) symbol marks operations available for square matrix only, while \(\ddagger \) symbols is available for row or column matrix only.