pcl::poisson::SparseMatrix< T > Class Template Reference

`#include <pcl/surface/3rdparty/poisson4/sparse_matrix.h>`

Inheritance diagram for pcl::poisson::SparseMatrix< T >:

## Public Member Functions

MatrixEntry< T > * | operator[] (int idx)
const MatrixEntry< T > * | operator[] (int idx) const
| SparseMatrix (void)
| SparseMatrix (int rows)
| SparseMatrix (int rows, int maxEntriesPerRow)
void | Resize (int rows)
void | Resize (int rows, int maxEntriesPerRow)
void | SetRowSize (int row, int count)
int | Entries (void) const
| SparseMatrix (const SparseMatrix &M)
| ~SparseMatrix ()
void | SetZero ()
void | SetIdentity ()
SparseMatrix< T > & | operator= (const SparseMatrix< T > &M)
SparseMatrix< T > | operator* (const T &V) const
SparseMatrix< T > & | operator*= (const T &V)
SparseMatrix< T > | operator* (const SparseMatrix< T > &M) const
SparseMatrix< T > | Multiply (const SparseMatrix< T > &M) const
SparseMatrix< T > | MultiplyTranspose (const SparseMatrix< T > &Mt) const
template<class T2 >
Vector< T2 > | operator* (const Vector< T2 > &V) const
template<class T2 >
Vector< T2 > | Multiply (const Vector< T2 > &V) const
template<class T2 >
void | Multiply (const Vector< T2 > &In, Vector< T2 > &Out, int threads=1) const
SparseMatrix< T > | Transpose () const
bool | write (FILE *fp) const
bool | write (const char *fileName) const
bool | read (FILE *fp)
bool | read (const char *fileName)

## Static Public Member Functions

static int | UseAllocator (void)
static void | SetAllocator (int blockSize)
static int | Solve (const SparseMatrix< T > &M, const Vector< T > &b, int iters, Vector< T > &solution, const T eps=1e-8)
template<class T2 >
static int | SolveSymmetric (const SparseMatrix< T > &M, const Vector< T2 > &b, int iters, Vector< T2 > &solution, const T2 eps=1e-8, int reset=1, int threads=1)

## Public Attributes

int | rows
int * | rowSizes
MatrixEntry< T > ** | m_ppElements

## Static Public Attributes

static Allocator< MatrixEntry< T > > | internalAllocator

## Detailed Description

### template<class T>
class pcl::poisson::SparseMatrix< T >

Definition at line 53 of file sparse_matrix.h.

## Constructor & Destructor Documentation

## SparseMatrix() [1/4]

template<class T >

pcl::poisson::SparseMatrix< T >::SparseMatrix | ( | void |  | ) |

Definition at line 70 of file sparse_matrix.hpp.

## SparseMatrix() [2/4]

template<class T >

pcl::poisson::SparseMatrix< T >::SparseMatrix | ( | int | rows | ) |

Definition at line 79 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Resize().

## SparseMatrix() [3/4]

template<class T >

pcl::poisson::SparseMatrix< T >::SparseMatrix | ( | int | rows,
|  | int | maxEntriesPerRow
| ) |  |

Definition at line 80 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Resize().

## SparseMatrix() [4/4]

template<class T >

pcl::poisson::SparseMatrix< T >::SparseMatrix | ( | const SparseMatrix< T > & | M | ) |

Definition at line 83 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Resize(), pcl::poisson::SparseMatrix< T >::rows, pcl::poisson::SparseMatrix< T >::rowSizes, and pcl::poisson::SparseMatrix< T >::SetRowSize().

## ~SparseMatrix()

template<class T >

pcl::poisson::SparseMatrix< T >::~SparseMatrix | ( | void |  | ) |

Definition at line 114 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Resize().

## Member Function Documentation

## Entries()

template<class T >

int pcl::poisson::SparseMatrix< T >::Entries | ( | void |  | ) | const

