|
Simbody
3.4 (development)
|
Matrix "storage" refers to the physical layout of data in the computer’s memory. More...
#include <MatrixCharacteristics.h>
Classes | |
| struct | Mask |
| Use this class to represent sets of acceptable values for each of the storage attributes (packing, position, order, diagonal). More... | |
Public Types | |
| enum | Packing { NoPacking = 0x0000, Full = 0x0001, TriInFull = 0x0002, TriPacked = 0x0004, Banded = 0x0008, Vector = 0x0010, Scalar = 0x0020, Permutation = 0x0040 } |
| enum | Placement { NoPlacement = 0x0000, Lower = 0x0001, Upper = 0x0002 } |
| enum | Order { NoOrder = 0x0000, ColumnOrder = 0x0001, RowOrder = 0x0002 } |
| enum | Diagonal { NoDiag = 0x0000, StoredDiag = 0x0001, AssumedDiag = 0x0002 } |
| typedef unsigned short | PackingMask |
| typedef unsigned short | PlacementMask |
| typedef unsigned short | OrderMask |
| typedef unsigned short | DiagonalMask |
Public Member Functions | |
| std::string | name () const |
| Mask | mask () const |
| Calculate the commitment mask associated with specifying "this" set of storage attributes as a commitment. | |
| MatrixStorage () | |
| Default constructor leaves all fields unspecified. | |
| MatrixStorage (Packing pk, Placement pl=NoPlacement, Order o=NoOrder, Diagonal d=NoDiag) | |
| This constructor is also an implicit conversion from the Packing enum to a MatrixStorage object which does not contain any specification for placement, order, or storage of diagonal elements. | |
| MatrixStorage (Packing pk, Order o) | |
| This constructor is for the common case of just packing and order, with no particular placement and a stored diagonal. | |
| MatrixStorage & | setMissingAttributes () |
| Assuming this is an actual matrix description, set any unspecified attributes to appropriate defaults to match the specified packing. | |
| MatrixStorage & | setToNone () |
| Restore this object to its default-constructed state of "none". | |
| MatrixStorage & | setPacking (Packing p) |
| MatrixStorage & | setPlacement (Placement p) |
| MatrixStorage & | setOrder (Order o) |
| MatrixStorage & | setDiagonal (Diagonal d) |
| Packing | getPacking () const |
| Placement | getPlacement () const |
| Order | getOrder () const |
| Diagonal | getDiagonal () const |
Static Public Member Functions | |
| static const char * | name (Packing) |
| static const char * | name (Placement) |
| static const char * | name (Order) |
| static const char * | name (Diagonal) |
| static MatrixStorage | calcDefaultStorage (const MatrixStructure &, const MatrixOutline &) |
Static Public Attributes | |
| static const PackingMask | AllPacking = 0x007fU |
| static const PackingMask | UncommittedPacking = 0xffffU |
| static const PlacementMask | AllPlacement = 0x0003U |
| static const PlacementMask | UncommittedPlacement = 0xffffU |
| static const OrderMask | AllOrder = 0x03U |
| static const OrderMask | UncommittedOrder = 0xffU |
| static const DiagonalMask | AllDiagonal = 0x0003U |
| static const DiagonalMask | UncommittedDiagonal = 0xffffU |
Matrix "storage" refers to the physical layout of data in the computer’s memory.
Whenever possible we attempt to store data in a format that enables use of special high performance methods, such as those available in the SimTK LAPACK/BLAS implementation.
| typedef unsigned short SimTK::MatrixStorage::PackingMask |
| typedef unsigned short SimTK::MatrixStorage::PlacementMask |
| typedef unsigned short SimTK::MatrixStorage::OrderMask |
| typedef unsigned short SimTK::MatrixStorage::DiagonalMask |
| SimTK::MatrixStorage::MatrixStorage | ( | ) | [inline] |
Default constructor leaves all fields unspecified.
| SimTK::MatrixStorage::MatrixStorage | ( | Packing | pk, |
| Placement | pl = NoPlacement, |
||
| Order | o = NoOrder, |
||
| Diagonal | d = NoDiag |
||
| ) | [inline] |
This constructor is also an implicit conversion from the Packing enum to a MatrixStorage object which does not contain any specification for placement, order, or storage of diagonal elements.
| SimTK::MatrixStorage::MatrixStorage | ( | Packing | pk, |
| Order | o | ||
| ) | [inline] |
This constructor is for the common case of just packing and order, with no particular placement and a stored diagonal.
| static const char* SimTK::MatrixStorage::name | ( | Packing | ) | [static] |
| static const char* SimTK::MatrixStorage::name | ( | Placement | ) | [static] |
| static const char* SimTK::MatrixStorage::name | ( | Order | ) | [static] |
| static const char* SimTK::MatrixStorage::name | ( | Diagonal | ) | [static] |
| static MatrixStorage SimTK::MatrixStorage::calcDefaultStorage | ( | const MatrixStructure & | , |
| const MatrixOutline & | |||
| ) | [static] |
| std::string SimTK::MatrixStorage::name | ( | ) | const [inline] |
| Mask SimTK::MatrixStorage::mask | ( | ) | const [inline] |
Calculate the commitment mask associated with specifying "this" set of storage attributes as a commitment.
Here the mask will either be fully uncommitted or set to a specific value for each attribute; they are all mutually exclusive.
| MatrixStorage& SimTK::MatrixStorage::setMissingAttributes | ( | ) | [inline] |
Assuming this is an actual matrix description, set any unspecified attributes to appropriate defaults to match the specified packing.
| MatrixStorage& SimTK::MatrixStorage::setToNone | ( | ) | [inline] |
Restore this object to its default-constructed state of "none".
| MatrixStorage& SimTK::MatrixStorage::setPacking | ( | Packing | p | ) | [inline] |
| MatrixStorage& SimTK::MatrixStorage::setPlacement | ( | Placement | p | ) | [inline] |
| MatrixStorage& SimTK::MatrixStorage::setOrder | ( | Order | o | ) | [inline] |
| MatrixStorage& SimTK::MatrixStorage::setDiagonal | ( | Diagonal | d | ) | [inline] |
| Packing SimTK::MatrixStorage::getPacking | ( | ) | const [inline] |
| Placement SimTK::MatrixStorage::getPlacement | ( | ) | const [inline] |
| Order SimTK::MatrixStorage::getOrder | ( | ) | const [inline] |
| Diagonal SimTK::MatrixStorage::getDiagonal | ( | ) | const [inline] |
const PackingMask SimTK::MatrixStorage::AllPacking = 0x007fU [static] |
const PackingMask SimTK::MatrixStorage::UncommittedPacking = 0xffffU [static] |
const PlacementMask SimTK::MatrixStorage::AllPlacement = 0x0003U [static] |
const PlacementMask SimTK::MatrixStorage::UncommittedPlacement = 0xffffU [static] |
const OrderMask SimTK::MatrixStorage::AllOrder = 0x03U [static] |
const OrderMask SimTK::MatrixStorage::UncommittedOrder = 0xffU [static] |
const DiagonalMask SimTK::MatrixStorage::AllDiagonal = 0x0003U [static] |
const DiagonalMask SimTK::MatrixStorage::UncommittedDiagonal = 0xffffU [static] |