| IGLib 1.5 The IGLib base library for development of numerical, technical and business applications.

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events
Public Member Functions | Static Public Member Functions | Properties | Private Member Functions | Private Attributes | List of all members
IG.Num.Matrix3d Class Reference

Matrix in a 3 dimensional space. More...

Inheritance diagram for IG.Num.Matrix3d:
[legend]
Collaboration diagram for IG.Num.Matrix3d:
[legend]

## Public Member Functions
| Matrix3d (Matrix3d m)
| Copy constructor. Initializes components of a 3D matrix with components of another 3D matrix. More...
| Matrix3d (IMatrix m)
| Constructor. Initializes components of a 3D matrix with components of another matrix. The specified matrix should be 3*3. More...
| Matrix3d (Vector3d rowx, Vector3d rowy, Vector3d rowz)
| Initializes 3D matrix structure with the specified components. More...
| Matrix3d (mat3 m)
| Initializes components of a 3D matrix with components of the specified matrix. More...
| Matrix3d (double xx, double xy, double xz, double yx, double yy, double yz, double zx, double zy, double zz)
| Initializes 3D matrix structure with the specified components. More...
| Matrix3d (double component)
| Initializes 3D with the specified component. More...
| Matrix3d (vec3 xrow, vec3 yrow, vec3 zrow)
| Initializes 3D matrix structure with the specified components. More...
| Matrix3d (double[][] A)
| Initializes a 3D matrix with elements of a jagged array. More...
| Matrix3d (double[,] A)
| Initializes a 3D matrix with elements of a rectangular array. More...
virtual Matrix3d | GetCopyThis ()
| Returns a copy of the current 3D matrix. More...
override MatrixBase | GetCopyBase ()
| Returns a deep copy of the current 3D matrix. More...
Matrix3d | GetNewThis (int rowCount, int ColumnCount)
| Returns a copy of the current 3D matrix. More...
override MatrixBase | GetNewBase (int rowCount, int columnCount)
| Creates and returns a new 3D matrix with the specified dimensions, and of the same type as the current matrix. More...
Matrix3d | GetNewThis ()
| Creates and returns a new matrix with the same dimensions and of the same type as the current matrix. More...
override MatrixBase | GetNewBase ()
| Creates and returns a new matrix with the same dimensions and of the same type as the current matrix. More...
Vector3d | GetNewVectorThis (int length)
| Creates and returns a new 3D vector with the specified dimension (which must be null), and of the type that is consistent with the type of the current matrix. More...
override VectorBase | GetNewVectorBase (int length)
| Creates and returns a new vector with the specified dimension, and of the type that is consistent with the type of the current matrix. More...
override int | GetHashCode ()
| Returns the hash code (hash function) of the current matrix. More...
override bool | Equals (Object obj)
| Returns a value indicating whether the specified object is equal to the current matrix. More...
Matrix3d | NormalizedEuclidean ()
| Returns this matrix normalized with Euclidean norm. More...
Matrix3d | NormalizedForbenius ()
| Returns this matrix normalized with Euclidean norm. More...
Matrix3d | Normalized1 ()
| Returns this matrix normalized with 1 norm. More...
Matrix3d | NormalizedInfinity ()
| Returns this matrix normalized with infinity norm. More...
void | Read ()
| Reads 3D matrix components from a console. More...
void | Read (string name)
| Reads 3D matrix components from a console. More...
Public Member Functions inherited from IG.Num.MatrixBase
virtual IMatrix | GetCopy ()
| Creates and returns a copy of the current matrix. More...
virtual IMatrix | GetNew (int rowCount, int columnCount)
| Creates and returns a new matrix with the specified dimensions, and of the same type as the current matrix. More...
virtual IMatrix | GetNew ()
| Creates and returns a new matrix with the same dimensions and of the same type as the current matrix. More...
virtual IVector | GetNewVector (int length)
| Creates and returns a new vector with the specified dimension, and of the type that is consistent with the type of the current vector. More...
virtual double[,] | ToArray ()
| Creates and returns a rectangular 2D array that contains a component-wise copy of the matrix. More...
virtual double[][] | ToJaggedArray ()
| Creates and returns a jagged 2D array that contains a component-wise copy of the matrix. More...
virtual int | Index (int row, int column)
| Calculates and returns flat index corresponding to the specified row and column indices of the current matrix. More...
virtual void | Indices (int flatIndex, out int row, out int column)
| Returns (through output arguments) row and column indices corresponding to the specified flat index in the current matrix. More...
virtual void | SetZero ()
| Sets all components of the current matrix to 0. More...
virtual void | SetConstant (double elementValue)
| Sets all components of the current matrix to the specified value. More...
virtual void | SetIdentity ()
| Sets the current matrix to identity matrix. WARNING: Exception is thrown if a matrix is not square. For nonsquare matrices, use SetDiagonal(1.0)! More...
virtual void | SetRandom ()
| Sets the current matrix such that it contains random elements on the interval (0,1]. More...
virtual void | SetRandom (IRandomGenerator rnd)
| Sets the current matrix such that it contains random elements on the interval (0,1]. More...
virtual void | SetDiagonal (double diagonalElement)
| Sets the current matrix to the diagonal matrix with all diagonal elements equal to the specified value. Matrix does not need to be a square matrix. More...
virtual void | SetDiagonal (IVector diagonal)
| Sets the current matrix to the diagonal matrix with diagonal element specified by a vector. More...
virtual bool | IsSquare ()
| Returns true if the current matrix is a square matrix, and false if not. More...
virtual bool | IsSymmetric ()
| Returns true if the current matrix is symmetric, and false if not. If the matrix is not a square matrix then false is returned. More...
virtual bool | IsSymmetric (double relativeRMSTolerance=0.0)
| Returns true if the specified matrix is symmetric within some tolerance, and false if not. If the matrix is null then false is returned. More...
virtual void | Negate ()
| Negates the current matrix. More...
virtual void | Transpose ()
| Transposes the current matrix. WARNING: this operation can only be done on square matrices! More...
override int | GetHashCode ()
| Returns the hash code (hash function) of the current matrix. More...
override bool | Equals (Object obj)
| Returns a value indicating whether the specified object is equal to the current matrix. More...
int | GetHashFunctionInt ()
| Returns an integer valued hash function of the current matrix object. More...
string | GetHashFunctionString ()
| Returns a string valued hash function of the current matrix object. More...
override string | ToString ()
| Returns string representation of the current matrix in the standard IGLib form. Rows and elements are printed in comma separated lists in curly brackets. More...
virtual string | ToStringReadable (int accuracy=4, int padding=8)
| Returns a readable an easily string form of a matrix, accuracy and padding can be set. More...
virtual string | ToStringNewlines ()
| Returns a string representation of this matrix with newlines inserted after each row. Rows and elements are printed in comma separated lists in curly brackets. More...
virtual string | ToStringNewlines (string elementFormat)
| Returns a string representation of this matrix with newlines inserted after each row, with the specified format for elements of the matrix. Rows and elements are printed in comma separated lists in curly brackets. More...
virtual string | ToStringMath ()
| Returns string representation of the current matrix in the standard IGLib form (Mathematica-like format but with C representation of numbers). Rows and elements are printed in comma separated lists in curly brackets. More...
virtual string | ToString (string elementFormat)
| Returns a string representation of the current matrix in a standard IGLib form (Mathematica-like format but with C representation of numbers), with the specified format for elements of the matrix. More...
virtual string | ToStringMath (string elementFormat)
| Returns a string representation of the current matrix in a standard IGLib form (Mathematica-like format but with C representation of numbers), with the specified format for elements of the matrix. More...

