Module |
|
Header |
/Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/DenseMatrix.h |
Include |
#include "Chaos/DenseMatrix.h" |
template<int32 T_MAXELEMENTS>
class TDenseMatrix
A matrix with run-time variable dimensions, up to an element limit defined at compile-time.
Elements are stored in row-major order (i.e., elements in a row are adjacent in memory).
that FMatrix stores elements in column-major order so that we can access the columns quickly which is handy when you have rotation matrices and want the spatial axes. We don't care about that so we use the more conventional row-major indexing and matching storage.
Name | Description | |
---|---|---|
|
TDenseMatrix() |
|
|
TDenseMatrix ( |
|
|
TDenseMatrix |
Name | Description | ||
---|---|---|---|
|
TDenseMatrix... |
Add ( |
Return C = A + B |
|
TDenseMatrix... |
Add_Symmetric ( |
Return C = A + B, where A and B are symetric. |
|
AddRows ( |
Add uninitialized rows to the matrix. |
|
|
const FReal ... |
At |
Return a read-only reference to the element at the specified row and column. |
|
FReal & |
At |
Return a writable reference to the element at the specified row and column. |
|
TDenseMatrix... |
Divide ( |
Return C = A / V, where A is an MxN matrix, and V a real number. |
|
TDenseMatrix... |
DotProduct ( |
Return C = At x B. If A and B are column vectors (Nx1 matrices), this is a vector dot product. |
|
Init |
Set the dimensions and initial values of the matrix. |
|
|
TDenseMatrix... |
Make |
Create a matrix with the specified dimensions, and initialize all elements with "V". |
|
TDenseMatrix... |
Make |
Factory methods Create a matrix with the specified dimensions, but all elements are uninitialized. |
|
TDenseMatrix... |
Make ( |
Create a copy of the 3x3 matrix. |
|
TDenseMatrix... |
Make ( |
Create a copy of the 3x1 columns vector. |
|
TDenseMatrix... |
Make |
Create a matrix with the specified elements supplied as an array in row-major order (i.e., the first N elements are for Row 0, the next N for Row 1, etc., where N is the number of columns). |
|
TDenseMatrix... |
MakeDiagonal |
Create a matrix with all elemets set to zero, except the diagonal elements. |
|
TDenseMatrix... |
MakeIdentity ( |
Create an identity matrix. |
|
TDenseMatrix... |
Multiply ( |
Return C = A x V, where A is an MxN matrix, and V a real number. |
|
TDenseMatrix... |
Multiply ( |
Return C = A x V, where A is an MxN matrix, and V a real number. |
|
TDenseMatrix... |
MultiplyAB ( |
Return C = A x B, where B is an 6xN matrix, and A is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). |
|
TDenseMatrix... |
MultiplyAB ( |
Return C = A x B, where A is an Nx6 matrix, and B is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). |
|
TDenseMatrix... |
MultiplyAB ( |
Return C = A x B, the product of A and B where each element of C is Cij = DotProduct(A.GetRow(i), B.GetColumns(j)). |
|
TDenseMatrix... |
MultiplyAB_Symmetric ( |
Return C = A x B, where the results is known to be symmetric. /see MultiplyAtB. |
|
TDenseMatrix... |
MultiplyABt ( |
Return C = A x Transpose(B), where B is an Nx6 matrix, and A is a 6x6 mass matrix (Mass in upper left 3x3 diagonals, Inertia in lower right 3x3). |
|
TDenseMatrix... |
MultiplyABt ( |
Return C = A x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltAtBt. |
|
TDenseMatrix... |
MultiplyAtB ( |
Return C = Transpose(A) x B. /see MultiplyAB, MultiplyABt, MultipltAtBt. |
|
TDenseMatrix... |
MultiplyAtBt ( |
Return C = Transpose(A) x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltABt. |
|
TDenseMatrix... |
MultiplyBCAddA_Symmetric ( |
Return C = A + B x C, where the A and (B x C) are known to be symmetric. |
|
TDenseMatrix... |
Negate ( |
Copy a matrix and set each element to its negative. |
|
NumColumns() |
The number of columns in the matrix. |
|
|
NumElements() |
The number of elements in the matrix. |
|
|
NumRows() |
The number of rows in the matrix. |
|
|
Set ( |
Set all elements to 'V'. |
|
|
SetAt |
Set the element |
|
|
SetBlockAt ( |
Set the block starting at ("RowOffset", "ColumnOffset") from the specified matrix "V" |
|
|
SetBlockAt |
Set the 3x3 block starting at ("RowOffset", "ColumnOffset") from the specified 3x3 matrix "V" ( assumes the input UE matrix is column-major order) |
|
|
SetBlockAtDiagonal33 |
Set the specified 3x3 block to a diagonal matrix with the specified diagonal and off-diagonal values. |
|
|
SetColumnAt |
||
|
SetColumnAt |
Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the column to the values in "V". |
|
|
SetDiagonal ( |
Set the diagonal elements to 'V'. Does not set off-diagonal elements. /see MakeDiagonal |
|
|
SetDiagonalAt |
Set the "Num" diagonal elements starting from ("Start", "Start") to "V". |
|
|
SetDimensions |
Set the dimensions of the matrix, but do not initialize any values. |
|
|
SetRowAt |
Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the row to the values in "V". |
|
|
SetRowAt |
||
|
SetRowAt |
||
|
TDenseMatrix... |
Subtract ( |
Return C = A - B |
|
TDenseMatrix... |
Transpose ( |
Math operations Return the transpose of 'A'. |
Name | Description | ||
---|---|---|---|
|
TDenseMatrix... |
operator= ( |
Name |
Description |
---|---|
MaxElements |