Loading web-font TeX/Main/Regular
 
CGAL 6.0.1 - Monotone and Sorted Matrix Search
All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Modules Pages
Loading...
Searching...
No Matches
CGAL::Dynamic_matrix< M > Class Template Reference

#include <CGAL/Dynamic_matrix.h>

Definition

template<typename M>
class CGAL::Dynamic_matrix< M >

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
Mis a model of BasicMatrix.
Is model of
MonotoneMatrixSearchTraits
BasicMatrix
See also
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.
 

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).
 
void replace_column (int old, int new)
 replace column old with column number new.
 
Matrix * extract_all_even_rows () const
 returns a new matrix consisting of all rows of the dynamic 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.).
 
void shrink_to_quadratic_size ()
 deletes the rightmost columns, such that the dynamic matrix becomes quadratic.
 

Constructor & Destructor Documentation

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

Member Function Documentation

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

◆ shrink_to_quadratic_size()

template<typename M >
void CGAL::Dynamic_matrix< M >::shrink_to_quadratic_size ( )

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

Precondition
number_of_columns() \ge number_of_rows().
Postcondition
number_of_rows() == number_of_columns().