## Static Public Member Functions
static Matrix3d | Create (Matrix3d mat)
| Creates and returns a 3D matrix that is a copy of another 3D matrix. More...
static Matrix3d | Create (IMatrix mat)
| Creates and returns a 3D matrix that is a copy of another (general) matrix. That matrix should be a 3*3 matrix, otherwise exception is thrown. More...
static Matrix3d | Create (double[][] A)
| Constructs a matrix from a copy of a 2-D array by deep-copy. More...
static Matrix3d | Create (double[,] A)
| Constructs a 3D matrix from a copy of a 2-D array by deep-copy. More...
static Matrix3d | CreateFromColumns (IList< IVector > columnVectors)
| Construct a complex matrix from a set of real column vectors. More...
static Matrix3d | CreateFromRows (IList< Vector > rowVectors)
| Construct a complex matrix from a set of real row vectors. More...
static Matrix3d | Identity ()
| Creates a d1*d2 identity matrix. More...
static Matrix3d | Zeros ()
| Creates a 3D matrix filled with 0. More...
static Matrix3d | Ones ()
| Creates a 3D matrix filled with 1. More...
static Matrix3d | Diagonal (IVector diagonalVector)
| Creates a new diagonal d1*d2 matrix based on the diagonal vector. More...
static Matrix3d | Random ()
| Creates and returns a 3D matrix with uniformly distributed random elements in the [0, 1) interval. More...
static Matrix3d | Random (IRandomGenerator rnd)
| Creates and returns a 3D matrix with uniformly distributed random elements in the [0, 1) interval. More...
static Matrix3d | Copy (Matrix3d m)
| Returns a copy of the specified 3D matrix. More...
static void | Negate (Matrix3d m, ref Matrix3d res)
| Negates the specified 3D matrix and stores its copy in the resulting matrix. More...
static int | EigenSystem2d (Matrix3d a, ref Matrix3d eigenvec, ref Vector3d eigenval)
| Calculates eigenvectors and eigenvalues of a 2x2 matrix a and stores eigenvectors to lines of eigenvec and eigenvalues to eigenval. eigenvec can be the same matrix as a. The number of different real eigenvalues is returned. Ref.: linalg.nb Not tested yet! More...
static Matrix3d | operator+ (Matrix3d m)
| Unary plus for 3D matrices, returns the operand. More...
static Matrix3d | operator- (Matrix3d a)
| Unary negation for 3D matrices, returns the negative operand. More...
static Matrix3d | operator+ (Matrix3d a, Matrix3d b)
| Matrix addition in 3D. More...
static Matrix3d | operator- (Matrix3d a, Matrix3d b)
| Matrix subtraction in 3D. More...
static Matrix3d | operator* (Matrix3d a, Matrix3d b)
| Matrix multiplication in 3D. More...
static Vector3d | operator* (Matrix3d a, Vector3d b)
| Matrix with vector multiplication in 3D. More...
static Matrix3d | operator* (Matrix3d a, double b)
| Product of a 3D matrix by a scalar. More...
static Matrix3d | operator* (double a, Matrix3d b)
| Product of a 3D matrix by a scalar. More...
static Matrix3d | operator/ (Matrix3d a, double b)
| Division of a 3D matrix by a scalar. More...
Static Public Member Functions inherited from IG.Num.MatrixBase
static int | Index (int dim1, int dim2, int row, int column)
| Returns flat index corresponding to the specified row and column indices of a matrix with specified dimensions. More...
static int | Index (IMatrix mat, int row, int column)
| Calculates and returns flat index corresponding to the specified row and column indices of the specified matrix. More...
static void | Indices (int dim1, int dim2, int flatIndex, out int row, out int column)
| Returns (through output arguments) row and column indices corresponding to the specified flat index in a matrix with the specified dimensions. More...
static void | Indices (IMatrix mat, int flatIndex, out int row, out int column)
| Returns (through output arguments) row and column indices corresponding to the specified flat index in the specified matrix. More...
static void | SetZero (IMatrix mat)
| Sets all components of the specified matrix to 0. More...
static void | SetConstant (IMatrix mat, double elementValue)
| Sets all components of the specified matrix to the specified value. More...
static void | SetIdentity (IMatrix mat)
| Sets the specified matrix to identity matrix. WARNING: Works only for square matrices (exception is thrown if matrix is not square). For nonsquare matrices, use SetDiagonal(1.0)! More...
static void | SetDiagonal (IMatrix mat, IVector diagonal)
| Sets the current matrix to the diagonal matrix with diagonal element specified by a vector. More...
static void | SetDiagonal (IMatrix mat, double diagonalElement)
| Sets the current matrix to the diagonal matrix with all diagonal elements equal to the specified value. Matrix does not need to be a square matrix. More...
static void | SetRandom (IMatrix mat)
| Sets the specified matrix such that it contains random elements on the interval (0,1]. More...
static void | SetRandom (IMatrix mat, IRandomGenerator rnd=null)
| Sets the current matrix such that it contains random elements on the interval (0,1]. More...
static void | SetRandomSymmetric (IMatrix mat)
| Sets the specified matrix such that it is symmetric and contains random elements on the interval (0,1]. More...
static void | SetRandomSymmetric (IMatrix mat, IRandomGenerator rnd)
| Sets the specified matrix such that it is symmetric and contains random elements on the interval (0,1]. More...
static void | SetRandomAntiSymmetric (IMatrix mat)
| Sets the specified matrix such that it is antisymmetric and contains random elements on the interval (0,1]. More...
static void | SetRandomAntiSymmetric (IMatrix mat, IRandomGenerator rnd)
| Sets the specified matrix such that it is antisymmetric and contains random elements on the interval (0,1]. More...
static void | SetRandomLowerTriangular (IMatrix mat)
| Sets the specified matrix such that it is lower triangular and contains random elements on the interval (0,1]. More...
static void | SetRandomLowerTriangular (IMatrix mat, IRandomGenerator rnd)
| Sets the specified matrix such that it is lower triangular and contains random elements on the interval (0,1]. More...
static void | SetRandomUpperTriangular (IMatrix mat)
| Sets the specified matrix such that it is upper triangular and contains random elements on the interval (0,1]. More...
static void | SetRandomUpperTriangular (IMatrix mat, IRandomGenerator rnd)
| Sets the specified matrix such that it is upper triangular and contains random elements on the interval (0,1]. More...
static void | SetRandomSymmetricPositiveDefinite (IMatrix mat)
| Sets the specified matrix such that it is positive definite and contains random elements on the interval (0,1]. More...
static void | SetRandomSymmetricPositiveDefinite (IMatrix mat, IRandomGenerator rnd)
| Sets the specified matrix such that it is positive definite and contains random elements. More...
static void | SetRandomPositiveDiagonallyDominant (IMatrix mat, IRandomGenerator rnd=null, double dominancyFactor=100.0)
| Sets the specified matrix such that it is has random elements and is diagonally dominant with positive diagonal elements, i.e. any diagonal element is greater by absolute value than sum of absolute values of nondiagonal elements in the corresponding column. More...
static void | SetRandomPositiveDiagonallyDominant (IMatrix mat, double dominancyFactor)
| Sets the specified matrix such that it is has random elements and is diagonally dominant with positive diagonal elements, i.e. any diagonal element is greater by absolute value than sum of absolute values of nondiagonal elements in the corresponding column. More...
static void | SetRandomPositiveDiagonallyDominantSymmetric (IMatrix mat, IRandomGenerator rnd=null, double dominancyFactor=100.0)
| Sets the specified matrix such that it is has random elements and is symmetric diagonally dominant with positive diagonal elements, i.e. any diagonal element is greater by absolute value than sum of absolute values of nondiagonal elements in the corresponding column. More...
static void | SetRandomPositiveDiagonallyDominantSymmetric (IMatrix mat, double dominancyFactor)
| Sets the specified matrix such that it is has random elements and is symmetric diagonally dominant with positive diagonal elements, i.e. any diagonal element is greater by absolute value than sum of absolute values of nondiagonal elements in the corresponding column. More...
static double | SetRandomInvertible (IMatrix mat, IRandomGenerator rnd=null)
| Sets the specified QUADRATIC matrix such that it is has random elements and is nonsingular. More...
static double | SetRandomPositiveDefiniteSymmetric (IMatrix mat, IRandomGenerator rnd=null)
| Sets the specified QUADRATIC matrix such that it is has random elements and is a symmetric positive definite matrix. More...
static bool | IsSquare (IMatrix mat)
| Returns true if the specified matrix is a square matrix, and false if not. If the matrix is null then false is returned. More...
static bool | IsSymmetric (IMatrix mat)
| Returns true if the specified matrix is symmetric, and false if not. If the matrix is null then false is returned. More...
static bool | IsSymmetric (IMatrix mat, double relativeRMSTolerance)
| Returns true if the specified matrix is symmetric within some tolerance, and false if not. If the matrix is null then false is returned. More...
static int | Compare (IMatrix m1, IMatrix m2)
| Compares two matrices and returns -1 if the first matrix is smaller than the second one, 0 if matrices are equal, and 1 if the first matrix is greater. Matrix that is null is considered smaller than a matrix that is not null. Two null matrices are considered equal. Matrix with smaller dimension is considered smaller than a matrix with greater dimension. Matrices with equal dimensions ar compared by elements. The first element that is different decides which matrix is considered greater. More...
static void | Resize (ref IMatrix mat, IMatrix template, int rowCount, int columnCount)
| Resizes, if necessary, the specified matrix according to the required dimensions. If the matrix is initially null then a new matrix is created. If in this case a template matrix is specified then the newly created matrix will be of the same type as that template matrix, because it is created by the GetNew() method on that matrix. If dimensions of the initial matrix do not match the required dim., then matrix is resized. If the specified matrix dimension is less or equal to 0 then matrix is resized with the same dimensions as those of the template matirx. If in this case the template matrix is null, an exception is thrown. WARNINGS: Components are NOT preserved and have in general undefined values after operation is performed. If matrix and template are both null then the type of nawly created matrix is Matrix. More...
static void | Resize (ref IMatrix mat, int rowCount, int columnCount)
| Resizes, if necessary, the specified matrix according to the required dimensions. If the matrix is initially null then a new matrix (of type Matrix) is created. If dimensions of the initial matrix do not match the required dimensions, then matrix is resized. Components are NOT preserved and have in general undefined values after operation is performed. WARNING: If the matrix is initially null then the type of the newly created matrix is Matrix. More...
static void | Resize (ref IMatrix mat, IMatrix template)
| Resizes, if necessary, the specified matrix according to the dimensions of the specified template matrix. If the matrix is initially null then a new matrix is created. In this case the newly created matrix will be of the same type as that template matrix, because it is created by the GetNew() method on that matrix. If dimensions of the initial matrix do not match the dimensions of the template matrix, then matrix is resized. If the template matrix is null, then an exception is thrown. WARNINGS: Components are NOT preserved and have in general undefined values after operation is performed. If matrix and template are null then the type of newly created matrix is Matrix. More...
static void | CopyPlain (IMatrix a, IMatrix result)
| Copies components of a matrix to another matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of the copied matrix and result storage must match. More...
static void | Copy (IMatrix a, IMatrix result)
| Copies components of a matrix to another matrix. WARNING: dimensions of the copied matrix and result storage must match. More...
static void | Copy (IMatrix a, ref IMatrix result)
| Copies components of a matrix to another matrix. Resulting matrix is allocated or reallocated if necessary. More...
static void | CopyPlain (MatrixBase_MathNetNumerics a, IMatrix result)
| Copies components of a matrix to another matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of the copied matrix and result storage must match. More...
static void | Copy (MatrixBase_MathNetNumerics a, IMatrix result)
| Copies components of a matrix to another matrix. WARNING: dimensions of the copied matrix and result storage must match. More...
static void | Copy (MatrixBase_MathNetNumerics a, ref IMatrix result)
| Copies components of a matrix to another matrix. Resulting matrix is allocated or reallocated if necessary. More...
static void | CopyPlain (IMatrix a, Matrix_MathNetNumercs result)
| Copies components of a matrix to another matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of the copied matrix and result storage must match. More...
static void | Copy (IMatrix a, Matrix_MathNetNumercs result)
| Copies components of a matrix to another matrix. WARNING: dimensions of the copied matrix and result storage must match. More...
static void | Copy (IMatrix a, ref Matrix_MathNetNumercs result)
| Copies components of a matrix to another matrix. Resulting matrix is allocated or reallocated if necessary. More...
static void | NegatePlain (IMatrix a, IMatrix result)
| Stores a negative matrix of the operand in another matrix. Can be done in-place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of the operand and result storage must match. More...
static void | Negate (IMatrix a, IMatrix result)
| Stores a negative matrix of the operand in another matrix. Can be done in-place. WARNING: dimensions of the operand and result storage must match. More...
static void | Negate (IMatrix a, ref IMatrix result)
| Stores a negative matrix of the operand in another matrix. Can be done in-place. Resulting matrix is allocated or reallocated if necessary. More...
static void | TransposePlain (IMatrix a, IMatrix result)
| Stores transpose of the operand in another matrix. Can be done in-place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of the operand and result storage must match. More...
static void | Transpose (IMatrix a, IMatrix result)
| Stores transpose of the operand in another matrix. Can be done in-place. WARNING: dimensions of the operand and result storage must match. More...
static void | Transpose (IMatrix a, ref IMatrix result)
| Stores transpose of the matrix operand in another matrix. Can be done in-place. Resulting matrix is allocated or reallocated if necessary. More...
static void | SymmetrizePlain (IMatrix a, IMatrix sym, IMatrix antiSym)
| Calculates symmetric and antisymmetric part of the specified matrix (symmetric part is stored in the first result argument but is calculated last, such that it overrides antisymmetric when both arguments point to the same matrix object). More...
static void | Symmetrize (IMatrix a, IMatrix sym, IMatrix antiSym)
| Calculates symmetric and antisymmetric part of the specified matrix (symmetric part is stored in the first result argument but is calculated last, such that it overrides antisymmetric when both arguments point to the same matrix object). More...
static void | Symmetrize (IMatrix a, ref IMatrix sym, ref IMatrix antiSym)
| Stores symmetrized and antisymmetirzed matrix obtained from the specified matrix. Resulting matrix is allocated or reallocated if necessary. More...
static void | SymmetricPartPlain (IMatrix a, IMatrix result)
| Stores symmetric part of a square matrix operand in another matrix. Symmetrization is performed by averaging of non-diagonal terms and their transposed terms. Can be done in-place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of the operand and result storage must match. More...
static void | SymmetricPart (IMatrix a, IMatrix result)
| Stores symmetric part of a square matrix operand in another matrix. Symmetrization is performed by averaging of non-diagonal terms and their transposed terms. Can be done in-place. WARNING: dimensions of the operand and result storage must match. More...
static void | SymmetricPart (IMatrix a, ref IMatrix result)
| Stores symmetric part of a square matrix operand in another matrix. Symmetrization is performed by averaging of non-diagonal terms and their transposed terms. Can be done in-place. Resulting matrix is allocated or reallocated if necessary. More...
static void | AntisymmetricPartPlain (IMatrix a, IMatrix result)
| Stores antisymmetric part of a square matrix operand in another matrix. Antisymmetrization is performed by subtracting non-diagonal terms and their transposed terms, division by 2 and storing result in one matrix element and its negative value in another element. Can be done in-place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of the operand and result storage must match. More...
static void | AntisymmetricPart (IMatrix a, IMatrix result)
| Stores antisymmetric part of a square matrix operand in another matrix. Antisymmetrization is performed by subtracting non-diagonal terms and their transposed terms, division by 2 and storing result in one matrix element and its negative value in another element. Can be done in-place. WARNING: dimensions of the operand and result storage must match. More...
static void | AntisymmetricPart (IMatrix a, ref IMatrix result)
| Stores antisymmetric part of a square matrix operand in another matrix. Antisymmetrization is performed by subtracting non-diagonal terms and their transposed terms, division by 2 and storing result in one matrix element and its negative value in another element. Can be done in-place. Resulting matrix is allocated or reallocated if necessary. More...
static void | AddPlain (IMatrix a, IMatrix b, IMatrix result)
| Sums two matrices and stores the result in the specified result matrix. Operation can be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Add (IMatrix a, IMatrix b, IMatrix result)
| Sums two matrices and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Add (IMatrix a, IMatrix b, ref IMatrix result)
| Sums two matrices and stores the result in the specified result matrix. Operation can be performed in place. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then teh result is re-allocated. More...
static void | SubtractPlain (IMatrix a, IMatrix b, IMatrix result)
| Subtracts two matrices and stores the result in the specified result matrix. Operation can be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Subtract (IMatrix a, IMatrix b, IMatrix result)
| Subtracts two matrices and stores the result in the specified result matrix. Operation can be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Subtract (IMatrix a, IMatrix b, ref IMatrix result)
| Subtracts two matrices and stores the result in the specified result matrix. Operation can be performed in place. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then teh result is re-allocated. More...
static void | ArrayMultiplyPlain (IMatrix a, IMatrix b, IMatrix result)
| Element-by-element multiplication. This operation can be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayMultiply (IMatrix a, IMatrix b, IMatrix result)
| Element-by-element multiplication. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayMultiply (IMatrix a, IMatrix b, ref IMatrix result)
| Element-by-element multiplication. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then teh result is re-allocated. More...
static void | ArrayDividePlain (IMatrix a, IMatrix b, IMatrix result)
| Element-by-element division. This operation can be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayDivide (IMatrix a, IMatrix b, IMatrix result)
| Element-by-element division. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayDivide (IMatrix a, IMatrix b, ref IMatrix result)
| Element-by-element division. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then teh result is re-allocated. More...
static void | ArrayPowerPlain (IMatrix a, double power, IMatrix result)
| Element-by-element raise to power. This operation can be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayPower (IMatrix a, double power, IMatrix result)
| Element-by-element raise to power. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayPower (IMatrix a, double power, ref IMatrix result)
| Element-by-element raise to power. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then teh result is re-allocated. More...
static void | ArrayMapPlain (IMatrix a, Converter< double, double > mapping, IMatrix result)
| Element-by-element mapping of an arbitrary function. This operation can be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayMap (IMatrix a, Converter< double, double > mapping, IMatrix result)
| Element-by-element mapping of an arbitrary function. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | ArrayMap (IMatrix a, Converter< double, double > mapping, ref IMatrix result)
| Element-by-element mapping of an arbitrary function. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then teh result is re-allocated. More...
static void | MultiplyPlain (IMatrix a, IMatrix b, IMatrix result)
| R=A*B. Multiplies two matrices and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | Multiply (IMatrix a, IMatrix b, IMatrix result)
| R=A*B. Multiplies two matrices and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | Multiply (IMatrix a, IMatrix b, ref IMatrix result)
| R=A*B. Multiplies two matrices and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyTranspMatPlain (IMatrix a, IMatrix b, IMatrix result)
| R=A^T*B Calculates product of transposed matrix and a matrix, and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspMat (IMatrix a, IMatrix b, IMatrix result)
| R=A^T*B Multiplies two matrices and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspMat (IMatrix a, IMatrix b, ref IMatrix result)
| R=A^T*B Multiplies two matrices and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyMatTranspPlain (IMatrix a, IMatrix b, IMatrix result)
| R=A*B^T. Multiplies a matrix by transpose of another matrix and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyMatTransp (IMatrix a, IMatrix b, IMatrix result)
| R=A*B^T. Multiplies a matrix by transpose of another matrix and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyMatTransp (IMatrix a, IMatrix b, ref IMatrix result)
| R=A*B^T. Multiplies a matrix by transpose of another matrix and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyTranspTranspPlain (IMatrix a, IMatrix b, IMatrix result)
| R=A^T*B^T. Multiplies transposed matrix by another transposed matrix, and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspTransp (IMatrix a, IMatrix b, IMatrix result)
| R=A^T*B^T. Multiplies transposed matrix by another transposed matrix, and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspTransp (IMatrix a, IMatrix b, ref IMatrix result)
| R=A^T*B^T. Multiplies transposed matrix by another transposed matrix, and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyPlain (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A*B*C. Multiplies three matrices and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | Multiply (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A*B*C. Multiplies three matrices and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | Multiply (IMatrix a, IMatrix b, IMatrix c, ref IMatrix result)
| R=A*B*C. Multiplies three matrices and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyTranspMatTranspPlain (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A^T*B*C^T. Multiplies three matrices (transposed first argument, second argument, and transposed third argument) and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of all arguments must be consistent, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspMatTransp (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A^T*B*C^T. Multiplies three matrices (transposed first argument, second argument, and transposed third argument) and stores the result in the specified result matrix. WARNING: dimensions of all arguments must be consistent, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspMatTransp (IMatrix a, IMatrix b, IMatrix c, ref IMatrix result)
| R=A^T*B*C^T. Multiplies three matrices (transposed first argument, second argument, and transposed third argument) and stores the result in the specified result matrix. WARNING: dimensions of operands must be consistent, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyTranspMatMatPlain (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A^T*B*C. Multiplies three matrices (transposed first argument, second argument, and third argument) and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of all arguments must be consistent, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspMatMat (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A^T*B*C. Multiplies three matrices (transposed first argument, second argument, and third argument) and stores the result in the specified result matrix. WARNING: dimensions of all arguments must be consistent, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspMatMat (IMatrix a, IMatrix b, IMatrix c, ref IMatrix result)
| R=A^T*B*C. Multiplies three matrices (transposed first argument, second argument, and third argument) and stores the result in the specified result matrix. WARNING: dimensions of operands must be consistent, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyMatMatTranspPlain (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A*B*C^T. Multiplies three matrices (first argumet, second argumet, and transposed third argument) and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyMatMatTransp (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A*B*C^T. Multiplies three matrices (first argumet, second argumet, and transposed third argument) and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyMatMatTransp (IMatrix a, IMatrix b, IMatrix c, ref IMatrix result)
| R=A*B*C^T. Multiplies three matrices (first argumet, second argumet, and transposed third argument) and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyMatTranspMatPlain (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A*B^T*C. Multiplies three matrices (first argument, transposed second argument, and third argument) and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyMatTranspMat (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A*B^T*C. Multiplies three matrices (first argument, transposed second argument, and third argument) and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyMatTranspMat (IMatrix a, IMatrix b, IMatrix c, ref IMatrix result)
| R=A*B^T*C. Multiplies three matrices (first argument, transposed second argument, and third argument) and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyTranspTranspTranspPlain (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A^T*B^T*C^T. Multiplies three matrices and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspTranspTransp (IMatrix a, IMatrix b, IMatrix c, IMatrix result)
| R=A^T*B^T*C^T. Multiplies three matrices and stores the result in the specified result matrix. WARNING: dimensions of matrices must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. More...
static void | MultiplyTranspTranspTransp (IMatrix a, IMatrix b, IMatrix c, ref IMatrix result)
| R=A^T*B^T*C^T. Multiplies three matrices and stores the result in the specified result matrix. WARNING: dimensions of operands must match, otherwise an exception is thrown. WARNING: This operation can not be performed in place. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyPlain (IMatrix a, IVector b, IVector result)
| R=A*b. Multiplies a matrix with a vector and stores the result in the specified result vector. Operation can not be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Multiply (IMatrix a, IVector b, IVector result)
| R=A*b. Multiplies a matrix with a vector and stores the result in the specified result vector. Operation can not be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Multiply (IMatrix a, IVector b, ref IVector result)
| R=A*b. Multiplies matrix by scalar and stores the result in the specified result matrix. Operation can not be performed in place. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyTranspVecPlain (IMatrix a, IVector b, IVector result)
| R=A^T*b. Multiplies a transposed matrix with a vector and stores the result in the specified result vector. Operation can not be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyTranspVec (IMatrix a, IVector b, IVector result)
| R=A^T*b. Multiplies a transposed matrix with a vector and stores the result in the specified result vector. Operation can not be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyTranspVec (IMatrix a, IVector b, ref IVector result)
| R=A^T*b. Multiplies transposed matrix by scalar and stores the result in the specified result matrix. Operation can not be performed in place. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static double | MultiplyPlain (IVector left, IMatrix a, IVector right)
| R=a^T*M*b. Left-multiplies a matrix with a vector (transposed), right multiplies the result vith another vector, and returns the final result. Can be performed in place. This is a plain version of the method that does not perform any consistency checks. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static double | Multiply (IVector left, IMatrix a, IVector right)
| R=a^T*M*b. Left-multiplies a matrix with a vector (transposed), right multiplies the result vith another vector, and returns the final result. Can be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static double | Multiply (IVector left, IMatrix a, IVector right, ref IVector result)
| R=a^T*M*b. Left-multiplies a matrix with a vector (transposed), right multiplies the result vith another vector, and returns the final result. Can be performed in place. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyPlain (IMatrix a, double b, IMatrix result)
| Multiplies matrix by scalar and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. This operation can be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Multiply (IMatrix a, double b, IMatrix result)
| Multiplies matrix by scalar and stores the result in the specified result matrix. This operation can be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Multiply (IMatrix a, double b, ref IMatrix result)
| Multiplies matrix by scalar and stores the result in the specified result matrix. This operation can be performed in place. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static void | DividePlain (IMatrix a, double b, IMatrix result)
| Divides matrix by scalar and stores the result in the specified result matrix. This is a plain version of the method that does not perform any consistency checks. This operation can be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | Divide (IMatrix a, double b, IMatrix result)
  | Divides matrix by scalar and stores the result in the specified result matrix. This operation can be performed in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. Parameters
  a | First operand.
  b | Second operand.
  result | Matrix where the result is stored. Dimensions must match dimensions of operands.
More...
static void | Divide (IMatrix a, double b, ref IMatrix result)
| Divides matrix by scalar and stores the result in the specified result matrix. This operation can be performed in place. WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyDiagonalPlain (IVector diag, IMatrix a, IMatrix result)
| Left-multiplies a matrix with a diagonal matrix, and stores the result in the specified result matrix. R=diag(d)*A This is a plain version of the method that does not perform any consistency checks. The operation can be done in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyDiagonal (IVector diag, IMatrix a, IMatrix result)
| Right-multiplies a matrix with a diagonal matrix, and stores the result in the specified result matrix. R=diag(d)*A WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyDiagonal (IVector diag, IMatrix a, ref IMatrix result)
| Right-multiplies a matrix with a diagonal matrix, and stores the result in the specified result matrix. R=diag(d)*A WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyInverseDiagonalPlain (IVector diag, IMatrix a, IMatrix result)
| Left-multiplies a matrix with inverse of a diagonal matrix, and stores the result in the specified result matrix. R=diag(d)^-1*A This is a plain version of the method that does not perform any consistency checks. The operation can be done in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyInverseDiagonal (IVector diag, IMatrix a, IMatrix result)
| Right-multiplies a matrix with inverse of a diagonal matrix, and stores the result in the specified result matrix. R=diag(d)^-1*A WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyInverseDiagonal (IVector diag, IMatrix a, ref IMatrix result)
| Right-multiplies a matrix with inverse of a diagonal matrix, and stores the result in the specified result matrix. R=diag(d)^-1*A WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyDiagonalPlain (IMatrix a, IVector diag, IMatrix result)
| Right-multiplies a matrix with a diagonal matrix, and stores the result in the specified result matrix. R=A*diag(d) This is a plain version of the method that does not perform any consistency checks. The operation can be done in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyDiagonal (IMatrix a, IVector diag, IMatrix result)
| Right-multiplies a matrix with a diagonal matrix, and stores the result in the specified result matrix. R=A*diag(d) WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyDiagonal (IMatrix a, IVector diag, ref IMatrix result)
| Right-multiplies a matrix with a diagonal matrix, and stores the result in the specified result matrix. R=A*diag(d) WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static void | MultiplyInverseDiagonalPlain (IMatrix a, IVector diag, IMatrix result)
| Right-multiplies a matrix with inverse of a diagonal matrix, and stores the result in the specified result matrix. R=A*diag(d)^-1 This is a plain version of the method that does not perform any consistency checks. The operation can be done in place. WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyInverseDiagonal (IMatrix a, IVector diag, IMatrix result)
| Right-multiplies a matrix with inverse of a diagonal matrix, and stores the result in the specified result matrix. R=A*diag(d)^-1 WARNING: dimensions of matrices must match, otherwise an exception is thrown. More...
static void | MultiplyInverseDiagonal (IMatrix a, IVector diag, ref IMatrix result)
| Right-multiplies a matrix with inverse of a diagonal matrix, and stores the result in the specified result matrix. R=A*diag(d)^-1 WARNING: dimensions of operands must match, otherwise an exception is thrown. If dimensions of the result do not match then the result is re-allocated. More...
static int | GetHashCode (IMatrix mat)
| Returns hash code of the specified matrix. More...
static bool | Equals (IMatrix m1, IMatrix m2)
| Returns true if the specified matrices are equal, false if not. More...
static int | GetHashFunctionInt (IMatrix mat)
| Returns an integer valued hash function of the specified matrix object. More...
static string | GetHashFunctionString (IMatrix mat)
| Returns a string valued hash function of the specified matrix object. More...
static string | ToStringReadable (IMatrix mat, int accuracy=4, int padding=8)
| Returns a readable string form of a matrix, accuracy and padding can be set. More...
static string | ToStringNewlines (IMatrix mat)
| Returns a string representation of the specified matrix with newlines inserted after each row. Rows and elements are printed in comma separated lists in curly brackets. More...
static string | ToStringNewlines (IMatrix mat, string elementFormat)
| Returns a string representation of the specified matrix with newlines inserted after each row, with the specified format for elements of the matrix. Rows and elements are printed in comma separated lists in curly brackets. More...
static string | ToString (IMatrix mat)
| Returns string representation of the current matrix in the standard IGLib form (Mathematica-like format but with C representation of numbers). Rows and elements are printed in comma separated lists in curly brackets. More...
static string | ToStringMath (IMatrix mat)
| Returns string representation of the current matrix in the standard IGLib form (Mathematica-like format but with C representation of numbers). Rows and elements are printed in comma separated lists in curly brackets. More...
static string | ToString (IMatrix mat, string elementFormat)
| Returns string representation of the current matrix in the standard IGLib form (Mathematica-like format but with C representation of numbers), with the specified format for elements of the matrix. Rows and elements are printed in comma separated lists in curly brackets. More...
static string | ToStringMath (IMatrix mat, string elementFormat)
| Returns string representation of the current matrix in the standard IGLib form (Mathematica-like format but with C representation of numbers), with the specified format for elements of the matrix. Rows and elements are printed in comma separated lists in curly brackets. More...
static void | SaveJson (IMatrix mat, string filePath)
| Saves (serializes) the specified matrix to the specified JSON file. File is owerwritten if it exists. More...
static void | SaveJson (IMatrix mat, string filePath, bool append)
| Saves (serializes) the specified matrix to the specified JSON file. More...
static void | LoadJson (string filePath, ref IMatrix matRestored)
| Restores (deserializes) a matrix object from the specified file in JSON format. More...
static MatrixBase | operator+ (MatrixBase m)
| Unary plus, returns the operand. More...
static MatrixBase | operator- (MatrixBase m)
| Unary negation, returns the negative operand. More...
static MatrixBase | operator+ (MatrixBase a, MatrixBase b)
| Matrix addition. More...
static MatrixBase | operator- (MatrixBase a, MatrixBase b)
| Matrix subtraction. More...
static MatrixBase | operator* (MatrixBase a, MatrixBase b)
| Product of two matrices. More...
static VectorBase | operator* (MatrixBase a, VectorBase b)
| Product of a matrix and a vector. More...
static MatrixBase | operator* (MatrixBase a, double b)
| Product of a matrix by a scalar. More...
static MatrixBase | operator* (double a, MatrixBase b)
| Product of a matrix by a scalar. More...
static MatrixBase | operator/ (MatrixBase a, double b)
| Matrix subtraction. More...
static double | DeterminantSlow (IMatrix A)
| Simpler but slower (compared to Determinant) implementation of determinant calculation of an arbitrary square real matrix. More...
static double | Determinant (IMatrix A, ref int[] auxPermutations, ref IMatrix auxLU)
| Calculates and returns determinant of a real-valued square matrix. More...
static void | LuDecompose (IMatrix A, out int toggle, ref int[] perm, ref IMatrix result)
| Calculates thr Doolittle LU decomposition with partial pivoting (LUP) of a square real matrix. More...
static void | LuSolve (IMatrix luMatrix, int[] perm, IVector b, ref IVector auxVec, ref IVector x)
| Solves a system of equations with the specified right-hand sides and the specified LU decomposition of the system matrix. More...
static void | LuSolve (IMatrix luMatrix, int[] perm, IMatrix B, ref IVector auxVec, ref IVector auxRight, ref IVector auxX, ref IMatrix X)
| Calculates inverse of the matrix from its specified LU decomposition. More...
static void | LuInverse (IMatrix luMatrix, int[] perm, ref IVector auxRight, ref IVector auxX, ref IMatrix res)
| Calculates inverse of the matrix from its specified LU decomposition. More...
static double | LuDeterminant (IMatrix luMatrix, int toggle)
| Calculates and returns matrix determinant form its specified LU decomposition. More...
static void | LuExtractLower (IMatrix matLu, ref IMatrix result)
| Extracts the lower part of the Doolittle specified LU decomposition (1s on diagonal, 0s in above diagonal) and stores it in the specified result matrix. More...
static IMatrix | LuExtractUpper (IMatrix matLu, ref IMatrix result)
| Extracts the upper part of the specified Doolittle LU decomposition 0s below diagonal) and stores it in the specified result matrix. More...
static void | PermutationArrayToMatrix (int[] perm, ref IMatrix res)
| Calculates and stores permutation matrix that correspond to the specified permutation array. More...
static void | Permute (IMatrix A, int[] permutations, ref IMatrix result)
| Permutes rows of the specified aquare matrix according to the specified permutations array. More...
static void | UnPermute (IMatrix Apermuted, int[] permutations, ref int[] auxArray, ref IMatrix result)
| Unpermutes the product of the specified DooLittle LU decomposition according to permutations array. More...
static bool | TestLuDecomposition (int dim, int numRepetitions=1, double tol=1e-6, int outputLevel=0, IRandomGenerator randomGenerator=null, IMatrix A=null, IVector b=null)
| Performs a test of calculatons performed via LU decomposition of a matrix. Calculation times and error extents are measured and reported (if specified). More...
static void | TestLuDecompositionDemo ()
| Demonstration of usae of LU decomposition. More...
static bool | LdltDecompose (IMatrix A, ref IMatrix result, double tol=1e-12)
| Calculates LDLT decomposition of a real symmetric square matrix. More...
static void | LdltSolve (IMatrix decomposed, IVector b, ref IVector x)
| Solves a system of eauations with the specified LDLT decomposition of a real symmetric square matrix. More...
static void | LdltSolve (IMatrix ldltMatrix, IMatrix B, ref IVector auxX, ref IMatrix X)
| Calculates inverse of the matrix from its specified LDLT-decomposed matrix. More...
static void | LdltInverse (IMatrix ldltMatrix, ref IVector auxX, ref IMatrix res)
| Calculates inverse of the matrix from its specified LDLT decomposition. More...
static double | LdltDeterminant (IMatrix ldltMatrix)
| Calculates and returns determinant of a square symmetric matrix form its specified LDLT decomposition. More...
static void | LdltExtractLower (IMatrix matLdlt, ref IMatrix result)
| Extracts the lower part of the specified LDLT decomposition (1s on diagonal, 0s above diagonal) and stores it in the specified result matrix. More...
static IMatrix | LdltExtractUpper (IMatrix matLdlt, ref IMatrix result)
| Extracts the upper part of the specified LDLT decomposition (1s on diagonal, 0s in below diagonal) and stores it in the specified result matrix. More...
static IMatrix | LdltExtractDiagonal (IMatrix matLdlt, ref IMatrix result)
| Extracts the diagonal part of the specified LDLT decomposition and stores it in the specified result matrix. More...
static bool | TestLdltDecomposition (int dim, int numRepetitions=1, double tol=1e-6, int outputLevel=0, IRandomGenerator randomGenerator=null, IMatrix A=null, IVector b=null)
| Performs a test of calculatons performed via LDLT decomposition of a matrix. Calculation times and error extents are measured and reported (if specified). More...
static bool | CholeskyDecompose (IMatrix A, ref IMatrix result, double tol=1e-12)
| Calculates Cholesky decomposition of a real symmetric square matrix. More...
static void | CholeskySolve (IMatrix decomposed, IVector b, ref IVector x)
| Solves a system of eauations with the specified Cholesky decomposition of a real symmetric square matrix. More...
static void | CholeskySolve (IMatrix CholeskyMatrix, IMatrix B, ref IVector auxX, ref IMatrix X)
| Calculates inverse of the matrix from its specified Cholesky-decomposed matrix. More...
static void | CholeskyInverse (IMatrix CholeskyMatrix, ref IVector auxX, ref IMatrix res)
| Calculates inverse of the matrix from its specified Cholesky decomposition. More...
static double | CholeskyDeterminant (IMatrix CholeskyMatrix)
| Calculates and returns determinant of a square symmetric matrix form its specified Cholesky decomposition. More...
static void | CholeskyExtractLower (IMatrix matCholesky, ref IMatrix result)
| Extracts the lower part of the specified Cholesky decomposition (0s above diagonal) and stores it in the specified result matrix. More...
static IMatrix | CholeskyExtractUpper (IMatrix matCholesky, ref IMatrix result)
| Extracts the upper part of the specified Cholesky decomposition (0s in below diagonal) and stores it in the specified result matrix. More...
static bool | TestCholeskyDecomposition (int dim, int numRepetitions=1, double tol=1e-6, int outputLevel=0, IRandomGenerator randomGenerator=null, IMatrix A=null, IVector b=null)
| Performs test of calculatons performed via Cholesky decomposition of a matrix. Calculation times and error extents are measured and reported (if specified so). More...
static void | TestCholeskyDecompositionDemo ()
| Demonstration of usae of Cholesky decomposition. More...
static bool | QrDecomposeGrammSchmidt (IMatrix A, ref IMatrix resQ, ref IMatrix resR, double tol=1e-12)
| Calculates QR decomposition of a real invertible matrix by using Gramm-Schmidt orthogonalization. More...
static bool | QrDecompose (IMatrix A, ref IMatrix resQ, ref IMatrix resR, double tol=1e-12)
| Calculates QR decomposition of a real invertible matrix. More...
static void | QrSolve (IMatrix factorQ, IMatrix factorR, IVector b, ref IVector x)
| Solves a system of eauations with the specified QR decomposition of a real symmetric square matrix. More...
static void | QrSolve (IMatrix factorQ, IMatrix factorR, IMatrix B, ref IVector auxB, ref IVector auxX, ref IMatrix X)
| Calculates inverse of the matrix from its specified LDLT-decomposed matrix. More...
static void | QrInverse (IMatrix factorQ, IMatrix factorR, ref IVector auxB, ref IVector auxX, ref IMatrix res)
| Calculates inverse of the matrix from its specified LDLT decomposition. More...
static bool | TestMatrixProducts (bool printReports)
| Tests various matrix and vector products with fixed tolerance of 1.0E-6. More...
static bool | TestMatrixProducts (double tolerance)
| Tests various matrix and vector products, without printing reports. More...
static bool | TestMatrixProducts ()
| Tests various matrix and vector products with fixed tolerance of 1.0E-6 and without printing reports. More...
static bool | TestMatrixProducts (double tolerance, bool printReports)
| Tests various matrix and vector products. More...
static void | TestStaticMethodCommon ()
| A test method, just prints some output. More...
static void | TestStaticMethodSpecific ()
| A test method, just prints some output. More...
static bool | TestIndices (int dim1=3, int dim2=4, IMatrix providedMatrix=null)
| Performs test of converson between double indexing and flat indexing of matric elements,. Returns true if successful, false othwrwise. More...

## Properties
override int | RowCount`[get]`
| Gets the first dimension (number of rows) of the 3D matrix, i.e. 3. More...
override int | ColumnCount`[get]`
| Gets the second dimension (number of columns) of the 3D matrix, i.e. 3. More...
mat3 | Mat`[get, set]`
| Gets the struct representation of this 3D matrix. More...
double | XX`[get, set]`
| XX component. More...
double | XY`[get, set]`
| XY component. More...
double | XZ`[get, set]`
| XZ component. More...
double | YX`[get, set]`
| YX component. More...
double | YY`[get, set]`
| YY component. More...
double | YZ`[get, set]`
| YZ component. More...
double | ZX`[get, set]`
| ZX component. More...
double | ZY`[get, set]`
| ZY component. More...
double | ZZ`[get, set]`
| ZZ component. More...
override double | this[int i, int j]`[get, set]`
| Index operator. More...
Vector3d | RowX`[get, set]`
| Gets or sets the x-row of the 3D matrix. More...
Vector3d | RowY`[get, set]`
| Gets or sets the y-row of the 3D matrix. More...
Vector3d | RowZ`[get, set]`
| Gets or sets the z-row of the 3D matrix. More...
Vector3d | ColumnX`[get, set]`
| Gets or sets the x-column of the 3D matrix. More...
Vector3d | ColumnY`[get, set]`
| Gets or sets the y-column of the 3D matrix. More...
Vector3d | ColumnZ`[get, set]`
| Gets or sets the z-column of the 3D matrix. More...
override double | NormForbenius`[get]`
| Get Forbenius (or euclidean) norm of the matrix - square root of sum of squares of components. More...
override double | NormEuclidean`[get]`
| Get Forbenius (or euclidean) norm of the matrix - square root of sum of squares of components. More...
override double | Norm`[get]`
| Get Forbenius (or euclidean) norm of the matrix - square root of sum of squares of components. More...
double | Norm1`[get]`
| Get the 1 norm of the matrix - maximum over columns of sum of absolute values of components. More...
double | NormInfinity`[get]`
| Get the infinity norm of the matrix - maximum over rows of sum of absolute values of components. More...
double | Determinant`[get]`
| Gets matrix determinant. More...
double | Det`[get]`
| Gets matrix determinant. More...
override double | Trace`[get]`
| Gets matrix trace (sum of diagonal elements). More...
new Matrix3d | T`[get]`
| Gets transpose of the current matrix. More...
Matrix3d | Inverse`[get]`
| Gets inverse of the current matrix. More...
Matrix3d | Inv`[get]`
| Gets inverse of the current matrix. More...
Properties inherited from IG.Num.MatrixBase
abstract int | RowCount`[get]`
| Gets the number of rows of the current matrix. More...
abstract int | ColumnCount`[get]`
| Gets the number of columns of the current matrix. More...
virtual int | Count`[get]`
| Gets total number of elements. More...
virtual IMatrix | T`[get]`
| Returns a new matrix that is transpose of the current matrix. More...
virtual double | this[int flatIndex]`[get, set]`
| Gets or set the element indexed by a flat index in the `Matrix`. More...
virtual double | this[int row, int column]`[get, set]`
| Gets or set the element indexed by `(i, j)` in the `Matrix`. More...
virtual double | Trace`[get]`
| Gets matrix trace (sum of diagonal terms). More...
virtual double | NormForbenius`[get]`
| Gets Forbenious (or Euclidean) norm of the matrix - square root of sum of squares of elements. More...
virtual double | NormEuclidean`[get]`
| Gets Forbenious (or Euclidean) norm of the matrix - square root of sum of squares of elements. More...
virtual double | Norm`[get]`
| Gets Forbenious (or Euclidean) norm of the matrix - square root of sum of squares of elements. More...
static MatrixStore | MatrixStore`[get]`
| Gets the matrix store for recycling auxiliary matrices. More...

## Private Member Functions
Vector3d | Solve (Vector3d b)
| Returns solution of system of equations with the current system matrix and the specified right-hand sides. More...
Matrix3d | Add (Matrix3d a)
| Returns sum of the current matrix and the specified matrix. More...
Matrix3d | Subtract (Matrix3d a)
| Returns difference between the current matrix and the specified matrix. More...
Matrix3d | MultiplyRight (Matrix3d b)
| Right-multiplies the current 3D matrix with the specified matrix and returns the product. More...
Matrix3d | MultiplyLeft (Matrix3d b)
| Left-multiplies the current 3D matrix with the specified matrix and returns the product. More...
Vector3d | Multiply (Vector3d b)
| Right-multiplies the current 3D matrix with the specified 3D vector and returns the product. More...
Matrix3d | Multiply (double b)
| Multiplies the current 3D matrix with the specified scalar and returns the product. More...

## Private Attributes
mat3 | _m

## Additional Inherited Members
Static Protected Member Functions inherited from IG.Num.MatrixBase
static void | LuSolveNoPermutationsPlain (IMatrix luMatrix, IVector b, IVector x)
| Solves a system of equations with the specified LU decomposition with already permuted b. More...
static bool | CheckTestResult (IMatrix result, IMatrix referenceResult, double tolerance, bool printReports)
| Checks whether the difference between matrix result of the tested operation and some reference result is within the specified tolerance. More...
static bool | CheckTestResult (IVector result, IVector referenceResult, double tolerance, bool printReports)
| Checks whether the difference between matrix result of the tested operation and some reference result is within the specified tolerance. More...

## Detailed Description

Matrix in a 3 dimensional space.

$A Igor Jul08; Oct10;

## Constructor & Destructor Documentation

IG.Num.Matrix3d.Matrix3d | ( | Matrix3d | m | ) |
| inline

Copy constructor. Initializes components of a 3D matrix with components of another 3D matrix.

Parameters

  m | Matrix whose components are copied to the initialized matrix.

References IG.Num.Matrix3d.XX, IG.Num.Matrix3d.XY, IG.Num.Matrix3d.XZ, IG.Num.Matrix3d.YX, IG.Num.Matrix3d.YY, IG.Num.Matrix3d.YZ, IG.Num.Matrix3d.ZX, IG.Num.Matrix3d.ZY, and IG.Num.Matrix3d.ZZ.

IG.Num.Matrix3d.Matrix3d | ( | IMatrix | m | ) |
| inline

Constructor. Initializes components of a 3D matrix with components of another matrix. The specified matrix should be 3*3.

Parameters

  m | Matrix whose components are copied to the initialized matrix (should be 3*3).

IG.Num.Matrix3d.Matrix3d | ( | Vector3d | rowx,
|  | Vector3d | rowy,
|  | Vector3d | rowz
| ) |  |
| inline

Initializes 3D matrix structure with the specified components.

References IG.Num.Vector3d.X, IG.Num.Vector3d.Y, and IG.Num.Vector3d.Z.

IG.Num.Matrix3d.Matrix3d | ( | mat3 | m | ) |
| inline

Initializes components of a 3D matrix with components of the specified matrix.

Parameters

  v | Matrix whose components are copied to the initialized matrix.

IG.Num.Matrix3d.Matrix3d | ( | double | xx,
|  | double | xy,
|  | double | xz,
|  | double | yx,
|  | double | yy,
|  | double | yz,
|  | double | zx,
|  | double | zy,
|  | double | zz
| ) |  |
| inline

Initializes 3D matrix structure with the specified components.

IG.Num.Matrix3d.Matrix3d | ( | double | component | ) |
| inline

Initializes 3D with the specified component.

Parameters

  component | Value that is assigned to all matrix components.

IG.Num.Matrix3d.Matrix3d | ( | vec3 | xrow,
|  | vec3 | yrow,
|  | vec3 | zrow
| ) |  |
| inline

Initializes 3D matrix structure with the specified components.

IG.Num.Matrix3d.Matrix3d | ( | double | A[][] | ) |
| inline

Initializes a 3D matrix with elements of a jagged array.

Parameters

  A | Array from which a 3D matrix is constructed.

IG.Num.Matrix3d.Matrix3d | ( | double | A[,] | ) |
| inline

Initializes a 3D matrix with elements of a rectangular array.

Parameters

  A | Array from which a 3D matrix is constructed.

References IG.Num.A.

## Member Function Documentation

static Matrix3d IG.Num.Matrix3d.Create | ( | Matrix3d | mat | ) |
| inline static

Creates and returns a 3D matrix that is a copy of another 3D matrix.

Parameters

  mat |

Returns

static Matrix3d IG.Num.Matrix3d.Create | ( | IMatrix | mat | ) |
| inline static

Creates and returns a 3D matrix that is a copy of another (general) matrix. That matrix should be a 3*3 matrix, otherwise exception is thrown.

Parameters

  mat | Matrix whose components are copied to the created matrix. Should be a 3*3 matrix, otherwisee exception is thrown.

Returns

static Matrix3d IG.Num.Matrix3d.Create | ( | double | A[][] | ) |
| inline static

Constructs a matrix from a copy of a 2-D array by deep-copy.

Parameters

  A | Two-dimensional array of doubles.

static Matrix3d IG.Num.Matrix3d.Create | ( | double | A[,] | ) |
| inline static

Constructs a 3D matrix from a copy of a 2-D array by deep-copy.

Parameters

  A | Two-dimensional array of doubles.

References IG.Num.A.

static Matrix3d IG.Num.Matrix3d.CreateFromColumns | ( | IList< IVector > | columnVectors | ) |
| inline static

Construct a complex matrix from a set of real column vectors.

static Matrix3d IG.Num.Matrix3d.CreateFromRows | ( | IList< Vector > | rowVectors | ) |
| inline static

Construct a complex matrix from a set of real row vectors.

static Matrix3d IG.Num.Matrix3d.Identity | ( |  | ) |
| inline static

Creates a d1*d2 identity matrix.

Parameters

  d1 | Number of rows.
  d2 | Number of columns.

Returns
  An d1*d2 matrix with ones on the diagonal and zeros elsewhere.

static Matrix3d IG.Num.Matrix3d.Zeros | ( |  | ) |
| inline static

Creates a 3D matrix filled with 0.

Parameters

  d1 | Number of rows.
  d2 | Number of columns.

static Matrix3d IG.Num.Matrix3d.Ones | ( |  | ) |
| inline static

Creates a 3D matrix filled with 1.

Parameters

  d1 | Number of rows.
  d2 | Number of columns.

static Matrix3d IG.Num.Matrix3d.Diagonal | ( | IVector | diagonalVector | ) |
| inline static

Creates a new diagonal d1*d2 matrix based on the diagonal vector.

Parameters

  diagonalVector | The values of the matrix diagonal.
  d1 | Number of rows.
  d2 | Number of columns.

Returns
  A d1*d2 matrix with the values from the diagonal vector on the diagonal and zeros elsewhere.

static Matrix3d IG.Num.Matrix3d.Random | ( |  | ) |
| inline static

Creates and returns a 3D matrix with uniformly distributed random elements in the [0, 1) interval.

Returns
  A 3D matrix with uniformly distributed random elements in `[0, 1)` interval.

References IG.Num.MatrixBase.SetRandom().

static Matrix3d IG.Num.Matrix3d.Random | ( | IRandomGenerator | rnd | ) |
| inline static

Creates and returns a 3D matrix with uniformly distributed random elements in the [0, 1) interval.

Parameters

  rnd | Random generator that is used for generation of elements.

Returns
  A 3D matrix with uniformly distributed random elements in `[0, 1)` interval.

References IG.Num.MatrixBase.SetRandom().

virtual Matrix3d IG.Num.Matrix3d.GetCopyThis | ( |  | ) |
| inline virtual

Returns a copy of the current 3D matrix.

Returns

override MatrixBase IG.Num.Matrix3d.GetCopyBase | ( |  | ) |
| inline virtual

Returns a deep copy of the current 3D matrix.

Implements IG.Num.MatrixBase.

Matrix3d IG.Num.Matrix3d.GetNewThis | ( | int | rowCount,
|  | int | ColumnCount
| ) |  |
| inline

Returns a copy of the current 3D matrix.

override MatrixBase IG.Num.Matrix3d.GetNewBase | ( | int | rowCount,
|  | int | columnCount
| ) |  |
| inline virtual

Creates and returns a new 3D matrix with the specified dimensions, and of the same type as the current matrix.

Parameters

  rowCount | Number fo rows of the newly created matrix. Must be 3.
  columnCount | Number of columns of the newly created matrix. Must be 3.

Returns
  A newly created matrix of the specified dimensions and of the same type as the current matrix.

Implements IG.Num.MatrixBase.

Matrix3d IG.Num.Matrix3d.GetNewThis | ( |  | ) |
| inline

Creates and returns a new matrix with the same dimensions and of the same type as the current matrix.

override MatrixBase IG.Num.Matrix3d.GetNewBase | ( |  | ) |
| inline virtual

Creates and returns a new matrix with the same dimensions and of the same type as the current matrix.

Implements IG.Num.MatrixBase.

Vector3d IG.Num.Matrix3d.GetNewVectorThis | ( | int | length | ) |
| inline

Creates and returns a new 3D vector with the specified dimension (which must be null), and of the type that is consistent with the type of the current matrix.

Parameters

  length | Dimension of the newly created vector.

Returns
  A newly created vector of the specified dimension and of the same type as the current vector.

override VectorBase IG.Num.Matrix3d.GetNewVectorBase | ( | int | length | ) |
| inline virtual

Creates and returns a new vector with the specified dimension, and of the type that is consistent with the type of the current matrix.

Parameters

  length | Dimension of the newly created vector.

Returns
  A newly created vector of the specified dimension and of the same type as the current vector.

Implements IG.Num.MatrixBase.

override int IG.Num.Matrix3d.GetHashCode | ( |  | ) |
| inline

Returns the hash code (hash function) of the current matrix.

This method calls the MatrixBase.GetHashCode to calculate the hash code, which is standard for all implementations of the IMatrix interface.

Two matrices that have the same dimensions and equal elements will produce the same hash codes.

Probability that two different matrices will produce the same hash code is small but it exists.

Overrides the object.GetHashCode method.

References IG.Num.MatrixBase.GetHashCode().

override bool IG.Num.Matrix3d.Equals | ( | Object | obj | ) |
| inline

Returns a value indicating whether the specified object is equal to the current matrix.

True is returned if the object is a non-null matrix (i.e. it implements the IMatrix interface), and has the same dimension and equal elements as the current matrix.

This method calls the MatrixBase.Equals to obtain the returned value, which is standard for all implementations of the IMatrix interface.

Overrides the object.Equals method.

References IG.Num.MatrixBase.Equals().

Matrix3d IG.Num.Matrix3d.NormalizedEuclidean | ( |  | ) |
| inline

Returns this matrix normalized with Euclidean norm.

Matrix3d IG.Num.Matrix3d.NormalizedForbenius | ( |  | ) |
| inline

Returns this matrix normalized with Euclidean norm.

Matrix3d IG.Num.Matrix3d.Normalized1 | ( |  | ) |
| inline

Returns this matrix normalized with 1 norm.

Matrix3d IG.Num.Matrix3d.NormalizedInfinity | ( |  | ) |
| inline

Returns this matrix normalized with infinity norm.

Vector3d IG.Num.Matrix3d.Solve | ( | Vector3d | b | ) |
| inline private

Returns solution of system of equations with the current system matrix and the specified right-hand sides.

Parameters

  b | Vector of right-hand sides of equations.

Returns

References IG.Num.Vector3d.Vec.

Matrix3d IG.Num.Matrix3d.Add | ( | Matrix3d | a | ) |
| inline private

Returns sum of the current matrix and the specified matrix.

References IG.Num.Matrix3d.Mat.

Referenced by IG.Num.Matrix3d.operator+().

Matrix3d IG.Num.Matrix3d.Subtract | ( | Matrix3d | a | ) |
| inline private

Returns difference between the current matrix and the specified matrix.

References IG.Num.Matrix3d.Mat.

Referenced by IG.Num.Matrix3d.operator-().

Matrix3d IG.Num.Matrix3d.MultiplyRight | ( | Matrix3d | b | ) |
| inline private

Right-multiplies the current 3D matrix with the specified matrix and returns the product.

Parameters

  b | Right-hand side factor of multiplication.

Returns
  this*b

References IG.Num.Matrix3d.Mat.

Referenced by IG.Num.Matrix3d.operator*().

Matrix3d IG.Num.Matrix3d.MultiplyLeft | ( | Matrix3d | b | ) |
| inline private

Left-multiplies the current 3D matrix with the specified matrix and returns the product.

Parameters

  b | Left-hand side factor of multiplication.

Returns
  b*this

References IG.Num.Matrix3d.Mat.

Vector3d IG.Num.Matrix3d.Multiply | ( | Vector3d | b | ) |
| inline private

Right-multiplies the current 3D matrix with the specified 3D vector and returns the product.

Parameters

  b | Right-hand side factor of multiplication.

Returns
  this*b

References IG.Num.Vector3d.Vec.

Referenced by IG.Num.Matrix3d.operator*(), and IG.Num.Matrix3d.operator/().

Matrix3d IG.Num.Matrix3d.Multiply | ( | double | b | ) |
| inline private

Multiplies the current 3D matrix with the specified scalar and returns the product.

Parameters

  b | Factor of multiplication.

Returns
  this*b

static Matrix3d IG.Num.Matrix3d.Copy | ( | Matrix3d | m | ) |
| inline static

Returns a copy of the specified 3D matrix.

Parameters

  m | Matrix whose copy is returned.

static void IG.Num.Matrix3d.Negate | ( | Matrix3d | m,
|  | ref Matrix3d | res
| ) |  |
| inline static

Negates the specified 3D matrix and stores its copy in the resulting matrix.

Parameters

  v | Matrix to be negated.
  res | Matrix where the result is stored.

References IG.Num.Matrix3d.Mat, and IG.Num.mat3.Negate().

static int IG.Num.Matrix3d.EigenSystem2d | ( | Matrix3d | a,
|  | ref Matrix3d | eigenvec,
|  | ref Vector3d | eigenval
| ) |  |
| inline static

Calculates eigenvectors and eigenvalues of a 2x2 matrix a and stores eigenvectors to lines of eigenvec and eigenvalues to eigenval. eigenvec can be the same matrix as a. The number of different real eigenvalues is returned. Ref.: linalg.nb Not tested yet!

Parameters

  a | 2D Matrix whose eigenvalues and eigenvectors are calculated.
  eigenvec | Matrix where eigenvectors are stored as rows.
  eigenval | Vector where eigenvalues are stored.

Returns
  The number of different real eigenvalues.

$A Igor Aug08, Oct10;

References IG.Num.mat3.EigenSystem2d(), and IG.Num.Matrix3d.Mat.

static Matrix3d IG.Num.Matrix3d.operator+ | ( | Matrix3d | m | ) |
| inline static

Unary plus for 3D matrices, returns the operand.

static Matrix3d IG.Num.Matrix3d.operator- | ( | Matrix3d | a | ) |
| inline static

Unary negation for 3D matrices, returns the negative operand.

References IG.Num.Matrix3d.XX, IG.Num.Matrix3d.XY, IG.Num.Matrix3d.XZ, IG.Num.Matrix3d.YX, IG.Num.Matrix3d.YY, IG.Num.Matrix3d.YZ, IG.Num.Matrix3d.ZX, IG.Num.Matrix3d.ZY, and IG.Num.Matrix3d.ZZ.

static Matrix3d IG.Num.Matrix3d.operator+ | ( | Matrix3d | a,
|  | Matrix3d | b
| ) |  |
| inline static

Matrix addition in 3D.

References IG.Num.Matrix3d.Add().

static Matrix3d IG.Num.Matrix3d.operator- | ( | Matrix3d | a,
|  | Matrix3d | b
| ) |  |
| inline static

Matrix subtraction in 3D.

References IG.Num.Matrix3d.Subtract().

static Matrix3d IG.Num.Matrix3d.operator* | ( | Matrix3d | a,
|  | Matrix3d | b
| ) |  |
| inline static

Matrix multiplication in 3D.

References IG.Num.Matrix3d.MultiplyRight().

static Vector3d IG.Num.Matrix3d.operator* | ( | Matrix3d | a,
|  | Vector3d | b
| ) |  |
| inline static

Matrix with vector multiplication in 3D.

References IG.Num.Matrix3d.Multiply().

static Matrix3d IG.Num.Matrix3d.operator* | ( | Matrix3d | a,
|  | double | b
| ) |  |
| inline static

Product of a 3D matrix by a scalar.

References IG.Num.Matrix3d.Multiply().

static Matrix3d IG.Num.Matrix3d.operator* | ( | double | a,
|  | Matrix3d | b
| ) |  |
| inline static

Product of a 3D matrix by a scalar.

References IG.Num.Matrix3d.Multiply().

static Matrix3d IG.Num.Matrix3d.operator/ | ( | Matrix3d | a,
|  | double | b
| ) |  |
| inline static

Division of a 3D matrix by a scalar.

References IG.Num.Matrix3d.Multiply().

void IG.Num.Matrix3d.Read | ( |  | ) |
| inline

Reads 3D matrix components from a console.

void IG.Num.Matrix3d.Read | ( | string | name | ) |
| inline

Reads 3D matrix components from a console.

Parameters

  name | Name of the matrix to be read; it is written as orientation to the user and can be null.

References IG.Num.mat3.Read().

## Member Data Documentation

mat3 IG.Num.Matrix3d._m
| private

## Property Documentation

override int IG.Num.Matrix3d.RowCount
| get

Gets the first dimension (number of rows) of the 3D matrix, i.e. 3.

override int IG.Num.Matrix3d.ColumnCount
| get

Gets the second dimension (number of columns) of the 3D matrix, i.e. 3.

mat3 IG.Num.Matrix3d.Mat
| get set protected

Gets the struct representation of this 3D matrix.

Referenced by IG.Num.Matrix3d.Add(), IG.Num.Matrix3d.EigenSystem2d(), IG.Num.Matrix3d.MultiplyLeft(), IG.Num.Matrix3d.MultiplyRight(), IG.Num.Matrix3d.Negate(), and IG.Num.Matrix3d.Subtract().

double IG.Num.Matrix3d.XX
| get set

XX component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.XY
| get set

XY component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.XZ
| get set

XZ component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.YX
| get set

YX component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.YY
| get set

YY component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.YZ
| get set

YZ component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.ZX
| get set

ZX component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.ZY
| get set

ZY component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

double IG.Num.Matrix3d.ZZ
| get set

ZZ component.

Referenced by IG.Num.Matrix3d.Matrix3d(), and IG.Num.Matrix3d.operator-().

override double IG.Num.Matrix3d.this[int i, int j]
| get set

Index operator.

Parameters

  i | Component index.

Returns
  The specified component of a 3D vector.

Vector3d IG.Num.Matrix3d.RowX
| get set

Gets or sets the x-row of the 3D matrix.

Vector3d IG.Num.Matrix3d.RowY
| get set

Gets or sets the y-row of the 3D matrix.

Vector3d IG.Num.Matrix3d.RowZ
| get set

Gets or sets the z-row of the 3D matrix.

Vector3d IG.Num.Matrix3d.ColumnX
| get set

Gets or sets the x-column of the 3D matrix.

Vector3d IG.Num.Matrix3d.ColumnY
| get set

Gets or sets the y-column of the 3D matrix.

Vector3d IG.Num.Matrix3d.ColumnZ
| get set

Gets or sets the z-column of the 3D matrix.

override double IG.Num.Matrix3d.NormForbenius
| get

Get Forbenius (or euclidean) norm of the matrix - square root of sum of squares of components.

override double IG.Num.Matrix3d.NormEuclidean
| get

Get Forbenius (or euclidean) norm of the matrix - square root of sum of squares of components.

override double IG.Num.Matrix3d.Norm
| get

Get Forbenius (or euclidean) norm of the matrix - square root of sum of squares of components.

double IG.Num.Matrix3d.Norm1
| get

Get the 1 norm of the matrix - maximum over columns of sum of absolute values of components.

double IG.Num.Matrix3d.NormInfinity
| get

Get the infinity norm of the matrix - maximum over rows of sum of absolute values of components.

double IG.Num.Matrix3d.Determinant
| get private

Gets matrix determinant.

double IG.Num.Matrix3d.Det
| get private

Gets matrix determinant.

override double IG.Num.Matrix3d.Trace
| get

Gets matrix trace (sum of diagonal elements).

new Matrix3d IG.Num.Matrix3d.T
| get

Gets transpose of the current matrix.

Matrix3d IG.Num.Matrix3d.Inverse
| get private

Gets inverse of the current matrix.

Matrix3d IG.Num.Matrix3d.Inv
| get private

Gets inverse of the current matrix.

The documentation for this class was generated from the following file:

- igbase/numeric/geometry/Matrix3DClass.cs