|
| | TDenseMatrix () |
| |
| | TDenseMatrix (const int32 InNRows, const int32 InNCols) |
| |
| | TDenseMatrix (const TDenseMatrix< MaxElements > &A) |
| |
| TDenseMatrix< MaxElements > & | operator= (const TDenseMatrix< MaxElements > &A) |
| |
| FORCEINLINE int32 | NumRows () const |
| |
| FORCEINLINE int32 | NumColumns () const |
| |
| FORCEINLINE int32 | NumElements () const |
| |
| FORCEINLINE void | SetDimensions (const int32 InNumRows, const int32 InNumColumns) |
| |
| FORCEINLINE int32 | AddRows (const int32 InNumRows) |
| |
| FORCEINLINE FReal & | At (const int32 RowIndex, const int32 ColumnIndex) |
| |
| FORCEINLINE const FReal & | At (const int32 RowIndex, const int32 ColumnIndex) const |
| |
| void | Init (const int32 InNRows, const int32 InNCols, FReal V) |
| |
| FORCEINLINE void | SetAt (const int32 RowIndex, const int32 ColumnIndex, const FReal V) |
| |
| void | Set (FReal V) |
| |
| void | SetDiagonal (FReal V) |
| |
| void | SetDiagonalAt (int32 Start, int32 Num, FReal V) |
| |
| void | SetRowAt (const int32 RowIndex, const int32 ColumnIndex, const FReal *V, const int32 NumV) |
| |
| void | SetRowAt (const int32 RowIndex, const int32 ColumnIndex, const FVec3 &V) |
| |
| void | SetRowAt (const int32 RowIndex, const int32 ColumnIndex, const FReal V0, const FReal V1, const FReal V2) |
| |
| void | SetColumnAt (const int32 RowIndex, const int32 ColumnIndex, const FReal *V, const int32 NumV) |
| |
| void | SetColumnAt (const int32 RowIndex, const int32 ColumnIndex, const FVec3 &V) |
| |
| template<int32 T_EA> |
| void | SetBlockAt (const int32 RowOffset, const int32 ColumnOffset, const TDenseMatrix< T_EA > &V) |
| |
| void | SetBlockAt (const int32 RowOffset, const int32 ColumnOffset, const FMatrix33 &V) |
| |
| void | SetBlockAtDiagonal33 (const int32 RowOffset, const int32 ColumnOffset, const FReal VDiag, const FReal VOffDiag) |
| |
|
| static TDenseMatrix< MaxElements > | Make (const int32 InNumRows, const int32 InNumCols) |
| |
| static TDenseMatrix< MaxElements > | Make (const int32 InNumRows, const int32 InNumCols, const FReal V) |
| |
| static TDenseMatrix< MaxElements > | Make (const int32 InNumRows, const int32 InNumCols, const FReal *V, const int32 VLen) |
| |
| static TDenseMatrix< MaxElements > | Make (const FVec3 &InM) |
| |
| static TDenseMatrix< MaxElements > | Make (const FMatrix33 &InM) |
| |
| static TDenseMatrix< MaxElements > | MakeDiagonal (const int32 InNumRows, const int32 InNumCols, const FReal D) |
| |
| static TDenseMatrix< MaxElements > | MakeIdentity (const int32 InDim) |
| |
| template<int32 T_EA> |
| static TDenseMatrix< MaxElements > | Transpose (const TDenseMatrix< T_EA > &A) |
| |
| template<int32 T_EA> |
| static TDenseMatrix< MaxElements > | Negate (const TDenseMatrix< T_EA > &A) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | Add (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | Add_Symmetric (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | Subtract (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | MultiplyAB (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | MultiplyAtB (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | MultiplyABt (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | MultiplyAtBt (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | MultiplyAB_Symmetric (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA, int32 T_EB, int32 T_EC> |
| static TDenseMatrix< MaxElements > | MultiplyBCAddA_Symmetric (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B, const TDenseMatrix< T_EC > &C) |
| |
| template<int32 T_EA> |
| static TDenseMatrix< MaxElements > | MultiplyAB (const TDenseMatrix< T_EA > &A, const FMassMatrix &B) |
| |
| template<int32 T_EB> |
| static TDenseMatrix< MaxElements > | MultiplyAB (const FMassMatrix &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EB> |
| static TDenseMatrix< MaxElements > | MultiplyABt (const FMassMatrix &A, const TDenseMatrix< T_EB > &B) |
| |
| template<int32 T_EA> |
| static TDenseMatrix< MaxElements > | Multiply (const TDenseMatrix< T_EA > &A, const FReal V) |
| |
| template<int32 T_EA> |
| static TDenseMatrix< MaxElements > | Multiply (const FReal V, const TDenseMatrix< T_EA > &A) |
| |
| template<int32 T_EA> |
| static TDenseMatrix< MaxElements > | Divide (const TDenseMatrix< T_EA > &A, const FReal V) |
| |
| template<int32 T_EA, int32 T_EB> |
| static TDenseMatrix< MaxElements > | DotProduct (const TDenseMatrix< T_EA > &A, const TDenseMatrix< T_EB > &B) |
| |
template<
int32 T_MAXELEMENTS>
class Chaos::TDenseMatrix< T_MAXELEMENTS >
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.