Click or drag to resize

Matrix Class

A two-dimensional tensor of doubles.
Inheritance Hierarchy

Namespace:  AGI.Foundation.Coordinates
Assembly:  AGI.Foundation.Core (in AGI.Foundation.Core.dll) Version: 19.5.402.0 (19.5.402.0)
Syntax
public abstract class Matrix : DefinitionalObject

The Matrix type exposes the following members.

Constructors
  NameDescription
Protected methodMatrix(Int32, Int32)
Initializes a new instance instance with the specified dimensions.
Protected methodMatrix(Matrix, CopyContext)
Initializes a new instance as a copy of an existing instance.
Top
Properties
  NameDescription
Public propertyColumnDimension
Gets the number of columns in this matrix.
Public propertyIsFrozen
Gets a value indicating whether this object is frozen. A frozen object cannot be modified and an ObjectFrozenException will be thrown if an attempt is made to do so.
(Inherited from DefinitionalObject.)
Public propertyItem
Gets or sets the value of the element at the given location.
Public propertyRowDimension
Gets the number of rows in this matrix.
Top
Methods
  NameDescription
Public methodStatic memberAdd(Matrix, Matrix)

Creates a Matrix which is the sum of the two given matrices.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public methodStatic memberAdd(Matrix, Matrix3By3)
Creates a Matrix which is the sum of the two given matrices.
Public methodStatic memberAdd(Matrix, Matrix6By6)
Creates a Matrix which is the sum of the two given matrices.
Public methodStatic memberAdd(Matrix3By3, Matrix)
Creates a Matrix which is the sum of the two given matrices.
Public methodStatic memberAdd(Matrix6By6, Matrix)
Creates a Matrix which is the sum of the two given matrices.
Public methodStatic memberAddAssign
Sets the sum Matrix to equal the element-wise addition of the leftAddend and the rightAddend.
Protected methodCheckForSameDefinition(DefinitionalObject)
Checks to determine if another instance has the same definition as this instance and returns if it does. Derived classes MUST override this method and check all new fields introduced by the derived class for definitional equivalence. It is NOT necessary to check base class fields because the base class will already have done that. When overriding this method, you should NOT call the base implementation because it will return for all derived-class instances. Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
(Overrides DefinitionalObjectCheckForSameDefinition(DefinitionalObject).)
Protected methodCheckForSameDefinition(Matrix)
Checks to determine if another instance has the same definition as this instance and returns if it does. Derived classes MUST override this method and check all new fields introduced by the derived class for definitional equivalence. It is NOT necessary to check base class fields because the base class will already have done that. When overriding this method, you should NOT call the base implementation because it will return for all derived-class instances. Derived classes should check the type of other to preserve the symmetric nature of IsSameDefinition(Object).
Public methodClone
Clones this object using the specified context.
(Inherited from DefinitionalObject.)
Protected methodComputeCurrentDefinitionHashCode
Computes a hash code based on the current properties of this object. Derived classes MUST override this method and compute a hash code that combines: a unique hash code seed, the base implementation result, and the hash codes of all new fields introduced by the derived class which are used in the CheckForSameDefinition(DefinitionalObject) method.
(Overrides DefinitionalObjectComputeCurrentDefinitionHashCode.)
Public methodStatic memberElementDivide(Matrix, Matrix)

Creates a new Matrix which is the element-by-element division of the two given matrices.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public methodStatic memberElementDivide(Matrix, Matrix3By3)
Creates a new Matrix which is the element-by-element division of the two given matrices.
Public methodStatic memberElementDivide(Matrix, Matrix6By6)
Creates a new Matrix which is the element-by-element division of the two given matrices.
Public methodStatic memberElementDivide(Matrix3By3, Matrix)
Creates a new Matrix which is the element-by-element division of the two given matrices.
Public methodStatic memberElementDivide(Matrix6By6, Matrix)
Creates a new Matrix which is the element-by-element division of the two given matrices.
Public methodStatic memberElementDivideAssign
Sets the quotient Matrix to equal the element-wise division of the dividend divided by the divisor.
Public methodStatic memberElementMultiply(Matrix, Matrix)

Creates a new Matrix which is the element-by-element multiplication of the two given matrices.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public methodStatic memberElementMultiply(Matrix, Matrix3By3)
Creates a new Matrix which is the element-by-element multiplication of the two given matrices.
Public methodStatic memberElementMultiply(Matrix, Matrix6By6)
Creates a new Matrix which is the element-by-element multiplication of the two given matrices.
Public methodStatic memberElementMultiply(Matrix3By3, Matrix)
Creates a new Matrix which is the element-by-element multiplication of the two given matrices.
Public methodStatic memberElementMultiply(Matrix6By6, Matrix)
Creates a new Matrix which is the element-by-element multiplication of the two given matrices.
Public methodStatic memberElementMultiplyAssign
Sets the product Matrix to equal the element-wise multiplication of the multiplicand times the multiplier.
Public methodEnumerateDependencies
Enumerates the dependencies of this object by calling EnumerateT(T) for each object that this object directly depends upon. Derived classes which contain additional dependencies MUST override this method, call the base implementation, and enumerate dependencies introduced by the derived class.
(Inherited from DefinitionalObject.)
Public methodEquals(Object)
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodStatic memberEquals(Matrix, Matrix)
Indicates whether the two provided matrices hold the same data. The type of matrix is not examined, only their dimensions and the value of the elements at each index.
Public methodEqualsEpsilon
Indicates whether each cell value of another instance of this type is within the required tolerance of the corresponding coordinate value of this instance.
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodFreeze
Freezes this object. Further attempts to modify it will result in an ObjectFrozenException.
(Inherited from DefinitionalObject.)
Protected methodFreezeAggregatedObjects
Called by Freeze to also freeze any objects that are considered to be a part of this object. Derived classes which contain additional aggregated objects MUST override this method, call the base implementation, and freeze aggregated objects introduced by the derived class. The objects that need to be frozen in this method are frequently created in this object's constructor and are not settable via properties.
(Inherited from DefinitionalObject.)
Public methodGetDefinitionHashCode
Gets a hash code representing the definition of this object.
(Inherited from DefinitionalObject.)
Public methodGetFrozenCopy
Gets a frozen copy of this Matrix. If this matrix is already frozen it returns a reference to itself, otherwise it clones itself, freezes the clone, and returns that object.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetMatrix(Int32, Int32)
Gets a new matrix with the values of the specified subset of this matrix.
Public methodGetMatrix(Int32, Int32, Int32)
Gets a new matrix with the values of the specified subset of this matrix.
Public methodGetMatrix(Int32, Int32, Int32)
Gets a new matrix with the values of the specified subset of this matrix.
Public methodGetMatrix(Int32, Int32, Matrix)
Places the values of a subsection of this matrix into the given matrix. The destination matrix must match the dimensions of the requested submatrix.
Public methodGetMatrix(Int32, Int32, Int32, Int32)
Gets a new matrix with the values of the specified subset of this matrix.
Public methodGetMatrix(Int32, Int32, Int32, Matrix)
Places the values of a subsection of this matrix into the given matrix. The destination matrix must match the dimensions of the requested submatrix.
Public methodGetMatrix(Int32, Int32, Int32, Matrix)
Places the values of a subsection of this matrix into the given matrix. The destination matrix must match the dimensions of the requested submatrix.
Public methodGetMatrix(Int32, Int32, Int32, Int32, Matrix)
Places the values of a subsection of this matrix into the given matrix. The destination matrix must match the dimensions of the requested submatrix.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIsSameDefinition
Determines if this object has the same definition as another object.
(Inherited from DefinitionalObject.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodMultiply(Double)
Creates a new Matrix which has the value of the current matrix multiplied by the given factor.
Public methodStatic memberMultiply(Matrix, Matrix)

Creates a Matrix which is the linear algebra multiplication of the two given matrices.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public methodStatic memberMultiply(Matrix, Matrix3By3)
Creates a Matrix which is the linear algebra multiplication of the two given matrices.
Public methodStatic memberMultiply(Matrix, Matrix6By6)
Creates a Matrix which is the linear algebra multiplication of the two given matrices.
Public methodStatic memberMultiply(Matrix3By3, Matrix)
Creates a Matrix which is the linear algebra multiplication of the two given matrices.
Public methodStatic memberMultiply(Matrix6By6, Matrix)
Creates a Matrix which is the linear algebra multiplication of the two given matrices.
Public methodStatic memberMultiplyAssign
Sets the product Matrix to equal the linear algebra multiplication of the multiplicand times the multiplier.
Public methodSetMatrix(Int32, Int32, Matrix)
Sets the contents of a subset of this matrix to equal the values of the given origin matrix. The origin matrix must match the dimensions of the requested submatrix.
Public methodSetMatrix(Int32, Int32, Int32, Matrix)
Sets the contents of a subset of this matrix to equal the values of the given origin matrix. The origin matrix must match the dimensions of the requested submatrix.
Public methodSetMatrix(Int32, Int32, Int32, Matrix)
Sets the contents of a subset of this matrix to equal the values of the given origin matrix. The origin matrix must match the dimensions of the requested submatrix.
Public methodSetMatrix(Int32, Int32, Int32, Int32, Matrix)
Sets the contents of a subset of this matrix to equal the values of the given origin matrix. The origin matrix must match the dimensions of the requested submatrix.
Public methodSetMatrix(Int32, Int32, Matrix, Int32, Int32)
Sets the contents of a subset of this matrix to equal the values of the given origin matrix. The origin matrix must match the dimensions of the requested submatrix.
Public methodStatic memberSubtract(Matrix, Matrix)

Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public methodStatic memberSubtract(Matrix, Matrix3By3)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Public methodStatic memberSubtract(Matrix, Matrix6By6)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Public methodStatic memberSubtract(Matrix3By3, Matrix)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Public methodStatic memberSubtract(Matrix6By6, Matrix)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Public methodStatic memberSubtractAssign
Sets the difference Matrix to equal the element-wise subtraction of the minuend by the subtrahend.
Protected methodThrowIfFrozen
Throws ObjectFrozenException if this object IsFrozen. This method should be called from any method or property that modifies this object.
(Inherited from DefinitionalObject.)
Public methodToString
Returns a string representation of the matrix.
(Overrides ObjectToString.)
Public methodTranspose
Creates a new Matrix which is the transpose of the current matrix.
Top
Operators
  NameDescription
Public operatorStatic memberAddition(Matrix, Matrix)

Creates a Matrix which is the sum of the two given matrices.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public operatorStatic memberAddition(Matrix, Matrix3By3)
Creates a Matrix which is the sum of the two given matrices.
Public operatorStatic memberAddition(Matrix, Matrix6By6)
Creates a Matrix which is the sum of the two given matrices.
Public operatorStatic memberAddition(Matrix3By3, Matrix)
Creates a Matrix which is the sum of the two given matrices.
Public operatorStatic memberAddition(Matrix6By6, Matrix)
Creates a Matrix which is the sum of the two given matrices.
Public operatorStatic memberMultiply(Double, Matrix)
Creates a new Matrix which has the value of the given matrix multiplied by the given factor.
Public operatorStatic memberMultiply(Matrix, Matrix)

Creates a Matrix which is the linear algebra multiplication of the two given matrices.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public operatorStatic memberMultiply(Matrix, Matrix3By3)

Creates a Matrix which is the linear algebra multiplication of the two given matrices.

Public operatorStatic memberMultiply(Matrix, Matrix6By6)

Creates a Matrix which is the linear algebra multiplication of the two given matrices.

Public operatorStatic memberMultiply(Matrix, Double)
Creates a new Matrix which has the value of the given matrix multiplied by the given factor.
Public operatorStatic memberMultiply(Matrix3By3, Matrix)

Creates a Matrix which is the linear algebra multiplication of the two given matrices.

Public operatorStatic memberMultiply(Matrix6By6, Matrix)

Creates a Matrix which is the linear algebra multiplication of the two given matrices.

Public operatorStatic memberSubtraction(Matrix, Matrix)

Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.

The most efficient operation to do this is chosen through double dispatch based on the concrete types of the given matrices.

Public operatorStatic memberSubtraction(Matrix, Matrix3By3)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Public operatorStatic memberSubtraction(Matrix, Matrix6By6)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Public operatorStatic memberSubtraction(Matrix3By3, Matrix)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Public operatorStatic memberSubtraction(Matrix6By6, Matrix)
Creates a Matrix whose elements have the values of the elements of the minuend matrix subtracted by the elements of the subtrahend matrix.
Top
See Also