| OpenMS 2.5.0

Public Member Functions | Protected Attributes | Private Member Functions | Related Functions | List of all members
DistanceMatrix< Value > Class Template Reference
Datastructures

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
OpenMS compliance type definitions
typedef Size | SizeType
typedef value_type | ValueType

## Public Member Functions

| 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...

## Protected Attributes

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...

## Private Member Functions

DistanceMatrix & | operator= (const DistanceMatrix &rhs)
| assignment operator (unsafe) More...

## 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. More...

## Detailed Description

### template<typename Value>
class OpenMS::DistanceMatrix< Value >

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.

## Member Typedef Documentation

## ◆ SizeType

typedef Size SizeType

## ◆ value_type

typedef Value value_type

## ◆ ValueType

typedef value_type ValueType

## Constructor & Destructor Documentation

## ◆ DistanceMatrix() [1/3]

DistanceMatrix | ( |  | ) |

inline

default constructor

## ◆ DistanceMatrix() [2/3]

DistanceMatrix | ( | SizeType | dimensionsize,
|  | Value | value = `Value()`
| ) |  |

inline

detailed constructor

Parameters

  dimensionsize | the number of rows (and therewith cols)
  value | DistanceMatrix will be filled with this element (main diagonal will still "hold" only zeros)

Exceptions

  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_.

## ◆ DistanceMatrix() [3/3]

DistanceMatrix | ( | const DistanceMatrix< Value > & | source | ) |

inline

copy constructor

Parameters

  source | this DistanceMatrix will be copied

Exceptions

  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_.

## ◆ ~DistanceMatrix()

~DistanceMatrix | ( |  | ) |

inline

destructor

References DistanceMatrix< Value >::init_size_, and DistanceMatrix< Value >::matrix_.

## Member Function Documentation

## ◆ clear()

void clear | ( |  | ) |

inline

reset all

References DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::init_size_, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.

Referenced by ClusterHierarchical::cluster().

## ◆ dimensionsize()

SizeType dimensionsize | ( |  | ) | const

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==(), and DistanceMatrix< Value >::resize().

## ◆ getMinElementCoordinates()

std::pair<SizeType, SizeType> getMinElementCoordinates | ( |  | ) | const

inline

Indexpair of minimal element.

Exceptions

  Exception::OutOfRange | thrown if there is no element to access

References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::min_element_.

## ◆ getValue() [1/2]

const ValueType getValue | ( | SizeType | i,
|  | SizeType | j
| ) |  | const

inline

gets a value at a given position:

Parameters

  i | the i-th row
  j | the j-th col

Exceptions

  Exception::OutOfRange | if given coordinates are out of range

References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::matrix_.

Referenced by DistanceMatrix< Value >::operator()().

## ◆ getValue() [2/2]

ValueType getValue | ( | SizeType | i,
|  | SizeType | j
| ) |  |

inline

gets a value at a given position:

Parameters

  i | the i-th row
  j | the j-th col

Exceptions

  Exception::OutOfRange | if given coordinates are out of range

References DistanceMatrix< Value >::dimensionsize_, and DistanceMatrix< Value >::matrix_.

## ◆ operator()() [1/2]

const ValueType operator() | ( | SizeType | i,
|  | SizeType | j
| ) |  | const

inline

gets a value at a given position (read only):

Parameters

  i | the i-th row
  j | the j-th col

References DistanceMatrix< Value >::getValue().

## ◆ operator()() [2/2]

ValueType operator() | ( | SizeType | i,
|  | SizeType | j
| ) |  |

inline

gets a value at a given position (read only):

Parameters

  i | the i-th row
  j | the j-th col

References DistanceMatrix< Value >::getValue().

## ◆ operator=()

DistanceMatrix& operator= | ( | const DistanceMatrix< Value > & | rhs | ) |

inline private

assignment operator (unsafe)

References DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::init_size_, DistanceMatrix< Value >::matrix_, and DistanceMatrix< Value >::min_element_.

## ◆ operator==()

bool operator== | ( | DistanceMatrix< ValueType > const & | rhs | ) | const

inline

Equality comparator.

Exceptions

  Exception::Precondition | thrown if given DistanceMatrix is not compatible in size

References DistanceMatrix< Value >::dimensionsize(), DistanceMatrix< Value >::dimensionsize_, DistanceMatrix< Value >::matrix_, and OPENMS_PRECONDITION.

## ◆ reduce()

void reduce | ( | SizeType | j | ) |

inline

reduces DistanceMatrix by one dimension. first the jth row, then jth column

Parameters

  j | the jth row (and therewith also jth col) to be removed

Exceptions

  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_.

## ◆ resize()

void resize | ( | SizeType | dimensionsize,
|  | Value | value = `Value()`
| ) |  |

inline

resizing the container

Parameters

  dimensionsize | the desired number of rows (and therewith cols)
  value | which the matrix will be filled with

Exceptions

  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().

## ◆ setValue()

void setValue | ( | SizeType | i,
|  | SizeType | j,
|  | ValueType | value
| ) |  |

inline

sets a value at a given position:

Parameters

  i | the i-th row
  j | the j-th col
  value | the set-value

Exceptions

  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().

## ◆ setValueQuick()

void setValueQuick | ( | SizeType | i,
|  | SizeType | j,
|  | ValueType | value
| ) |  |

inline

sets a value at a given position:

Parameters

  i | the i-th row
  j | the j-th col
  value | the set-value

Exceptions

  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().

## ◆ updateMinElement()

void updateMinElement | ( |  | ) |

inline

keep track of the actual minimum element after altering the matrix

Exceptions

  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().

## Friends And Related Function Documentation

## ◆ operator<<()

std::ostream & operator<< | ( | std::ostream & | os,
|  | const DistanceMatrix< Value > & | matrix
| ) |  |

related

Print the contents to a stream.

## Member Data Documentation

## ◆ dimensionsize_

SizeType dimensionsize_

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().

## ◆ init_size_

SizeType init_size_

protected

number of actually stored rows

Referenced by DistanceMatrix< Value >::clear(), DistanceMatrix< Value >::DistanceMatrix(), DistanceMatrix< Value >::operator=(), DistanceMatrix< Value >::resize(), and DistanceMatrix< Value >::~DistanceMatrix().

## ◆ matrix_

ValueType** matrix_

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().

## ◆ min_element_

std::pair<SizeType, SizeType> min_element_

protected

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().