Definition at line 94 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::rows, and pcl::poisson::SparseMatrix< T >::rowSizes.

Referenced by pcl::poisson::Octree< Degree >::LaplacianMatrixIteration().

## Multiply() [1/3]

template<class T >

SparseMatrix< T > pcl::poisson::SparseMatrix< T >::Multiply | ( | const SparseMatrix< T > & | M | ) | const

Definition at line 259 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::m_ppElements.

Referenced by pcl::poisson::SparseMatrix< T >::operator*(), pcl::poisson::SparseSymmetricMatrix< T >::operator*(), and pcl::poisson::SparseMatrix< T >::SolveSymmetric().

## Multiply() [2/3]

template<class T >
template<class T2 >

Vector< T2 > pcl::poisson::SparseMatrix< T >::Multiply | ( | const Vector< T2 > & | V | ) | const

Definition at line 276 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::m_ppElements, pcl::poisson::Vector< T >::m_pV, pcl::poisson::SparseMatrix< T >::rows, and pcl::poisson::SparseMatrix< T >::rowSizes.

## Multiply() [3/3]

template<class T >
template<class T2 >

void pcl::poisson::SparseMatrix< T >::Multiply | ( | const Vector< T2 > & | In,
|  | Vector< T2 > & | Out,
|  | int | threads = `1`
| ) |  | const

Definition at line 293 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::m_ppElements, pcl::poisson::Vector< T >::m_pV, pcl::poisson::SparseMatrix< T >::rows, and pcl::poisson::SparseMatrix< T >::rowSizes.

## MultiplyTranspose()

template<class T>

SparseMatrix<T> pcl::poisson::SparseMatrix< T >::MultiplyTranspose | ( | const SparseMatrix< T > & | Mt | ) | const

## operator*() [1/3]

template<class T >

SparseMatrix< T > pcl::poisson::SparseMatrix< T >::operator* | ( | const T & | V | ) | const

Definition at line 241 of file sparse_matrix.hpp.

## operator*() [2/3]

template<class T >

SparseMatrix< T > pcl::poisson::SparseMatrix< T >::operator* | ( | const SparseMatrix< T > & | M | ) | const

Definition at line 306 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Multiply().

## operator*() [3/3]

template<class T >
template<class T2 >

Vector< T2 > pcl::poisson::SparseMatrix< T >::operator* | ( | const Vector< T2 > & | V | ) | const

Definition at line 312 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Multiply().

## operator*=()

template<class T >

SparseMatrix< T > & pcl::poisson::SparseMatrix< T >::operator*= | ( | const T & | V | ) |

Definition at line 249 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::m_ppElements.

## operator=()

template<class T >

SparseMatrix< T > & pcl::poisson::SparseMatrix< T >::operator= | ( | const SparseMatrix< T > & | M | ) |

Definition at line 101 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Resize(), pcl::poisson::SparseMatrix< T >::rows, pcl::poisson::SparseMatrix< T >::rowSizes, and pcl::poisson::SparseMatrix< T >::SetRowSize().

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

template<class T>

MatrixEntry< T >* pcl::poisson::SparseMatrix< T >::operator[] | ( | int | idx | ) |

inline

Definition at line 67 of file sparse_matrix.h.

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

template<class T>

const MatrixEntry< T >* pcl::poisson::SparseMatrix< T >::operator[] | ( | int | idx | ) | const

inline

Definition at line 68 of file sparse_matrix.h.

References pcl::poisson::Multiply(), pcl::read(), pcl::poisson::Solve(), and pcl::write().

## read() [1/2]

template<class T >

bool pcl::poisson::SparseMatrix< T >::read | ( | FILE * | fp | ) |

Definition at line 143 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Resize(), pcl::poisson::SparseMatrix< T >::rows, pcl::poisson::SparseMatrix< T >::rowSizes, and pcl::poisson::SparseMatrix< T >::SetRowSize().

Referenced by pcl::poisson::SparseMatrix< T >::read().

