Simbody  3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
SimTK::MatrixStorage Class Reference

Matrix "storage" refers to the physical layout of data in the computer’s memory. More...

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. More...
 
 MatrixStorage ()
 Default constructor leaves all fields unspecified. More...
 
 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. More...
 
 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. More...
 
MatrixStoragesetMissingAttributes ()
 Assuming this is an actual matrix description, set any unspecified attributes to appropriate defaults to match the specified packing. More...
 
MatrixStoragesetToNone ()
 Restore this object to its default-constructed state of "none". More...
 
MatrixStoragesetPacking (Packing p)
 
MatrixStoragesetPlacement (Placement p)
 
MatrixStoragesetOrder (Order o)
 
MatrixStoragesetDiagonal (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
 

Detailed Description

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.

Member Typedef Documentation

typedef unsigned short SimTK::MatrixStorage::PackingMask
typedef unsigned short SimTK::MatrixStorage::PlacementMask
typedef unsigned short SimTK::MatrixStorage::OrderMask
typedef unsigned short SimTK::MatrixStorage::DiagonalMask

Member Enumeration Documentation

Enumerator
NoPacking 
Full 
TriInFull 
TriPacked 
Banded 
Vector 
Scalar 
Permutation 
Enumerator
NoPlacement 
Lower 
Upper 
Enumerator
NoOrder 
ColumnOrder 
RowOrder 
Enumerator
NoDiag 
StoredDiag 
AssumedDiag 

Constructor & Destructor Documentation

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.

Member Function Documentation

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

Member Data Documentation

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

The documentation for this class was generated from the following file: