|
Simbody
3.4 (development)
|
A MatrixCommitment provides a set of acceptable matrix characteristics. More...
#include <MatrixCharacteristics.h>
Inheritance diagram for SimTK::MatrixCommitment:Classes | |
| class | Hermitian |
| This is the default commitment for a Hermitian (*not* symmetric) matrix. More... | |
| class | RowVector |
| This is the default commitment for a row vector. More... | |
| class | SkewHermitian |
| This is the default commitment for a skew Hermitian (*not* skew symmetric) matrix. More... | |
| class | SkewSymmetric |
| This is the default commitment for skew symmetric (*not* skew Hermitian) matrix. More... | |
| class | Symmetric |
| This is the default commitment for a symmetric (*not* Hermitian) matrix. More... | |
| class | Triangular |
| This is the default commitment for a triangular matrix. More... | |
| class | Vector |
| This is the default commitment for a column vector. More... | |
Public Member Functions | |
| MatrixCommitment () | |
| MatrixCommitment (const MatrixStructure &str) | |
| This is an implicit conversion from a MatrixStructure specification to a MatrixCommitment with storage, outline, and condition uncommitted. | |
| MatrixCommitment & | commitSize (int m, int n) |
| MatrixCommitment & | commitNumRows (int m) |
| MatrixCommitment & | commitNumCols (int n) |
| MatrixCommitment & | commitBandwidth (int lb, int ub) |
| MatrixCommitment & | commitLowerBandwidth (int lb) |
| MatrixCommitment & | commitUpperBandwidth (int ub) |
| MatrixCommitment & | commitStructure (const MatrixStructure &s) |
| MatrixCommitment & | commitStorage (const MatrixStorage &s) |
| MatrixCommitment & | commitOutline (const MatrixOutline &o) |
| MatrixCommitment & | commitCondition (const MatrixCondition &c) |
| MatrixCharacter | calcDefaultCharacter (int minNumRows, int minNumCols) const |
| For any handle commitment, we can calculate a "best character" for an allocation that satisfies the commitment, optionally with an initial allocation size. | |
| const MatrixStructure & | getStructureCommitment () const |
| These report the commitment as it was specified. | |
| const MatrixStorage & | getStorageCommitment () const |
| const MatrixOutline & | getOutlineCommitment () const |
| const MatrixCondition & | getConditionCommitment () const |
| const MatrixStructure::Mask & | getStructureMask () const |
| These report the masks of acceptable values generated from the commitment. | |
| const MatrixStorage::Mask & | getStorageMask () const |
| const MatrixOutline::Mask & | getOutlineMask () const |
| const MatrixCondition::Mask & | getConditionMask () const |
| MatrixCharacter::Mask::SizeMask | getNumRowsMask () const |
| MatrixCharacter::Mask::SizeMask | getNumColsMask () const |
| MatrixCharacter::Mask::SizeMask | getLowerBandwidthMask () const |
| MatrixCharacter::Mask::SizeMask | getUpperBandwidthMask () const |
| int | getDefaultNumRows () const |
| int | getDefaultNumCols () const |
| bool | isSizeOK (int m, int n) const |
| bool | isSizeOK (const std::pair< int, int > &mn) const |
| bool | isBandwidthOK (int lower, int upper) const |
| bool | isSatisfiedBy (const MatrixCharacter &actual) const |
| bool | isStructureOK (const MatrixStructure &s) const |
| bool | isStorageOK (const MatrixStorage &s) const |
| bool | isOutlineOK (const MatrixOutline &o) const |
| bool | isConditionOK (const MatrixCondition &c) const |
| bool | isResizeable () const |
| bool | isFullyResizeable () const |
| bool | isNumRowsLocked () const |
| bool | isNumColsLocked () const |
| bool | isStructureCommitted () const |
| bool | isStorageCommitted () const |
| bool | isOutlineCommitted () const |
| bool | isConditionCommitted () const |
| void | clear () |
| Set commitment s to "none" and masks to "uncommitted" for all characteristics. | |
Protected Member Functions | |
| MatrixCommitment (const MatrixStructure &structure, const MatrixStorage &storage, const MatrixOutline &outline, const MatrixCondition &condition) | |
Protected Attributes | |
| MatrixStructure | structure |
| These are the commitments as specified. | |
| MatrixStorage | storage |
| MatrixOutline | outline |
| MatrixCondition | condition |
| MatrixCharacter::Mask | masks |
| These are the bitmasks of acceptable characteristics which would satisfy the above-specified commitments. | |
A MatrixCommitment provides a set of acceptable matrix characteristics.
Since we define the characteristics each with its own bit, a commitment is implemented as a set of masks with bits set corresponding to the acceptable characteristics.
| SimTK::MatrixCommitment::MatrixCommitment | ( | ) | [inline] |
| SimTK::MatrixCommitment::MatrixCommitment | ( | const MatrixStructure & | str | ) | [inline] |
This is an implicit conversion from a MatrixStructure specification to a MatrixCommitment with storage, outline, and condition uncommitted.
| SimTK::MatrixCommitment::MatrixCommitment | ( | const MatrixStructure & | structure, |
| const MatrixStorage & | storage, | ||
| const MatrixOutline & | outline, | ||
| const MatrixCondition & | condition | ||
| ) | [inline, protected] |
| MatrixCommitment& SimTK::MatrixCommitment::commitSize | ( | int | m, |
| int | n | ||
| ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitNumRows | ( | int | m | ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitNumCols | ( | int | n | ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitBandwidth | ( | int | lb, |
| int | ub | ||
| ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitLowerBandwidth | ( | int | lb | ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitUpperBandwidth | ( | int | ub | ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitStructure | ( | const MatrixStructure & | s | ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitStorage | ( | const MatrixStorage & | s | ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitOutline | ( | const MatrixOutline & | o | ) | [inline] |
| MatrixCommitment& SimTK::MatrixCommitment::commitCondition | ( | const MatrixCondition & | c | ) | [inline] |
| MatrixCharacter SimTK::MatrixCommitment::calcDefaultCharacter | ( | int | minNumRows, |
| int | minNumCols | ||
| ) | const |
For any handle commitment, we can calculate a "best character" for an allocation that satisfies the commitment, optionally with an initial allocation size.
Typically it is the least-restrictive actual character that satisfies the commitment. For example, if the commitment is Triangular we'll allocate a full triangular matrix, not a banded one, or a symmetric one, or for that matter an identity matrix, all of which would satisfy the commitment. The supplied sizes are used as minima -- if the commitment requires a larger minimum size you'll get that. For example, if you specify 0x0 but you're committed to a Column outline, you'll get 0x1.
| const MatrixStructure& SimTK::MatrixCommitment::getStructureCommitment | ( | ) | const [inline] |
These report the commitment as it was specified.
| const MatrixStorage& SimTK::MatrixCommitment::getStorageCommitment | ( | ) | const [inline] |
| const MatrixOutline& SimTK::MatrixCommitment::getOutlineCommitment | ( | ) | const [inline] |
| const MatrixCondition& SimTK::MatrixCommitment::getConditionCommitment | ( | ) | const [inline] |
| const MatrixStructure::Mask& SimTK::MatrixCommitment::getStructureMask | ( | ) | const [inline] |
These report the masks of acceptable values generated from the commitment.
| const MatrixStorage::Mask& SimTK::MatrixCommitment::getStorageMask | ( | ) | const [inline] |
| const MatrixOutline::Mask& SimTK::MatrixCommitment::getOutlineMask | ( | ) | const [inline] |
| const MatrixCondition::Mask& SimTK::MatrixCommitment::getConditionMask | ( | ) | const [inline] |
| MatrixCharacter::Mask::SizeMask SimTK::MatrixCommitment::getNumRowsMask | ( | ) | const [inline] |
| MatrixCharacter::Mask::SizeMask SimTK::MatrixCommitment::getNumColsMask | ( | ) | const [inline] |
| MatrixCharacter::Mask::SizeMask SimTK::MatrixCommitment::getLowerBandwidthMask | ( | ) | const [inline] |
| MatrixCharacter::Mask::SizeMask SimTK::MatrixCommitment::getUpperBandwidthMask | ( | ) | const [inline] |
| int SimTK::MatrixCommitment::getDefaultNumRows | ( | ) | const [inline] |
| int SimTK::MatrixCommitment::getDefaultNumCols | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isSizeOK | ( | int | m, |
| int | n | ||
| ) | const [inline] |
| bool SimTK::MatrixCommitment::isSizeOK | ( | const std::pair< int, int > & | mn | ) | const [inline] |
| bool SimTK::MatrixCommitment::isBandwidthOK | ( | int | lower, |
| int | upper | ||
| ) | const [inline] |
| bool SimTK::MatrixCommitment::isSatisfiedBy | ( | const MatrixCharacter & | actual | ) | const [inline] |
| bool SimTK::MatrixCommitment::isStructureOK | ( | const MatrixStructure & | s | ) | const [inline] |
| bool SimTK::MatrixCommitment::isStorageOK | ( | const MatrixStorage & | s | ) | const [inline] |
| bool SimTK::MatrixCommitment::isOutlineOK | ( | const MatrixOutline & | o | ) | const [inline] |
| bool SimTK::MatrixCommitment::isConditionOK | ( | const MatrixCondition & | c | ) | const [inline] |
| bool SimTK::MatrixCommitment::isResizeable | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isFullyResizeable | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isNumRowsLocked | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isNumColsLocked | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isStructureCommitted | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isStorageCommitted | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isOutlineCommitted | ( | ) | const [inline] |
| bool SimTK::MatrixCommitment::isConditionCommitted | ( | ) | const [inline] |
| void SimTK::MatrixCommitment::clear | ( | ) | [inline] |
Set commitment s to "none" and masks to "uncommitted" for all characteristics.
MatrixStructure SimTK::MatrixCommitment::structure [protected] |
These are the commitments as specified.
They are used to fill in the corresponding bitmasks of acceptable characteristics below.
MatrixStorage SimTK::MatrixCommitment::storage [protected] |
MatrixOutline SimTK::MatrixCommitment::outline [protected] |
MatrixCondition SimTK::MatrixCommitment::condition [protected] |
MatrixCharacter::Mask SimTK::MatrixCommitment::masks [protected] |
These are the bitmasks of acceptable characteristics which would satisfy the above-specified commitments.