Simbody
Classes | Functions

Matrix Characteristics

Matrix characteristics are specifications of particular aspects of matrices:

More...

Classes

class  SimTK::MatrixStructure
 Matrix "structure" refers to an inherent mathematical (or at least algorithmic) characteristic of the matrix rather than a storage strategy. More...
class  SimTK::MatrixStorage
 Matrix "storage" refers to the physical layout of data in the computer’s memory. More...
class  SimTK::MatrixOutline
 Matrix "outline" refers to the characteristic relationship between the number of rows and columns of a matrix, without necessarily specifying the absolute dimensions. More...
class  SimTK::MatrixCondition
 Matrix "condition" is a statement about the numerical characteristics of a Matrix. More...
class  SimTK::MatrixCharacter
 A MatrixCharacter is a set containing a value for each of the matrix characteristics except element type, which is part of the templatized declaration of a Matrix, Vector, or RowVector handle. More...
class  SimTK::MatrixCharacter::LapackFull
 Predefined MatrixCharacter for an ordinary Lapack-style full matrix of a particular dimension m x n (nrows X ncols). More...
class  SimTK::MatrixCharacter::Vector
 Predefined MatrixCharacter for an ordinary column vector of a particular size. More...
class  SimTK::MatrixCharacter::RowVector
 Predefined MatrixCharacter for an ordinary row vector of a particular size. More...
class  SimTK::MatrixCharacter::Mask
 This class collects masks of each characteristic type for representing sets of accceptable characteristics. More...
class  SimTK::MatrixCommitment
 A MatrixCommitment provides a set of acceptable matrix characteristics. More...
class  SimTK::MatrixCommitment::Vector
 This is the default commitment for a column vector. More...
class  SimTK::MatrixCommitment::RowVector
 This is the default commitment for a row vector. More...
class  SimTK::MatrixCommitment::Triangular
 This is the default commitment for a triangular matrix. More...
class  SimTK::MatrixCommitment::Symmetric
 This is the default commitment for a symmetric (*not* Hermitian) matrix. More...
class  SimTK::MatrixCommitment::Hermitian
 This is the default commitment for a Hermitian (*not* symmetric) matrix. More...
class  SimTK::MatrixCommitment::SkewSymmetric
 This is the default commitment for skew symmetric (*not* skew Hermitian) matrix. More...
class  SimTK::MatrixCommitment::SkewHermitian
 This is the default commitment for a skew Hermitian (*not* skew symmetric) matrix. More...

Functions

std::ostream & SimTK::operator<< (std::ostream &o, const MatrixCharacter &)
 Output a textual description of a MatrixCharacter; handy for debugging.
std::ostream & SimTK::operator<< (std::ostream &o, const MatrixCommitment &)
 Output a textual description of a MatrixCommitment; handy for debugging.

Detailed Description

Matrix characteristics are specifications of particular aspects of matrices:

Collectively, the set of values for the above properties is called a matrix character. A matrix character can be used to describe an existing matrix, or a character mask can be used to describe the range of characteristics that a matrix handle may support. The character mask describing the acceptable matrices for a matrix handle is called the handle's character commitment or just the handle commitment. The character describing an existing matrix is called the actual character of that matrix. Thus there are always two sets of characteristics associated with a matrix: the handle's commitment, and the actual character of the matrix to which the handle currently refers. The actual character must always satisfy the character commitment.

When a handle presents a view into another handle's data, it is the characteristics of the matrix as seen through the view that must satisfy the handle's character commitment. So for example, a view showing one column of a full matrix satisfies a "column" outline commitment.

Element type for a matrix handle is always determined at compile time via the template argument used in the declaration. For example, a matrix handle declared Matrix_<Vec3> can only hold matrices whose elements are Vec3s. Also, recall that Matrix is an abbreviation for Matrix_<Real> so that declaration commits the matrix handle to Real-element matrices. Element type is the only matrix characteristic for which no matrix handle can remain uncommitted. However, different handles can provide views of the same data through which that data is seen to contain different element types.

Each matrix characteristic other than sizes is represented by a class defining one or more enumerated types, where individual characteristics are assigned a single bit. Then an appropriate mask type (an unsigned integral type) is defined which can represent a set of allowable characteristics. The actual character of a matrix is represented via enumeration values; the character commitment is represented by the compatible masks. The operation of determining whether a particular actual character satisfies a handle commitment can then be performed very quickly via bitwise logical operations.


Function Documentation

std::ostream& SimTK::operator<< ( std::ostream &  o,
const MatrixCharacter &   
)

Output a textual description of a MatrixCharacter; handy for debugging.

std::ostream& SimTK::operator<< ( std::ostream &  o,
const MatrixCommitment &   
)

Output a textual description of a MatrixCommitment; handy for debugging.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines