RC
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@2710 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
6f384f4a59
commit
e3a610506b
1731 changed files with 105122 additions and 63920 deletions
45
branches/rc2.0/eo/src/es/matrices.h
Normal file
45
branches/rc2.0/eo/src/es/matrices.h
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
#ifndef MATRICES_H
|
||||
#define MATRICES_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
/** @ingroup Utilities
|
||||
*/
|
||||
class lower_triangular_matrix {
|
||||
|
||||
unsigned n;
|
||||
std::vector<double> data;
|
||||
|
||||
public:
|
||||
|
||||
lower_triangular_matrix(unsigned n_ = 0) : n(n_), data(n * (n+1) / 2) {};
|
||||
|
||||
void resize(unsigned n_) {
|
||||
n = n_;
|
||||
data.resize(n*(n+1)/2);
|
||||
}
|
||||
|
||||
std::vector<double>::iterator operator[](unsigned i) { return data.begin() + i * (i+1) / 2; }
|
||||
std::vector<double>::const_iterator operator[](unsigned i) const { return data.begin() + i*(i+1)/2; }
|
||||
};
|
||||
|
||||
/** @ingroup Utilities
|
||||
*/
|
||||
class square_matrix {
|
||||
unsigned n;
|
||||
std::vector<double> data;
|
||||
|
||||
public:
|
||||
|
||||
square_matrix(unsigned n_ = 0) : n(n_), data(n * n) {};
|
||||
|
||||
void resize(unsigned n_) {
|
||||
n = n_;
|
||||
data.resize(n*n);
|
||||
}
|
||||
|
||||
std::vector<double>::iterator operator[](unsigned i) { return data.begin() + i * n; }
|
||||
std::vector<double>::const_iterator operator[](unsigned i) const { return data.begin() + i*n; }
|
||||
};
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue