OpenMS
|
A two-dimensional distance matrix, similar to OpenMS::Matrix. More...
#include <OpenMS/DATASTRUCTURES/DistanceMatrix.h>
Public Types | |
STL compliance type definitions | |
typedef Value | value_type |
Related Functions | |
(Note that these are not member functions.) | |
template<typename Value > | |
std::ostream & | operator<< (std::ostream &os, const DistanceMatrix< Value > &matrix) |
Print the contents to a stream (and colors the diagonal, if the stream is cout/cerr) More... | |
OpenMS compliance type definitions | |
typedef Size | SizeType |
typedef value_type | ValueType |
ValueType ** | matrix_ |
sparse element not to be included in base container More... | |
SizeType | init_size_ |
number of actually stored rows More... | |
SizeType | dimensionsize_ |
number of accessibly stored rows (i.e. number of columns) More... | |
std::pair< SizeType, SizeType > | min_element_ |
index of minimal element(i.e. number in underlying SparseVector) More... | |
DistanceMatrix () | |
default constructor More... | |
DistanceMatrix (SizeType dimensionsize, Value value=Value()) | |
detailed constructor More... | |
DistanceMatrix (const DistanceMatrix &source) | |
copy constructor More... | |
~DistanceMatrix () | |
destructor More... | |
const ValueType | operator() (SizeType i, SizeType j) const |
gets a value at a given position (read only): More... | |
ValueType | operator() (SizeType i, SizeType j) |
gets a value at a given position (read only): More... | |
const ValueType | getValue (SizeType i, SizeType j) const |
gets a value at a given position: More... | |
ValueType | getValue (SizeType i, SizeType j) |
gets a value at a given position: More... | |
void | setValue (SizeType i, SizeType j, ValueType value) |
sets a value at a given position: More... | |
void | setValueQuick (SizeType i, SizeType j, ValueType value) |
sets a value at a given position: More... | |
void | clear () |
reset all More... | |
void | resize (SizeType dimensionsize, Value value=Value()) |
resizing the container More... | |
void | reduce (SizeType j) |
reduces DistanceMatrix by one dimension. first the jth row, then jth column More... | |
SizeType | dimensionsize () const |
gives the number of rows (i.e. number of columns) More... | |
void | updateMinElement () |
keep track of the actual minimum element after altering the matrix More... | |
bool | operator== (DistanceMatrix< ValueType > const &rhs) const |
Equality comparator. More... | |
std::pair< SizeType, SizeType > | getMinElementCoordinates () const |
Indexpair of minimal element. More... | |
DistanceMatrix & | operator= (const DistanceMatrix &rhs) |
assignment operator (unsafe) More... | |
A two-dimensional distance matrix, similar to OpenMS::Matrix.
Similar to OpenMS::Matrix, but contains only elements above the main diagonal, hence translating access with operator(,) for elements of above the main diagonal to corresponding elements below the main diagonal and returning 0 for requested elements in the main diagonal, since self-distance is assumed to be 0. Keeps track of the minimal element in the Matrix with OpenMS::DistanceMatrix::min_element_ if only for setting a value OpenMS::DistanceMatrix::setValue is used. Other OpenMS::DistanceMatrix altering methods may require a manual update by call of OpenMS::DistanceMatrix::updateMinElement, see the respective methods documentation.
typedef Value value_type |
typedef value_type ValueType |
|
inline |
default constructor
|
inline |
detailed constructor
dimensionsize | the number of rows (and therewith cols) |
value | DistanceMatrix will be filled with this element (main diagonal will still "hold" only zeros) |
Exception::OutOfMemory | if requested dimensionsize is to big to fit into memory |
References DistanceMatrix< Value >::dimensionsize(), DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::init_size_, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.
|
inline |
copy constructor
source | this DistanceMatrix will be copied |
Exception::OutOfMemory | if requested dimensionsize is to big to fit into memory |
References DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::init_size_, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.
|
inline |
destructor
References DistanceMatrix< Value >::init_size_, and DistanceMatrix< Value >::matrix_.
|
inline |
reset all
References DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::init_size_, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.
Referenced by ClusterHierarchical::cluster().
|
inline |
gives the number of rows (i.e. number of columns)
References DistanceMatrix< Value >::dimensionsize_.
Referenced by ClusterHierarchical::cluster(), DistanceMatrix< Value >::DistanceMatrix(), DistanceMatrix< Value >::operator<<(), DistanceMatrix< Value >::operator==(), and DistanceMatrix< Value >::resize().
Indexpair of minimal element.
Exception::OutOfRange | thrown if there is no element to access |
References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::min_element_.
gets a value at a given position:
i | the i-th row |
j | the j-th col |
Exception::OutOfRange | if given coordinates are out of range |
References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::matrix_.
gets a value at a given position:
i | the i-th row |
j | the j-th col |
Exception::OutOfRange | if given coordinates are out of range |
References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::matrix_.
Referenced by DistanceMatrix< Value >::operator()().
gets a value at a given position (read only):
i | the i-th row |
j | the j-th col |
References DistanceMatrix< Value >::getValue().
gets a value at a given position (read only):
i | the i-th row |
j | the j-th col |
References DistanceMatrix< Value >::getValue().
|
inlineprivate |
assignment operator (unsafe)
References DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::init_size_, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.
|
inline |
Equality comparator.
Exception::Precondition | thrown if given DistanceMatrix is not compatible in size |
References DistanceMatrix< Value >::dimensionsize(), DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::matrix_, and OPENMS_PRECONDITION.
|
inline |
reduces DistanceMatrix by one dimension. first the jth row, then jth column
j | the jth row (and therewith also jth col) to be removed |
Exception::OutOfRange | if j is grater than the greatest row number |
May invalidates min_element_, make sure to update min_element_ if necessary before used
References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::matrix_.
|
inline |
resizing the container
dimensionsize | the desired number of rows (and therewith cols) |
value | which the matrix will be filled with |
Exception::OutOfMemory | thrown if size of DistanceMatrix requested does not fit into memory |
invalidates all content
References DistanceMatrix< Value >::dimensionsize(), DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::init_size_, OpenMS::Constants::k, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.
Referenced by ClusterHierarchical::cluster().
sets a value at a given position:
i | the i-th row |
j | the j-th col |
value | the set-value |
Exception::OutOfRange | if given coordinates are out of range |
References DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::matrix_, DistanceMatrix< Value >::min_element_, and DistanceMatrix< Value >::updateMinElement().
Referenced by ClusterHierarchical::cluster().
sets a value at a given position:
i | the i-th row |
j | the j-th col |
value | the set-value |
Exception::OutOfRange | if given coordinates are out of range |
possible invalidation of min_element_ - make sure to update before further usage of matrix
References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::matrix_.
Referenced by ClusterHierarchical::cluster().
|
inline |
keep track of the actual minimum element after altering the matrix
Exception::OutOfRange | thrown if there is no element to access |
References DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.
Referenced by DistanceMatrix< Value >::setValue().
|
related |
Print the contents to a stream (and colors the diagonal, if the stream is cout/cerr)
References DistanceMatrix< Value >::dimensionsize(), and OpenMS::red.
|
protected |
number of accessibly stored rows (i.e. number of columns)
Referenced by DistanceMatrix< Value >::clear(), DistanceMatrix< Value >::dimensionsize(), DistanceMatrix< Value >::DistanceMatrix(), DistanceMatrix< Value >::getMinElementCoordinates(), DistanceMatrix< Value >::getValue(), DistanceMatrix< Value >::operator=(), DistanceMatrix< Value >::operator==(), DistanceMatrix< Value >::reduce(), DistanceMatrix< Value >::resize(), DistanceMatrix< Value >::setValue(), DistanceMatrix< Value >::setValueQuick(), and DistanceMatrix< Value >::updateMinElement().
|
protected |
number of actually stored rows
Referenced by DistanceMatrix< Value >::clear(), DistanceMatrix< Value >::DistanceMatrix(), DistanceMatrix< Value >::operator=(), DistanceMatrix< Value >::resize(), and DistanceMatrix< Value >::~DistanceMatrix().
|
protected |
sparse element not to be included in base container
Referenced by DistanceMatrix< Value >::clear(), DistanceMatrix< Value >::DistanceMatrix(), DistanceMatrix< Value >::getValue(), DistanceMatrix< Value >::operator=(), DistanceMatrix< Value >::operator==(), DistanceMatrix< Value >::reduce(), DistanceMatrix< Value >::resize(), DistanceMatrix< Value >::setValue(), DistanceMatrix< Value >::setValueQuick(), DistanceMatrix< Value >::updateMinElement(), and DistanceMatrix< Value >::~DistanceMatrix().
index of minimal element(i.e. number in underlying SparseVector)
Referenced by DistanceMatrix< Value >::clear(), DistanceMatrix< Value >::DistanceMatrix(), DistanceMatrix< Value >::getMinElementCoordinates(), DistanceMatrix< Value >::operator=(), DistanceMatrix< Value >::resize(), DistanceMatrix< Value >::setValue(), and DistanceMatrix< Value >::updateMinElement().