# Matrix3By3Symmetric Structure

A 3-by-3 symmetric matrix. This type is often used to represent position covariance.

Namespace:  AGI.Foundation.Coordinates
Assembly:  AGI.Foundation.Core (in AGI.Foundation.Core.dll) Version: 19.4.401.0 (19.4.401.0)
Syntax
```public struct Matrix3By3Symmetric : IEquatable<Matrix3By3Symmetric>,
IEquatable<Matrix3By3>```

The Matrix3By3Symmetric type exposes the following members.

Constructors
NameDescription
Matrix3By3Symmetric
Initializes this instance as a symmetrical matrix constructed from the given symmetrical or nearly symmetrical Matrix3By3. Mxy and Myx of this matrix will be equal to the average Mxy and Myx of the given matrix.
Top
Properties
NameDescription
Identity
Gets a Matrix3By3Symmetric representing an identity transformation.
IsUndefined
Gets a value indicating whether any of the matrix values are NaN.
Item
Accesses the matrix elements using zero-based indexing.
M11
Gets the element in the first row, first column.
M12
Gets the element in the first row, second column.
M13
Gets the element in the first row, third column.
M21
Gets the element in the second row, first column.
M22
Gets the element in the second row, second column.
M23
Gets the element in the second row, third column.
M31
Gets the element in the third row, first column.
M32
Gets the element in the third row, second column.
M33
Gets the element in the third row, third column.
Undefined
Gets a Matrix3By3Symmetric with elements of NaN.
Zero
Gets a Matrix3By3Symmetric representing the zero matrix.
Top
Methods
NameDescription
Adds a matrix to this matrix.
Adds a matrix to this matrix.
Determinant
Calculates the determinant of the matrix.
DiagonalMatrix(Cartesian)
Forms a diagonal matrix from the input vector.
DiagonalMatrix(UnitCartesian)
Forms a diagonal matrix from the input unit vector.
DiagonalMatrix(Double, Double, Double)
Forms a diagonal matrix from the input elements.
EigenDecomposition
Determines the eigenvectors and eigenvalues of the matrix. The eigenvalues appear in ascending order (smallest to largest) down the diagonal of the Values matrix.
Equals(Object)
Indicates whether another object is exactly equal to this instance.
(Overrides ValueTypeEquals(Object).)
Equals(Matrix3By3)
Indicates whether another instance of this type is exactly equal to this instance.
Equals(Matrix3By3Symmetric)
Indicates whether another instance of this type is exactly equal to this instance.
EqualsEpsilon
Returns true if all of the elements of this matrix are within epsilon of the same elements of the specified matrix. That is, in order for the matrices to be considered equal (and for this function to return true), the absolute value of the difference between each of their elements must be less than or equal to epsilon.
FrobeniusNorm
Computes the Frobenius norm of the matrix.
FrobeniusNormSquared
Computes the square of the Frobenius norm of the matrix.
FromLowerTriangular(Matrix3By3)
Forms a symmetric matrix from the lower triangular elements of the provided matrix.
FromLowerTriangular(Double, Double, Double, Double, Double, Double)
Forms a symmetric matrix from the lower triangular elements.
FromUpperTriangular(Matrix3By3)
Forms a symmetric matrix from the upper triangular elements of the provided matrix.
FromUpperTriangular(Double, Double, Double, Double, Double, Double)
Forms a symmetric matrix from the upper triangular elements.
GetHashCode
Returns a hash code for this instance, which is suitable for use in hashing algorithms and data structures like a hash table.
(Overrides ValueTypeGetHashCode.)
GetType
Gets the Type of the current instance.
(Inherited from Object.)
Invert
Inverts the matrix.
Multiply(Double)
Multiplies this matrix by a scalar.
Multiply(Cartesian)
Forms a new Cartesian vector as the product of this 3-by-3 matrix and the provided Cartesian vector.
Multiply(Matrix3By3)
Multiplies this matrix by a matrix.
Multiply(Matrix3By3Symmetric)
Multiplies this matrix by a matrix.
Subtract(Matrix3By3)
Subtracts a matrix from this matrix.
Subtract(Matrix3By3Symmetric)
Subtracts a matrix from this matrix.
ToString
Returns the fully qualified type name of this instance.
(Inherited from ValueType.)
Transpose
Transposes the matrix.
Top
Operators
NameDescription
Adds a matrix to this matrix.
Adds a matrix to this matrix.
Equality
Returns if the two instances are exactly equal.
Inequality
Returns if the two instances are not exactly equal.
Multiply(Double, Matrix3By3Symmetric)
Multiplies a scalar by a matrix.
Multiply(Matrix3By3Symmetric, Cartesian)
Multiplies the 3-by-3 matrix by the Cartesian vector.
Multiply(Matrix3By3Symmetric, Matrix3By3)
Multiplies the left matrix by the right matrix.
Multiply(Matrix3By3Symmetric, Matrix3By3Symmetric)
Multiplies the left matrix by the right matrix.
Multiply(Matrix3By3Symmetric, Double)
Multiplies a matrix by a scalar.
Subtraction(Matrix3By3Symmetric, Matrix3By3)
Subtracts the second matrix from the first.
Subtraction(Matrix3By3Symmetric, Matrix3By3Symmetric)
Subtracts the second matrix from the first.
Top