#include <SparseMatrix.h>

Public Member Functions | |
| virtual void | append_in_row (int row, int col, const double val) |
| virtual void | append_new_cols (int num) |
| virtual void | append_new_rows (int num) |
| virtual void | apply_givens (int row, int col, double *c_givens=NULL, double *s_givens=NULL) |
| virtual void | ensure_num_cols (int num_cols) |
| virtual void | ensure_num_rows (int num_rows) |
| virtual const SparseVector & | get_row (int row) const |
| virtual void | import_rows (int num_rows, int num_cols, SparseVector_p *rows) |
| virtual int | max_nz () const |
| virtual int | nnz () const |
| int | num_cols () const |
| int | num_rows () const |
| virtual double | operator() (int row, int col) const |
| const SparseMatrix & | operator= (const SparseMatrix &mat) |
| virtual void | print (std::ostream &out=std::cout) const |
| virtual void | print (const std::string &file_name) const |
| virtual void | print_pattern () const |
| virtual void | print_stats () const |
| virtual void | remove_row () |
| virtual void | save_pattern_eps (const std::string &file_name) const |
| virtual void | set (int row, int col, const double val, bool grow_matrix=false) |
| virtual void | set_row (int row, const SparseVector &new_row) |
| SparseMatrix (int num_rows, int num_cols) | |
| SparseMatrix (const SparseMatrix &mat) | |
| SparseMatrix (const SparseMatrix &mat, int num_rows, int num_cols, int first_row=0, int first_col=0) | |
| SparseMatrix (int num_rows, int num_cols, SparseVector_p *rows) | |
| virtual int | triangulate_with_givens () |
| virtual | ~SparseMatrix () |
Private Member Functions | |
| void | _allocate_SparseMatrix (int num_rows, int num_cols, int max_num_rows, int max_num_cols, bool init_rows=true) |
| void | _copy_from_SparseMatrix (const SparseMatrix &mat) |
| void | _dealloc_SparseMatrix () |
Private Attributes | |
| int | _max_num_cols |
| int | _max_num_rows |
| int | _num_cols |
| int | _num_rows |
| SparseVector_p * | _rows |
Friends | |
| class | OrderedSparseMatrix |
Definition at line 39 of file SparseMatrix.h.
| isam::SparseMatrix::SparseMatrix | ( | int | num_rows, |
| int | num_cols | ||
| ) |
Constructor.
| num_rows | Initial number of rows. |
| num_cols | Initial number of columns. |
Definition at line 76 of file SparseMatrix.cpp.
| isam::SparseMatrix::SparseMatrix | ( | const SparseMatrix & | mat | ) |
| isam::SparseMatrix::SparseMatrix | ( | const SparseMatrix & | mat, |
| int | num_rows, | ||
| int | num_cols, | ||
| int | first_row = 0, |
||
| int | first_col = 0 |
||
| ) |
Submatrix copy constructor
| mat | Matrix to copy. |
| num_rows | Number of rows to copy. |
| num_cols | Number of columns to copy. |
| first_row | Row offset. |
| first_col | Column offset. |
Definition at line 86 of file SparseMatrix.cpp.
| isam::SparseMatrix::SparseMatrix | ( | int | num_rows, |
| int | num_cols, | ||
| SparseVector_p * | rows | ||
| ) |
Definition at line 94 of file SparseMatrix.cpp.
| isam::SparseMatrix::~SparseMatrix | ( | ) | [virtual] |
Destructor.
Definition at line 105 of file SparseMatrix.cpp.
| void isam::SparseMatrix::_allocate_SparseMatrix | ( | int | num_rows, |
| int | num_cols, | ||
| int | max_num_rows, | ||
| int | max_num_cols, | ||
| bool | init_rows = true |
||
| ) | [private] |
Allocate memory - private.
| num_rows | Number of active rows. |
| num_cols | Number of active columns. |
| max_num_rows | Number of rows to reserve memory for. |
| max_num_cols | Number of columns to reserve memory for. |
Definition at line 47 of file SparseMatrix.cpp.
| void isam::SparseMatrix::_copy_from_SparseMatrix | ( | const SparseMatrix & | mat | ) | [private] |
Copy data from one sparse matrix to a new one - private.
| vec | Existing sparse vector to copy from. |
Definition at line 60 of file SparseMatrix.cpp.
| void isam::SparseMatrix::_dealloc_SparseMatrix | ( | ) | [private] |
Deallocate memory - private.
Definition at line 67 of file SparseMatrix.cpp.
| void isam::SparseMatrix::append_in_row | ( | int | row, |
| int | col, | ||
| const double | val | ||
| ) | [virtual] |
Append a new entry to a row. Allows efficient adding of presorted elements.
| row | Row of new entry. |
| col | Column of new entry - must be after last existing one in this row. |
| val | Value of new entry. |
Definition at line 141 of file SparseMatrix.cpp.
| void isam::SparseMatrix::append_new_cols | ( | int | num | ) | [virtual] |
Append new columns to matrix.
| num | Number of columns to add. |
Reimplemented in isam::OrderedSparseMatrix.
Definition at line 270 of file SparseMatrix.cpp.
| void isam::SparseMatrix::append_new_rows | ( | int | num | ) | [virtual] |
Append new rows to matrix.
| num | Number of rows to add. |
Reimplemented in isam::SparseSystem.
Definition at line 252 of file SparseMatrix.cpp.
| void isam::SparseMatrix::apply_givens | ( | int | row, |
| int | col, | ||
| double * | c_givens = NULL, |
||
| double * | s_givens = NULL |
||
| ) | [virtual] |
Zero out an entry by applying a Givens rotation. Note that both sparse rows have to be completely 0 on the left of col.
| row | The row from which row_bot is taken. |
| col | The column of row_bot that should become 0. |
| c_givens | Returns cosine of givens rotation if not NULL. |
| s_givens | Returns sine of givens rotation if not NULL. |
Reimplemented in isam::SparseSystem.
Definition at line 301 of file SparseMatrix.cpp.
| void isam::SparseMatrix::ensure_num_cols | ( | int | num_cols | ) | [virtual] |
Grow matrix to given number of columns; ignore if already at least as large.
| num_cols | Number of columns. |
Definition at line 286 of file SparseMatrix.cpp.
| void isam::SparseMatrix::ensure_num_rows | ( | int | num_rows | ) | [virtual] |
Grow matrix to given number of rows; ignore if already at least as large.
| num_rows | Number of rows. |
Definition at line 279 of file SparseMatrix.cpp.
| const SparseVector & isam::SparseMatrix::get_row | ( | int | row | ) | const [virtual] |
Return a sparse row.
| row | Number of row to return. |
Definition at line 230 of file SparseMatrix.cpp.
| void isam::SparseMatrix::import_rows | ( | int | num_rows, |
| int | num_cols, | ||
| SparseVector_p * | rows | ||
| ) | [virtual] |
Import externally allocated rows.
| num_rows | Number of rows of new matrix. |
| num_cols | Number of columns of new matrix. |
| rows | Array of SparseVector of length num_rows. |
Definition at line 240 of file SparseMatrix.cpp.
| int isam::SparseMatrix::max_nz | ( | ) | const [virtual] |
Determine maximum number of non-zero entries in any column.
Definition at line 155 of file SparseMatrix.cpp.
| int isam::SparseMatrix::nnz | ( | ) | const [virtual] |
Determine number of non-zero entries in sparse matrix.
Definition at line 147 of file SparseMatrix.cpp.
| int isam::SparseMatrix::num_cols | ( | ) | const [inline] |
Definition at line 238 of file SparseMatrix.h.
| int isam::SparseMatrix::num_rows | ( | ) | const [inline] |
Definition at line 237 of file SparseMatrix.h.
| double isam::SparseMatrix::operator() | ( | int | row, |
| int | col | ||
| ) | const [virtual] |
Read a matrix entry.
| row | Row of entry. |
| col | Column of entry. |
Definition at line 124 of file SparseMatrix.cpp.
| const SparseMatrix & isam::SparseMatrix::operator= | ( | const SparseMatrix & | mat | ) |
Assignment operator.
| mat | Right-hand-side matrix in assignment |
Definition at line 109 of file SparseMatrix.cpp.
| virtual void isam::SparseMatrix::print | ( | std::ostream & | out = std::cout | ) | const [virtual] |
Print sparse matrix as triples to stream; also readable by Matlab: "load R.txt; S=spconvert(R); spy(S)"
| out | Output stream. |
| virtual void isam::SparseMatrix::print | ( | const std::string & | file_name | ) | const [virtual] |
Print sparse matrix as triples to file
| file_name | File name to write sparse matrix to. |
| void isam::SparseMatrix::print_pattern | ( | ) | const [virtual] |
Prints non-zero pattern to stdout.
Definition at line 185 of file SparseMatrix.cpp.
| void isam::SparseMatrix::print_stats | ( | ) | const [virtual] |
Print size of matrix and number of entries for debugging.
Definition at line 181 of file SparseMatrix.cpp.
| void isam::SparseMatrix::remove_row | ( | ) | [virtual] |
Removes the last row (used in SparseSystem::add_row_givens).
Definition at line 293 of file SparseMatrix.cpp.
| void isam::SparseMatrix::save_pattern_eps | ( | const std::string & | file_name | ) | const [virtual] |
Save eps graphics file with sparse matrix patterns.
Definition at line 199 of file SparseMatrix.cpp.
| void isam::SparseMatrix::set | ( | int | row, |
| int | col, | ||
| const double | val, | ||
| bool | grow_matrix = false |
||
| ) | [virtual] |
Set one entry of the matrix. Non-existing entries are created.
| row | Row of entry. |
| col | Column of entry. |
| val | New value of entry. |
| grow_matrix | Enlarge matrix if entry outside current size (default: false). |
Definition at line 130 of file SparseMatrix.cpp.
| void isam::SparseMatrix::set_row | ( | int | row, |
| const SparseVector & | new_row | ||
| ) | [virtual] |
Replace the given row.
| row | Number of row to replace. |
| new_row | New row vector. |
Reimplemented in isam::OrderedSparseMatrix.
Definition at line 235 of file SparseMatrix.cpp.
| int isam::SparseMatrix::triangulate_with_givens | ( | ) | [virtual] |
Triangulate matrix by applying Givens rotations to all entries below the diagonal.
Definition at line 371 of file SparseMatrix.cpp.
friend class OrderedSparseMatrix [friend] |
Definition at line 240 of file SparseMatrix.h.
int isam::SparseMatrix::_max_num_cols [private] |
Definition at line 43 of file SparseMatrix.h.
int isam::SparseMatrix::_max_num_rows [private] |
Definition at line 42 of file SparseMatrix.h.
int isam::SparseMatrix::_num_cols [private] |
Definition at line 41 of file SparseMatrix.h.
int isam::SparseMatrix::_num_rows [private] |
Definition at line 40 of file SparseMatrix.h.
SparseVector_p* isam::SparseMatrix::_rows [private] |
Definition at line 44 of file SparseMatrix.h.