## read() [2/2]

template<class T >

bool pcl::poisson::SparseMatrix< T >::read | ( | const char * | fileName | ) |

Definition at line 126 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::read().

## Resize() [1/2]

template<class T >

void pcl::poisson::SparseMatrix< T >::Resize | ( | int | rows | ) |

Definition at line 161 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::m_ppElements, pcl::poisson::SparseMatrix< T >::rows, and pcl::poisson::SparseMatrix< T >::rowSizes.

Referenced by pcl::poisson::Octree< Degree >::LaplacianMatrixIteration(), pcl::poisson::SparseMatrix< T >::operator=(), pcl::poisson::SparseMatrix< T >::read(), pcl::poisson::SparseMatrix< T >::SetZero(), pcl::poisson::SparseMatrix< T >::SparseMatrix(), pcl::poisson::UpSampleData::UpSampleData(), and pcl::poisson::SparseMatrix< T >::~SparseMatrix().

## Resize() [2/2]

template<class T >

void pcl::poisson::SparseMatrix< T >::Resize | ( | int | rows,
|  | int | maxEntriesPerRow
| ) |  |

Definition at line 183 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::m_ppElements, pcl::poisson::SparseMatrix< T >::rows, and pcl::poisson::SparseMatrix< T >::rowSizes.

## SetAllocator()

template<class T >

void pcl::poisson::SparseMatrix< T >::SetAllocator | ( | int | blockSize | ) |

static

Definition at line 57 of file sparse_matrix.hpp.

## SetIdentity()

template<class T >

void pcl::poisson::SparseMatrix< T >::SetIdentity | ( |  | ) |

Definition at line 233 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::SetZero().

## SetRowSize()

template<class T >

void pcl::poisson::SparseMatrix< T >::SetRowSize | ( | int | row,
|  | int | count
| ) |  |

Definition at line 207 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::internalAllocator, pcl::poisson::SparseMatrix< T >::m_ppElements, pcl::poisson::SparseMatrix< T >::rows, and pcl::poisson::SparseMatrix< T >::rowSizes.

Referenced by pcl::poisson::Octree< Degree >::LaplacianMatrixIteration(), pcl::poisson::SparseMatrix< T >::operator=(), pcl::poisson::SparseMatrix< T >::read(), pcl::poisson::SparseMatrix< T >::SparseMatrix(), and pcl::poisson::UpSampleData::UpSampleData().

## SetZero()

template<class T >

void pcl::poisson::SparseMatrix< T >::SetZero | ( |  | ) |

Definition at line 227 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::Resize().

Referenced by pcl::poisson::SparseMatrix< T >::SetIdentity().

## Solve()

template<class T >

int pcl::poisson::SparseMatrix< T >::Solve | ( | const SparseMatrix< T > & | M,
|  | const Vector< T > & | b,
|  | int | iters,
|  | Vector< T > & | solution,
|  | const T | eps = `1e-8`
| ) |  |

static

Definition at line 382 of file sparse_matrix.hpp.

References pcl::poisson::Vector< T >::Dot(), pcl::poisson::Vector< T >::Resize(), pcl::poisson::Vector< T >::SetZero(), and pcl::poisson::SparseMatrix< T >::Transpose().

## SolveSymmetric()

template<class T >
template<class T2 >

int pcl::poisson::SparseMatrix< T >::SolveSymmetric | ( | const SparseMatrix< T > & | M,
|  | const Vector< T2 > & | b,
|  | int | iters,
|  | Vector< T2 > & | solution,
|  | const T2 | eps = `1e-8`,
|  | int | reset = `1`,
|  | int | threads = `1`
| ) |  |

static

Definition at line 333 of file sparse_matrix.hpp.

References pcl::poisson::Vector< T >::Dimensions(), pcl::poisson::Vector< T >::m_pV, pcl::poisson::SparseMatrix< T >::Multiply(), pcl::poisson::Vector< T >::Resize(), and pcl::poisson::Vector< T >::SetZero().

