#include <SparseVector.h>
Public Member Functions | |
void | add_entries (int num, int pos) |
void | append (int idx, const double val=0.) |
void | copy_raw (int *indices, double *values) const |
int | first () const |
int | last () const |
int | nnz () const |
double | operator() (int idx) const |
const SparseVector & | operator= (const SparseVector &vec) |
void | print () const |
void | remove (int idx) |
bool | set (int idx, const double val=0.) |
bool | set (int idx, const Eigen::VectorXd &vals) |
SparseVector () | |
SparseVector (int nnz_max) | |
SparseVector (const SparseVector &vec) | |
SparseVector (const SparseVector &vec, int num, int first=0) | |
SparseVector (int *indices, double *values, int nnz) | |
virtual | ~SparseVector () |
Private Member Functions | |
void | _copy_from (const SparseVector &vec) |
void | _dealloc () |
void | _resize (int new_nnz_max) |
int | _search (int idx) const |
Private Attributes | |
int * | _indices |
int | _nnz |
int | _nnz_max |
double * | _values |
Friends | |
class | SparseVectorIter |
Definition at line 36 of file SparseVector.h.
Standard constructor.
Definition at line 114 of file SparseVector.cpp.
isam::SparseVector::SparseVector | ( | int | nnz_max | ) | [inline] |
Definition at line 71 of file SparseVector.h.
isam::SparseVector::SparseVector | ( | const SparseVector & | vec | ) |
Copy constructor - note that overwriting operator= is also necessary!
vec | SparseVector to initialize from. |
Definition at line 122 of file SparseVector.cpp.
isam::SparseVector::SparseVector | ( | const SparseVector & | vec, |
int | num, | ||
int | first = 0 |
||
) |
Subvector copy constructor.
vec | SparseVector to copy from. |
num | Number of entries to copy (note sparse - most will not exist!) |
first | Index of first entry of new vector. |
Definition at line 126 of file SparseVector.cpp.
isam::SparseVector::SparseVector | ( | int * | indices, |
double * | values, | ||
int | nnz | ||
) |
Construct from raw data.
indices | Array of row indices. |
values | Array of values. |
nnz | Length of vector. |
Definition at line 151 of file SparseVector.cpp.
isam::SparseVector::~SparseVector | ( | ) | [virtual] |
Destructor.
Definition at line 162 of file SparseVector.cpp.
void isam::SparseVector::_copy_from | ( | const SparseVector & | vec | ) | [private] |
Copy data from one sparse vector to a new one - private
vec | Existing sparse vector to copy from. |
Definition at line 48 of file SparseVector.cpp.
void isam::SparseVector::_dealloc | ( | ) | [private] |
Deallocate memory - private.
Definition at line 58 of file SparseVector.cpp.
void isam::SparseVector::_resize | ( | int | new_nnz_max | ) | [private] |
Resize the sparse vector - dangerous, only used internally - private.
new_nnz_max | New size of vector. |
Definition at line 102 of file SparseVector.cpp.
int isam::SparseVector::_search | ( | int | idx | ) | const [private] |
Search for an index - private;
Definition at line 69 of file SparseVector.cpp.
void isam::SparseVector::add_entries | ( | int | num, |
int | pos | ||
) |
Shift indices starting at pos by offset.
num | Number of new entries. |
pos | First index that should be shifted. |
Definition at line 287 of file SparseVector.cpp.
void isam::SparseVector::append | ( | int | idx, |
const double | val = 0. |
||
) | [inline] |
Create a new entry at the end of the sparse vector. Used for efficient incremental creation of SparseVector in apply_givens().
idx | Index of entry to add, has to be greater than last_idx(). |
val | Value of new entry. |
Definition at line 130 of file SparseVector.h.
void isam::SparseVector::copy_raw | ( | int * | indices, |
double * | values | ||
) | const |
Copy raw data, useful for converting to Matlab format.
indices | Destination for row indices. |
values | Destination for values. |
Definition at line 192 of file SparseVector.cpp.
int isam::SparseVector::first | ( | ) | const |
Find index of first non-zero entry.
Definition at line 271 of file SparseVector.cpp.
int isam::SparseVector::last | ( | ) | const |
Find index of last non-zero entry
Definition at line 279 of file SparseVector.cpp.
int isam::SparseVector::nnz | ( | ) | const [inline] |
Definition at line 192 of file SparseVector.h.
double isam::SparseVector::operator() | ( | int | idx | ) | const |
Access value of an entry.
idx | Index of entry to access. |
Definition at line 182 of file SparseVector.cpp.
const SparseVector & isam::SparseVector::operator= | ( | const SparseVector & | vec | ) |
Assignment operator (see also copy constructor).
vec | Right-hand-side vector in assignment |
Definition at line 166 of file SparseVector.cpp.
void isam::SparseVector::print | ( | ) | const |
Prints contents of vector as a list of tuples.
Definition at line 295 of file SparseVector.cpp.
void isam::SparseVector::remove | ( | int | idx | ) |
Remove an entry; simply ignores non-existing entries.
idx | Index of entry to remove. |
Definition at line 247 of file SparseVector.cpp.
bool isam::SparseVector::set | ( | int | idx, |
const double | val = 0. |
||
) |
Assign a value to a specific entry.
idx | Index of entry to assign to. |
val | Value to assign. |
Definition at line 197 of file SparseVector.cpp.
bool isam::SparseVector::set | ( | int | idx, |
const Eigen::VectorXd & | vals | ||
) |
Assign a value to a specific entry.
idx | Index of entry to assign to. |
vals | Vector of values to assign. |
c | Number of values in double array val. |
friend class SparseVectorIter [friend] |
Definition at line 196 of file SparseVector.h.
int* isam::SparseVector::_indices [private] |
Definition at line 39 of file SparseVector.h.
int isam::SparseVector::_nnz [private] |
Definition at line 37 of file SparseVector.h.
int isam::SparseVector::_nnz_max [private] |
Definition at line 38 of file SparseVector.h.
double* isam::SparseVector::_values [private] |
Definition at line 40 of file SparseVector.h.