Simbody
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes

SimTK::MatrixStorage Class Reference

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

#include <MatrixCharacteristics.h>

List of all members.

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.
MatrixStoragesetMissingAttributes ()
 Assuming this is an actual matrix description, set any unspecified attributes to appropriate defaults to match the specified packing.
MatrixStoragesetToNone ()
 Restore this object to its default-constructed state of "none".
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 OrderMask SimTK::MatrixStorage::AllOrder = 0x03U [static]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines