Bayesian Filtering Library
Generated from SVN r
|
2 #ifdef __MATRIXWRAPPER_EIGEN__
4 #ifndef __MATRIX_EIGEN__
5 #define __MATRIX_EIGEN__
6 #include "../../bfl_constants.h"
7 #include "matrix_wrapper.h"
8 #include "vector_wrapper.h"
13 typedef Eigen::MatrixXd EigenMatrix;
14 typedef Eigen::MatrixXd EigenSymmetricMatrix;
15 typedef Eigen::MatrixXd::ConstSelfAdjointViewReturnType<Eigen::Upper>::Type EigenSymmetricView;
17 namespace MatrixWrapper
21 class Matrix :
public EigenMatrix,
public Matrix_Wrapper
35 Matrix (
const MyMatrix& a);
36 Matrix(
const EigenMatrix & a);
38 Matrix(
int num_rows,
const RowVector& v);
41 virtual unsigned int size()
const;
42 virtual unsigned int capacity()
const;
43 virtual unsigned int rows()
const;
44 virtual unsigned int columns()
const;
45 virtual double&
operator()(
unsigned int,
unsigned int);
46 virtual double operator()(
unsigned int,
unsigned int)
const;
47 virtual RowVector operator[](
unsigned int)
const;
49 using EigenMatrix::operator ==;
50 using EigenMatrix::operator =;
51 using EigenMatrix::operator +=;
52 using EigenMatrix::operator -=;
53 using EigenMatrix::operator +;
54 using EigenMatrix::operator -;
56 virtual bool operator==(
const MyMatrix& a)
const;
64 virtual MyMatrix
operator+ (
double b)
const;
65 virtual MyMatrix
operator- (
double b)
const;
66 virtual MyMatrix
operator* (
double b)
const;
67 virtual MyMatrix
operator/ (
double b)
const;
69 virtual MyMatrix&
operator =(
const MySymmetricMatrix& a);
72 virtual MyMatrix
operator+ (
const MyMatrix &a)
const;
73 virtual MyMatrix
operator- (
const MyMatrix &a)
const;
74 virtual MyMatrix
operator* (
const MyMatrix &a)
const;
76 virtual MyColumnVector
operator* (
const MyColumnVector &b)
const;
78 virtual MyRowVector
rowCopy(
unsigned int r)
const;
79 virtual MyColumnVector
columnCopy(
unsigned int c)
const;
81 virtual void resize(
unsigned int i,
unsigned int j,
82 bool copy=
true,
bool initialize=
true);
83 virtual MyMatrix
inverse()
const;
87 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const;
91 class SymmetricMatrix :
public EigenSymmetricMatrix,
public SymmetricMatrix_Wrapper
98 SymmetricMatrix(
int n);
101 SymmetricMatrix(
const MySymmetricMatrix& a);
102 SymmetricMatrix(
const EigenSymmetricMatrix& a);
103 SymmetricMatrix(
const EigenSymmetricView & a);
105 SymmetricMatrix(
int num_rows,
const RowVector& v);
108 virtual ~SymmetricMatrix();
110 virtual unsigned int size()
const;
111 virtual unsigned int capacity()
const;
112 virtual unsigned int rows()
const;
113 virtual unsigned int columns()
const;
114 virtual MySymmetricMatrix
inverse()
const;
115 virtual MySymmetricMatrix
transpose()
const;
118 virtual double&
operator()(
unsigned int,
unsigned int);
119 virtual double operator()(
unsigned int,
unsigned int)
const;
120 virtual RowVector operator[](
unsigned int)
const;
122 using EigenSymmetricMatrix::operator ==;
123 using EigenSymmetricMatrix::operator =;
124 using EigenSymmetricMatrix::operator +=;
125 using EigenSymmetricMatrix::operator -=;
126 using EigenSymmetricMatrix::operator +;
127 using EigenSymmetricMatrix::operator -;
129 virtual bool operator==(
const MySymmetricMatrix& a)
const;
131 virtual MySymmetricMatrix&
operator=(
double a);
137 virtual MySymmetricMatrix
operator + (
double b)
const;
138 virtual MySymmetricMatrix
operator - (
double b)
const;
139 virtual MySymmetricMatrix
operator * (
double b)
const;
140 virtual MySymmetricMatrix
operator / (
double b)
const;
142 virtual MyRowVector rowCopy(
unsigned int r)
const;
146 virtual MyMatrix
operator + (
const MyMatrix &a)
const;
147 virtual MyMatrix
operator - (
const MyMatrix &a)
const;
148 virtual MyMatrix
operator * (
const MyMatrix &a)
const;
150 virtual MySymmetricMatrix&
operator +=(
const MySymmetricMatrix& a);
151 virtual MySymmetricMatrix&
operator -=(
const MySymmetricMatrix& a);
152 virtual MySymmetricMatrix
operator + (
const MySymmetricMatrix &a)
const;
153 virtual MySymmetricMatrix
operator - (
const MySymmetricMatrix &a)
const;
154 virtual MyMatrix
operator * (
const MySymmetricMatrix& a)
const;
156 virtual MyColumnVector
operator* (
const MyColumnVector &b)
const;
157 virtual void multiply (
const MyColumnVector &b, MyColumnVector &result)
const;
159 virtual void resize(
unsigned int i,
bool copy=
true,
bool initialize=
true);
160 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const;
virtual MySymmetricMatrix & operator=(double a)
Set all elements of the Matrix equal to a.
virtual MyColumnVector columnCopy(unsigned int c) const
Get column from matrix.
virtual double determinant() const
get determinant
virtual MyRowVector rowCopy(unsigned int r) const
Get row from matrix.
virtual MySymmetricMatrix & operator*=(double b)
SYMMETRICMATRIX - SCALAR operator.
virtual unsigned int size() const
Ask Number of Rows.
virtual unsigned int rows() const
Ask Number of Rows.
virtual unsigned int columns() const
Ask Number of Columns.
virtual bool operator==(const MyMatrix &a) const
Operator ==.
virtual unsigned int size() const
Ask Number of Rows.
virtual MySymmetricMatrix & operator/=(double b)
SYMMETRICMATRIX - SCALAR operator.
virtual MySymmetricMatrix inverse() const
get inverse
virtual void resize(unsigned int i, unsigned int j, bool copy=true, bool initialize=true)
resize matrix
virtual MyMatrix operator*(double b) const
MATRIX - SCALAR operator.
virtual MySymmetricMatrix operator-(double b) const
SYMMETRICMATRIX - SCALAR operator.
virtual MyMatrix & operator=(double a)
Set all elements of the Matrix equal to a.
virtual MyMatrix & operator-=(double a)
MATRIX - SCALAR operator.
virtual MyMatrix & operator*=(double b)
MATRIX - SCALAR operator.
virtual unsigned int columns() const
Ask Number of Columns.
virtual MySymmetricMatrix & operator+=(double a)
SYMMETRICMATRIX - SCALAR operator.
virtual double determinant() const
get determinant
virtual MyMatrix operator/(double b) const
MATRIX - SCALAR operator.
virtual MyMatrix operator+(double b) const
MATRIX - SCALAR operator.
virtual MySymmetricMatrix & operator-=(double a)
SYMMETRICMATRIX - SCALAR operator.
virtual MySymmetricMatrix transpose() const
get transpose
virtual unsigned int capacity() const
Ask Number of Rows.
virtual bool operator==(const MySymmetricMatrix &a) const
Operator ==.
virtual void multiply(const MyColumnVector &b, MyColumnVector &result) const
SYMMETRICMATRIX - VECTOR operator.
virtual MySymmetricMatrix operator+(double b) const
SYMMETRICMATRIX - SCALAR operator.
virtual MyMatrix sub(int i_start, int i_end, int j_start, int j_end) const
get sub matrix
virtual MySymmetricMatrix operator/(double b) const
SYMMETRICMATRIX - SCALAR operator.
virtual MyMatrix transpose() const
get transpose
virtual MyMatrix operator-(double b) const
MATRIX - SCALAR operator.
virtual MyMatrix sub(int i_start, int i_end, int j_start, int j_end) const
get sub matrix
virtual MySymmetricMatrix operator*(double b) const
SYMMETRICMATRIX - SCALAR operator.
virtual MyMatrix & operator/=(double b)
MATRIX - SCALAR operator.
virtual int convertToSymmetricMatrix(MySymmetricMatrix &sym)
Turn matrix into Symmetric one.
virtual void resize(unsigned int i, bool copy=true, bool initialize=true)
resize symmetric matrix
virtual unsigned int rows() const
Ask Number of Rows.
virtual MyMatrix inverse() const
get inverse
virtual unsigned int capacity() const
Ask Number of Rows.
virtual double & operator()(unsigned int, unsigned int)
Operator ()
virtual MyMatrix & operator+=(double a)
MATRIX - SCALAR operator.
virtual double & operator()(unsigned int, unsigned int)
Operator ()