Simbody
3.7
|
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...
Classes | |
class | LapackFull |
Predefined MatrixCharacter for an ordinary Lapack-style full matrix of a particular dimension m x n (nrows X ncols). More... | |
class | Mask |
This class collects masks of each characteristic type for representing sets of accceptable characteristics. More... | |
class | RowVector |
Predefined MatrixCharacter for an ordinary row vector of a particular size. More... | |
class | Vector |
Predefined MatrixCharacter for an ordinary column vector of a particular size. More... | |
Public Member Functions | |
MatrixCharacter () | |
Default constructor sets lengths to zero and the other characteristics to "none specified". More... | |
MatrixCharacter & | setToNone () |
Restore this MatrixCharacter to its default-constructed state of "none". More... | |
int | nrow () const |
These are dimensions of the logical matrix and have nothing to do with how much storage may be used to hold the elements. More... | |
int | ncol () const |
std::pair< int, int > | getSize () const |
ptrdiff_t | nelt () const |
int | getLowerBandwidth () const |
int | getUpperBandwidth () const |
std::pair< int, int > | getBandwidth () const |
const MatrixStructure & | getStructure () const |
const MatrixStorage & | getStorage () const |
const MatrixOutline & | getOutline () const |
const MatrixCondition & | getCondition () const |
MatrixStructure & | updStructure () |
MatrixStorage & | updStorage () |
MatrixOutline & | updOutline () |
MatrixCondition & | updCondition () |
MatrixCharacter & | setStructure (const MatrixStructure &sa) |
MatrixCharacter & | setStorage (const MatrixStorage &sa) |
MatrixCharacter & | setOutline (const MatrixOutline &oa) |
MatrixCharacter & | setCondition (const MatrixCondition &ca) |
MatrixCharacter & | setActualSize (int m, int n) |
Set the actual size and update the outline to match. More... | |
MatrixCharacter & | setActualNumRows (int m) |
MatrixCharacter & | setActualNumCols (int n) |
MatrixCharacter & | setBandwidth (int lb, int ub) |
MatrixCharacter & | setLowerBandwidth (int lb) |
MatrixCharacter & | setUpperBandwidth (int ub) |
Protected Member Functions | |
MatrixCharacter (int m, int n, int lb, int ub, MatrixStructure structure, MatrixStorage storage, MatrixCondition condition) | |
Protected Attributes | |
int | nr |
actual number of rows More... | |
int | nc |
actual number of columns More... | |
int | lband |
actual lower bandwidth, if banded More... | |
int | uband |
actual upper bandwidth, if banded More... | |
MatrixStructure | structure |
MatrixStorage | storage |
MatrixOutline | outline |
MatrixCondition | condition |
Related Functions | |
(Note that these are not member functions.) | |
std::ostream & | operator<< (std::ostream &o, const MatrixCharacter &) |
Output a textual description of a MatrixCharacter; handy for debugging. More... | |
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.
MatrixCharacters are used both as the handle "commitment", setting restrictions on what kinds of matrices a handle can reference, and as the "facts on the ground" current character of the matrix being referenced. The current character must always satisfy the character commitment.
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.
|
inline |
Default constructor sets lengths to zero and the other characteristics to "none specified".
|
inlineprotected |
|
inline |
Restore this MatrixCharacter to its default-constructed state of "none".
|
inline |
These are dimensions of the logical matrix and have nothing to do with how much storage may be used to hold the elements.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Set the actual size and update the outline to match.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
related |
Output a textual description of a MatrixCharacter; handy for debugging.
|
protected |
actual number of rows
|
protected |
actual number of columns
|
protected |
actual lower bandwidth, if banded
|
protected |
actual upper bandwidth, if banded
|
protected |
|
protected |
|
protected |
|
protected |