TDenseMatrix

A matrix with run-time variable dimensions, up to an element limit defined at compile-time.

Windows
MacOS
Linux

References

Module

Chaos

Header

/Engine/Source/Runtime/Experimental/Chaos/Public/Chaos/DenseMatrix.h

Include

#include "Chaos/DenseMatrix.h"

Syntax

template<int32 T_MAXELEMENTS>
class TDenseMatrix

Remarks

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). Note 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.

Constructors

Name Description

Public function

TDenseMatrix()

Public function

TDenseMatrix

(
    const TDenseMatrix < MaxElements >&...
)

Public function

TDenseMatrix

(
    const int32 InNRows,
    const int32 InNCols
)

Functions

Name Description

Public function Static

TDenseMatrix ...

 

Add

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = A + B

Public function Static

TDenseMatrix ...

 

Add_Symmetric

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = A + B, where A and B are symetric.

Public function

int32

 

AddRows

(
    const int32 InNumRows
)

Add uninitialized rows to the matrix.

Public function Const

const FReal ...

 

At

(
    const int32 RowIndex,
    const int32 ColumnIndex
)

Return a read-only reference to the element at the specified row and column.

Public function

FReal &

 

At

(
    const int32 RowIndex,
    const int32 ColumnIndex
)

Return a writable reference to the element at the specified row and column.

Public function Static

TDenseMatrix ...

 

Divide

(
    const TDenseMatrix < T_EA >& A,
    const FReal V
)

Return C = A / V, where A is an MxN matrix, and V a real number.

Public function Static

TDenseMatrix ...

 

DotProduct

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = At x B. If A and B are column vectors (Nx1 matrices), this is a vector dot product.

Public function

void

 

Init

(
    const int32 InNRows,
    const int32 InNCols,
    FReal V
)

Set the dimensions and initial values of the matrix.

Public function Static

TDenseMatrix ...

 

Make

(
    const int32 InNumRows,
    const int32 InNumCols,
    const FReal V
)

Create a matrix with the specified dimensions, and initialize all elements with "V".

Public function Static

TDenseMatrix ...

 

Make

(
    const int32 InNumRows,
    const int32 InNumCols
)

Factory methods Create a matrix with the specified dimensions, but all elements are uninitialized.

Public function Static

TDenseMatrix ...

 

Make

(
    const FMatrix33 & InM
)

Create a copy of the 3x3 matrix.

Public function Static

TDenseMatrix ...

 

Make

(
    const FVec3 & InM
)

Create a copy of the 3x1 columns vector.

Public function Static

TDenseMatrix ...

 

Make

(
    const int32 InNumRows,
    const int32 InNumCols,
    const FReal * V,
    const int32 VLen
)

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).

Public function Static

TDenseMatrix ...

 

MakeDiagonal

(
    const int32 InNumRows,
    const int32 InNumCols,
    const FReal D
)

Create a matrix with all elemets set to zero, except the diagonal elements.

Public function Static

TDenseMatrix ...

 

MakeIdentity

(
    const int32 InDim
)

Create an identity matrix.

Public function Static

TDenseMatrix ...

 

Multiply

(
    const FReal V,
    const TDenseMatrix < T_EA >& A
)

Return C = A x V, where A is an MxN matrix, and V a real number.

Public function Static

TDenseMatrix ...

 

Multiply

(
    const TDenseMatrix < T_EA >& A,
    const FReal V
)

Return C = A x V, where A is an MxN matrix, and V a real number.

Public function Static

TDenseMatrix ...

 

MultiplyAB

(
    const FMassMatrix & A,
    const TDenseMatrix < T_EB >& B
)

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).

Public function Static

TDenseMatrix ...

 

MultiplyAB

(
    const TDenseMatrix < T_EA >& A,
    const FMassMatrix & B
)

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).

Public function Static

TDenseMatrix ...

 

MultiplyAB

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

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)).

Public function Static

TDenseMatrix ...

 

MultiplyAB_Symmetric

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = A x B, where the results is known to be symmetric. /see MultiplyAtB.

Public function Static

TDenseMatrix ...

 

MultiplyABt

(
    const FMassMatrix & A,
    const TDenseMatrix < T_EB >& B
)

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).

Public function Static

TDenseMatrix ...

 

MultiplyABt

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = A x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltAtBt.

Public function Static

TDenseMatrix ...

 

MultiplyAtB

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = Transpose(A) x B. /see MultiplyAB, MultiplyABt, MultipltAtBt.

Public function Static

TDenseMatrix ...

 

MultiplyAtBt

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = Transpose(A) x Transpose(B). /see MultiplyAB, MultiplyAtB, MultipltABt.

Public function Static

TDenseMatrix ...

 

MultiplyBCAddA_Symmetric

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B,
    const TDenseMatrix < T_EC >& C
)

Return C = A + B x C, where the A and (B x C) are known to be symmetric.

Public function Static

TDenseMatrix ...

 

Negate

(
    const TDenseMatrix < T_EA >& A
)

Copy a matrix and set each element to its negative.

Public function Const

int32

 

NumColumns()

The number of columns in the matrix.

Public function Const

int32

 

NumElements()

The number of elements in the matrix.

Public function Const

int32

 

NumRows()

The number of rows in the matrix.

Public function

void

 

Set

(
    FReal V
)

Set all elements to 'V'.

Public function

void

 

SetAt

(
    const int32 RowIndex,
    const int32 ColumnIndex,
    const FReal V
)

Set the element

Public function

void

 

SetBlockAt

(
    const int32 RowOffset,
    const int32 ColumnOffset,
    const TDenseMatrix < T_EA >& V
)

Set the block starting at ("RowOffset", "ColumnOffset") from the specified matrix "V"

Public function

void

 

SetBlockAt

(
    const int32 RowOffset,
    const int32 ColumnOffset,
    const FMatrix33 & V
)

Set the 3x3 block starting at ("RowOffset", "ColumnOffset") from the specified 3x3 matrix "V" (note: assumes the input UE matrix is column-major order)

Public function

void

 

SetBlockAtDiagonal33

(
    const int32 RowOffset,
    const int32 ColumnOffset,
    const FReal VDiag,
    const FReal VOffDiag
)

Set the specified 3x3 block to a diagonal matrix with the specified diagonal and off-diagonal values.

Public function

void

 

SetColumnAt

(
    const int32 RowIndex,
    const int32 ColumnIndex,
    const FVec3 & V
)

Public function

void

 

SetColumnAt

(
    const int32 RowIndex,
    const int32 ColumnIndex,
    const FReal * V,
    const int32 NumV
)

Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the column to the values in "V".

Public function

void

 

SetDiagonal

(
    FReal V
)

Set the diagonal elements to 'V'. Does not set off-diagonal elements. /see MakeDiagonal

Public function

void

 

SetDiagonalAt

(
    int32 Start,
    int32 Num,
    FReal V
)

Set the "Num" diagonal elements starting from ("Start", "Start") to "V".

Public function

void

 

SetDimensions

(
    const int32 InNumRows,
    const int32 InNumColumns
)

Set the dimensions of the matrix, but do not initialize any values.

Public function

void

 

SetRowAt

(
    const int32 RowIndex,
    const int32 ColumnIndex,
    const FReal * V,
    const int32 NumV
)

Starting from element ("RowIndex", "ColumnIndex"), set the next "NumV" elements in the row to the values in "V".

Public function

void

 

SetRowAt

(
    const int32 RowIndex,
    const int32 ColumnIndex,
    const FVec3 & V
)

Public function

void

 

SetRowAt

(
    const int32 RowIndex,
    const int32 ColumnIndex,
    const FReal V0,
    const FReal V1,
    const FReal V2
)

Public function Static

TDenseMatrix ...

 

Subtract

(
    const TDenseMatrix < T_EA >& A,
    const TDenseMatrix < T_EB >& B
)

Return C = A - B

Public function Static

TDenseMatrix ...

 

Transpose

(
    const TDenseMatrix < T_EA >& A
)

Math operations Return the transpose of 'A'.

Operators

Name Description

Public function

TDenseMatrix ...

 

operator=

(
    const TDenseMatrix < MaxElements >&...
)

Constants

Name

Description

MaxElements

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback