CGAL 4.12.1 - CGAL and Solvers
CGAL::Eigen_sparse_matrix< T > Struct Template Reference

#include <CGAL/Eigen_matrix.h>

Inherited by CGAL::Eigen_sparse_symmetric_matrix< T >.

## Definition

The class Eigen_sparse_matrix is a wrapper around Eigen matrix type Eigen::SparseMatrix that represents general matrices, be they symmetric or not.

Is Model Of:
SparseLinearAlgebraTraits_d::Matrix
Template Parameters
 T Number type.
CGAL::Eigen_vector<T>
CGAL::Eigen_matrix<T>
CGAL::Eigen_sparse_symmetric_matrix<T>

## Public Member Functions

Eigen_sparse_matrix (std::size_t dim, bool is_symmetric=false)
Create a square matrix initialized with zeros. More...

Eigen_sparse_matrix (int dim, bool is_symmetric=false)
Create a square matrix initialized with zeros. More...

Eigen_sparse_matrix (std::size_t rows, std::size_t columns, bool is_symmetric=false)
Create a rectangular matrix initialized with zeros. More...

~Eigen_sparse_matrix ()
Delete this object and the wrapped matrix.

Eigen_sparse_matrix (int rows, int columns, bool is_symmetric=false)
Create a rectangular matrix initialized with zeros. More...

int row_dimension () const
Return the matrix number of rows.

int column_dimension () const
Return the matrix number of columns.

void set_coef (std::size_t i_, std::size_t j_, T val, bool new_coef=false)

void add_coef (int i, int j, T val)
Write access to a matrix coefficient: a_ij <- a_ij + val. More...

NT get_coef (unsigned int i, unsigned int j) const

const EigenTypeeigen_object () const
Return the internal matrix, with type EigenType.

## Types

typedef Eigen::SparseMatrix< T > EigenType
The internal matrix type from Eigen.

typedef T NT

## ◆ Eigen_sparse_matrix() [1/4]

template<class T>
 CGAL::Eigen_sparse_matrix< T >::Eigen_sparse_matrix ( std::size_t dim, bool is_symmetric = false )

Create a square matrix initialized with zeros.

Parameters
 dim Matrix dimension. is_symmetric Symmetric/hermitian?

## ◆ Eigen_sparse_matrix() [2/4]

template<class T>
 CGAL::Eigen_sparse_matrix< T >::Eigen_sparse_matrix ( int dim, bool is_symmetric = false )

Create a square matrix initialized with zeros.

Parameters
 dim Matrix dimension. is_symmetric Symmetric/hermitian?

## ◆ Eigen_sparse_matrix() [3/4]

template<class T>
 CGAL::Eigen_sparse_matrix< T >::Eigen_sparse_matrix ( std::size_t rows, std::size_t columns, bool is_symmetric = false )

Create a rectangular matrix initialized with zeros.

Precondition
rows == columns if is_symmetric is true.
Parameters
 rows Number of rows. columns Number of columns. is_symmetric Symmetric/hermitian?

## ◆ Eigen_sparse_matrix() [4/4]

template<class T>
 CGAL::Eigen_sparse_matrix< T >::Eigen_sparse_matrix ( int rows, int columns, bool is_symmetric = false )

Create a rectangular matrix initialized with zeros.

Precondition
rows == columns if is_symmetric is true.
Parameters
 rows Number of rows. columns Number of columns. is_symmetric Symmetric/hermitian?

## Member Function Documentation

template<class T>
 void CGAL::Eigen_sparse_matrix< T >::add_coef ( int i, int j, T val )

Warning
For symmetric matrices, Eigen_sparse_matrix only stores the lower triangle add_coef() does nothing if (i, j) belongs to the upper triangle.
Precondition
0 <= i < row_dimension().
0 <= j < column_dimension().

## ◆ get_coef()

template<class T>
 NT CGAL::Eigen_sparse_matrix< T >::get_coef ( unsigned int i, unsigned int j ) const

Warning
Complexity:
• O(log(n)) if the matrix is already built.
• O(n) if the matrix is not built. n being the number of entries in the matrix.
Precondition
0 <= i < row_dimension().
0 <= j < column_dimension().

## ◆ set_coef()

template<class T>
 void CGAL::Eigen_sparse_matrix< T >::set_coef ( std::size_t i_, std::size_t j_, T val, bool new_coef = false )