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 |