| 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] |