Bayesian Filtering Library
Generated from SVN r
|
19 #ifndef __MATRIX_WRAPPER__
20 #define __MATRIX_WRAPPER__
26 #define MyMatrix MatrixWrapper::Matrix
27 #define MyColumnVector MatrixWrapper::ColumnVector
28 #define MyRowVector MatrixWrapper::RowVector
29 #define MySymmetricMatrix MatrixWrapper::SymmetricMatrix
31 namespace MatrixWrapper{
36 class SymmetricMatrix;
50 virtual unsigned int size()
const = 0;
53 virtual unsigned int capacity()
const = 0;
56 virtual unsigned int rows()
const = 0;
59 virtual unsigned int columns()
const = 0;
62 virtual double&
operator()(
unsigned int,
unsigned int) = 0;
65 virtual double operator()(
unsigned int,
unsigned int)
const = 0;
68 virtual bool operator==(
const MyMatrix& a)
const = 0;
89 virtual MyMatrix
operator+ (
double b)
const = 0;
92 virtual MyMatrix
operator- (
double b)
const = 0;
95 virtual MyMatrix
operator* (
double b)
const = 0;
98 virtual MyMatrix
operator/ (
double b)
const = 0;
101 virtual MyMatrix&
operator =(
const MySymmetricMatrix& a) = 0;
104 virtual MyMatrix&
operator +=(
const MyMatrix& a) = 0;
107 virtual MyMatrix&
operator -=(
const MyMatrix& a) = 0;
110 virtual MyMatrix
operator+ (
const MyMatrix &a)
const = 0;
113 virtual MyMatrix
operator- (
const MyMatrix &a)
const = 0;
116 virtual MyMatrix
operator* (
const MyMatrix &a)
const = 0;
121 virtual MyColumnVector
operator* (
const MyColumnVector &b)
const = 0;
125 virtual MyRowVector
rowCopy(
unsigned int r)
const = 0;
128 virtual MyColumnVector
columnCopy(
unsigned int c)
const = 0;
131 virtual void resize(
unsigned int i,
unsigned int j,
132 bool copy=
true,
bool initialize=
true) = 0;
135 virtual MyMatrix
pseudoinverse(
double epsilon = 0.01 )
const;
138 virtual MyMatrix
inverse()
const = 0;
153 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const = 0;
156 virtual bool SVD(MyColumnVector& D, MyMatrix& U, MyMatrix& V)
const ;
158 double PYTHAG(
double a,
double b)
const;
160 double SIGN(
double a,
double b)
const;
176 virtual unsigned int size()
const = 0;
179 virtual unsigned int capacity()
const = 0;
183 virtual unsigned int rows()
const = 0;
186 virtual unsigned int columns()
const = 0;
189 virtual double&
operator()(
unsigned int,
unsigned int) = 0;
192 virtual double operator()(
unsigned int,
unsigned int)
const = 0;
195 virtual bool operator==(
const MySymmetricMatrix& a)
const = 0;
198 virtual MySymmetricMatrix&
operator =(
double a) = 0;
203 virtual MySymmetricMatrix&
operator +=(
double a) = 0;
206 virtual MySymmetricMatrix&
operator -=(
double a) = 0;
209 virtual MySymmetricMatrix&
operator *=(
double b) = 0;
212 virtual MySymmetricMatrix&
operator /=(
double b) = 0;
215 virtual MySymmetricMatrix
operator+ (
double b)
const = 0;
218 virtual MySymmetricMatrix
operator- (
double b)
const = 0;
221 virtual MySymmetricMatrix
operator* (
double b)
const = 0;
224 virtual MySymmetricMatrix
operator/ (
double b)
const = 0;
228 virtual MyMatrix&
operator +=(
const MyMatrix& a) = 0;
231 virtual MyMatrix&
operator -=(
const MyMatrix& a) = 0;
234 virtual MyMatrix
operator+ (
const MyMatrix &a)
const = 0;
237 virtual MyMatrix
operator- (
const MyMatrix &a)
const = 0;
240 virtual MyMatrix
operator* (
const MyMatrix &a)
const = 0;
243 virtual MySymmetricMatrix&
operator +=(
const MySymmetricMatrix& a) = 0;
246 virtual MySymmetricMatrix&
operator -=(
const MySymmetricMatrix& a) = 0;
249 virtual MySymmetricMatrix
operator+ (
const MySymmetricMatrix &a)
const = 0;
252 virtual MySymmetricMatrix
operator- (
const MySymmetricMatrix &a)
const= 0;
255 virtual MyMatrix
operator* (
const MySymmetricMatrix &a)
const = 0;
263 virtual void multiply(
const MyColumnVector &b, MyColumnVector &result)
const = 0;
266 virtual void resize(
unsigned int i,
bool copy=
true,
bool initialize=
true) = 0;
269 virtual MySymmetricMatrix
inverse()
const = 0;
272 virtual MySymmetricMatrix
transpose()
const = 0;
278 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const = 0;
291 #include "matrix_NEWMAT.h"
292 #include "matrix_BOOST.h"
293 #include "matrix_EIGEN.h"
296 #endif // __MATRIX_WRAPPER__
virtual unsigned int columns() const =0
Ask Number of Columns.
virtual MySymmetricMatrix & operator+=(double a)=0
SYMMETRICMATRIX - SCALAR operator.
virtual MyRowVector rowCopy(unsigned int r) const =0
Get row from matrix.
virtual MySymmetricMatrix & operator/=(double b)=0
SYMMETRICMATRIX - SCALAR operator.
virtual MyMatrix & operator-=(double a)=0
MATRIX - SCALAR operator.
virtual MyMatrix pseudoinverse(double epsilon=0.01) const
get pseudoinverse
virtual void multiply(const MyColumnVector &b, MyColumnVector &result) const =0
SYMMETRICMATRIX - VECTOR operator.
virtual MyMatrix operator+(double b) const =0
MATRIX - SCALAR operator.
virtual MySymmetricMatrix inverse() const =0
get inverse
virtual unsigned int rows() const =0
Ask Number of Rows.
virtual double determinant() const =0
get determinant
virtual double & operator()(unsigned int, unsigned int)=0
Operator ()
virtual MySymmetricMatrix & operator-=(double a)=0
SYMMETRICMATRIX - SCALAR operator.
virtual MySymmetricMatrix & operator=(double a)=0
Set all elements of the Matrix equal to a.
virtual MyMatrix operator*(double b) const =0
MATRIX - SCALAR operator.
virtual MyMatrix & operator+=(double a)=0
MATRIX - SCALAR operator.
Wrapper class for ColumnVectors (Boost implementation)
virtual unsigned int capacity() const =0
Ask Number of Rows.
virtual int convertToSymmetricMatrix(MySymmetricMatrix &sym)=0
Turn matrix into Symmetric one.
virtual MySymmetricMatrix transpose() const =0
get transpose
virtual MyMatrix operator-(double b) const =0
MATRIX - SCALAR operator.
virtual ~Matrix_Wrapper()
Destructor.
virtual bool cholesky_semidefinite(MyMatrix &m) const
Cholesky Decomposition for semidefinite matrices.
virtual unsigned int columns() const =0
Ask Number of Columns.
virtual bool operator==(const MySymmetricMatrix &a) const =0
Operator ==.
virtual MyMatrix sub(int i_start, int i_end, int j_start, int j_end) const =0
get sub matrix
virtual unsigned int size() const =0
Ask Number of Rows.
virtual MyMatrix inverse() const =0
get inverse
virtual MyMatrix & operator=(double a)=0
Set all elements of the Matrix equal to a.
virtual MyMatrix transpose() const =0
get transpose
virtual double & operator()(unsigned int, unsigned int)=0
Operator ()
virtual MyColumnVector columnCopy(unsigned int c) const =0
Get column from matrix.
virtual MyMatrix & operator/=(double b)=0
MATRIX - SCALAR operator.
SymmetricMatrix_Wrapper()
Constructor.
virtual void resize(unsigned int i, bool copy=true, bool initialize=true)=0
resize symmetric matrix
virtual MySymmetricMatrix operator-(double b) const =0
SYMMETRICMATRIX - SCALAR operator.
virtual MyMatrix operator/(double b) const =0
MATRIX - SCALAR operator.
virtual double determinant() const =0
get determinant
virtual MySymmetricMatrix operator*(double b) const =0
SYMMETRICMATRIX - SCALAR operator.
virtual unsigned int size() const =0
Ask Number of Rows.
virtual bool SVD(MyColumnVector &D, MyMatrix &U, MyMatrix &V) const
SVD Decomposition (for pseudo-inverse properties)
virtual MySymmetricMatrix operator+(double b) const =0
SYMMETRICMATRIX - SCALAR operator.
virtual MySymmetricMatrix operator/(double b) const =0
SYMMETRICMATRIX - SCALAR operator.
virtual void resize(unsigned int i, unsigned int j, bool copy=true, bool initialize=true)=0
resize matrix
Class SymmetricMatrixWrapper.
Matrix_Wrapper()
Constructor.
virtual bool operator==(const MyMatrix &a) const =0
Operator ==.
virtual MyMatrix sub(int i_start, int i_end, int j_start, int j_end) const =0
get sub matrix
virtual unsigned int rows() const =0
Ask Number of Rows.
virtual MyMatrix & operator*=(double b)=0
MATRIX - SCALAR operator.
virtual unsigned int capacity() const =0
Ask Number of Rows.
virtual ~SymmetricMatrix_Wrapper()
Destructor.
virtual MySymmetricMatrix & operator*=(double b)=0
SYMMETRICMATRIX - SCALAR operator.