CGAL 5.0.2 - Monotone and Sorted Matrix Search
CGAL::Dynamic_matrix< M > Class Template Reference

#include <CGAL/Dynamic_matrix.h>

## Definition

The class Dynamic_matrix is an adaptor for an arbitrary matrix class M to provide the dynamic operations needed for monotone matrix search.

Template Parameters
 M is a model of BasicMatrix.
Is Model Of:

MonotoneMatrixSearchTraits

BasicMatrix

CGAL::monotone_matrix_search()
MonotoneMatrixSearchTraits
BasicMatrix

Implementation

All operations take constant time except for extract_all_even_rows() which needs time linear in the number of rows.

## Creation

Dynamic_matrix (const M &m)
initializes the dynamic matrix to m. More...

## Operations

int number_of_columns () const
returns the number of columns.

int number_of_rows () const
returns the number of rows.

Entry operator() (int row, int column) const
returns the entry at position (row, column). More...

void replace_column (int old, int new)
replace column old with column number new. More...

Matrix * extract_all_even_rows () const
returns a new matrix consisting of all rows of the dynmic matrix with even index, (i.e. first row is row $$0$$ of the dynamic matrix, second row is row $$2$$ of the dynamic matrix, etc.). More...

deletes the rightmost columns, such that the dynamic matrix becomes quadratic. More...

## ◆ Dynamic_matrix()

template<typename M >
 CGAL::Dynamic_matrix< M >::Dynamic_matrix ( const M & m )

initializes the dynamic matrix to m.

m is not copied, we only store a reference.

## ◆ extract_all_even_rows()

template<typename M >
 Matrix* CGAL::Dynamic_matrix< M >::extract_all_even_rows ( ) const

returns a new matrix consisting of all rows of the dynmic matrix with even index, (i.e. first row is row $$0$$ of the dynamic matrix, second row is row $$2$$ of the dynamic matrix, etc.).

Precondition
number_of_rows() $$> 0$$.

## ◆ operator()()

template<typename M >
 Entry CGAL::Dynamic_matrix< M >::operator() ( int row, int column ) const

returns the entry at position (row, column).

Precondition
$$0 \le$$ row $$<$$ number_of_rows(), and $$0 \le$$ column $$<$$ number_of_columns().

## ◆ replace_column()

template<typename M >
 void CGAL::Dynamic_matrix< M >::replace_column ( int old, int new )

replace column old with column number new.

Precondition
$$0 \le$$ old, new $$<$$ number_of_columns().

number_of_columns() $$\ge$$ number_of_rows().
number_of_rows() $$==$$ number_of_columns().