## Transpose()

template<class T >

SparseMatrix< T > pcl::poisson::SparseMatrix< T >::Transpose | ( |  | ) | const

Definition at line 318 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::m_ppElements.

Referenced by pcl::poisson::SparseMatrix< T >::Solve().

## UseAllocator()

template<class T >

int pcl::poisson::SparseMatrix< T >::UseAllocator | ( | void |  | ) |

static

Definition at line 55 of file sparse_matrix.hpp.

## write() [1/2]

template<class T >

bool pcl::poisson::SparseMatrix< T >::write | ( | FILE * | fp | ) | const

Definition at line 135 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::rows, and pcl::poisson::SparseMatrix< T >::rowSizes.

Referenced by pcl::poisson::SparseMatrix< T >::write().

## write() [2/2]

template<class T >

bool pcl::poisson::SparseMatrix< T >::write | ( | const char * | fileName | ) | const

Definition at line 117 of file sparse_matrix.hpp.

References pcl::poisson::SparseMatrix< T >::write().

## Member Data Documentation

## internalAllocator

template<class T>

Allocator< MatrixEntry< T > > pcl::poisson::SparseMatrix< T >::internalAllocator

static

Definition at line 60 of file sparse_matrix.h.

Referenced by pcl::poisson::SparseMatrix< T >::SetRowSize().

## m_ppElements

template<class T>

MatrixEntry<T>** pcl::poisson::SparseMatrix< T >::m_ppElements

Definition at line 66 of file sparse_matrix.h.

Referenced by pcl::poisson::SparseMatrix< T >::Multiply(), pcl::poisson::SparseMatrix< T >::operator*=(), pcl::poisson::SparseMatrix< T >::Resize(), pcl::poisson::SparseMatrix< T >::SetRowSize(), and pcl::poisson::SparseMatrix< T >::Transpose().

## rows

template<class T>

int pcl::poisson::SparseMatrix< T >::rows

Definition at line 64 of file sparse_matrix.h.

Referenced by pcl::poisson::SparseMatrix< T >::Entries(), pcl::poisson::Octree< Degree >::LaplacianMatrixIteration(), pcl::poisson::SparseMatrix< T >::Multiply(), pcl::poisson::SparseSymmetricMatrix< T >::Multiply(), pcl::poisson::SparseMatrix< T >::operator=(), pcl::poisson::SparseMatrix< T >::read(), pcl::poisson::SparseMatrix< T >::Resize(), pcl::poisson::SparseMatrix< T >::SetRowSize(), pcl::poisson::SparseSymmetricMatrix< T >::Solve(), pcl::poisson::SparseMatrix< T >::SparseMatrix(), and pcl::poisson::SparseMatrix< T >::write().

## rowSizes

template<class T>

int* pcl::poisson::SparseMatrix< T >::rowSizes

Definition at line 65 of file sparse_matrix.h.

Referenced by pcl::poisson::SparseMatrix< T >::Entries(), pcl::poisson::Octree< Degree >::LaplacianMatrixIteration(), pcl::poisson::SparseMatrix< T >::Multiply(), pcl::poisson::SparseSymmetricMatrix< T >::Multiply(), pcl::poisson::SparseMatrix< T >::operator=(), pcl::poisson::SparseMatrix< T >::read(), pcl::poisson::SparseMatrix< T >::Resize(), pcl::poisson::SparseMatrix< T >::SetRowSize(), pcl::poisson::SparseMatrix< T >::SparseMatrix(), pcl::poisson::UpSampleData::UpSampleData(), and pcl::poisson::SparseMatrix< T >::write().

The documentation for this class was generated from the following files:

- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/surface/include/pcl/surface/3rdparty/poisson4/sparse_matrix.h
- /build/pcl-OilVEB/pcl-1.8.1+dfsg1/surface/include/pcl/surface/3rdparty/poisson4/sparse_matrix.hpp