19 #include "../config.h" 20 #ifdef __MATRIXWRAPPER_BOOST__ 22 #ifndef __MATRIX_BOOST__ 23 #define __MATRIX_BOOST__ 24 #include "../../bfl_constants.h" 25 #include "matrix_wrapper.h" 26 #include "vector_wrapper.h" 27 #include <boost/numeric/ublas/matrix.hpp> 28 #include <boost/numeric/ublas/lu.hpp> 29 #include <boost/numeric/ublas/symmetric.hpp> 30 #include <boost/numeric/ublas/io.hpp> 31 #include <boost/numeric/ublas/lu.hpp> 32 #include <boost/numeric/ublas/triangular.hpp> 33 #include <boost/numeric/ublas/storage.hpp> 34 #include <boost/numeric/ublas/matrix_proxy.hpp> 35 #include <boost/numeric/ublas/matrix_expression.hpp> 39 typedef boost::numeric::ublas::matrix<double> BoostMatrix;
40 typedef boost::numeric::ublas::symmetric_matrix<double, boost::numeric::ublas::lower> BoostSymmetricMatrix;
60 Matrix (
const MyMatrix& a);
61 Matrix(
const BoostMatrix & a);
66 virtual unsigned int size()
const;
67 virtual unsigned int capacity()
const;
68 virtual unsigned int rows()
const;
69 virtual unsigned int columns()
const;
70 virtual double&
operator()(
unsigned int,
unsigned int);
71 virtual double operator()(
unsigned int,
unsigned int)
const;
72 virtual RowVector operator[](
unsigned int)
const;
74 virtual bool operator==(
const MyMatrix& a)
const;
82 virtual MyMatrix
operator+ (
double b)
const;
83 virtual MyMatrix
operator- (
double b)
const;
84 virtual MyMatrix
operator* (
double b)
const;
85 virtual MyMatrix
operator/ (
double b)
const;
87 virtual MyMatrix&
operator =(
const MySymmetricMatrix& a);
90 virtual MyMatrix
operator+ (
const MyMatrix &a)
const;
91 virtual MyMatrix
operator- (
const MyMatrix &a)
const;
92 virtual MyMatrix
operator* (
const MyMatrix &a)
const;
94 virtual MyColumnVector
operator* (
const MyColumnVector &b)
const;
96 virtual MyRowVector
rowCopy(
unsigned int r)
const;
97 virtual MyColumnVector
columnCopy(
unsigned int c)
const;
99 virtual void resize(
unsigned int i,
unsigned int j,
100 bool copy=
true,
bool initialize=
true);
101 virtual MyMatrix
inverse()
const;
105 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const;
127 virtual unsigned int size()
const;
128 virtual unsigned int capacity()
const;
129 virtual unsigned int rows()
const;
130 virtual unsigned int columns()
const;
131 virtual MySymmetricMatrix
inverse()
const;
132 virtual MySymmetricMatrix
transpose()
const;
135 virtual double&
operator()(
unsigned int,
unsigned int);
136 virtual double operator()(
unsigned int,
unsigned int)
const;
137 virtual RowVector operator[](
unsigned int)
const;
138 virtual bool operator==(
const MySymmetricMatrix& a)
const;
140 virtual MySymmetricMatrix&
operator=(
double a);
146 virtual MySymmetricMatrix
operator + (
double b)
const;
147 virtual MySymmetricMatrix
operator - (
double b)
const;
148 virtual MySymmetricMatrix
operator * (
double b)
const;
149 virtual MySymmetricMatrix
operator / (
double b)
const;
151 virtual MyRowVector
rowCopy(
unsigned int r)
const;
155 virtual MyMatrix
operator + (
const MyMatrix &a)
const;
156 virtual MyMatrix
operator - (
const MyMatrix &a)
const;
157 virtual MyMatrix
operator * (
const MyMatrix &a)
const;
159 virtual MySymmetricMatrix&
operator +=(
const MySymmetricMatrix& a);
160 virtual MySymmetricMatrix&
operator -=(
const MySymmetricMatrix& a);
161 virtual MySymmetricMatrix
operator + (
const MySymmetricMatrix &a)
const;
162 virtual MySymmetricMatrix
operator - (
const MySymmetricMatrix &a)
const;
163 virtual MyMatrix
operator * (
const MySymmetricMatrix& a)
const;
165 virtual MyColumnVector
operator* (
const MyColumnVector &b)
const;
166 virtual void multiply (
const MyColumnVector &b, MyColumnVector &result)
const;
168 virtual void resize(
unsigned int i,
bool copy=
true,
bool initialize=
true);
169 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const;
virtual unsigned int size() const
Ask Number of Rows.
Implementation of Matrixwrapper using Boost.
virtual MyMatrix operator/(double b) const
MATRIX - SCALAR operator.
Wrapper class for RowVectors (Boost implementation)
virtual unsigned int columns() const
Ask Number of Columns.
virtual double determinant() const
get determinant
virtual MyMatrix operator+(double b) const
MATRIX - SCALAR operator.
virtual MyMatrix & operator+=(double a)
MATRIX - SCALAR operator.
virtual double & operator()(unsigned int, unsigned int)
Operator ()
virtual MyMatrix operator*(double b) const
MATRIX - SCALAR operator.
virtual MyRowVector rowCopy(unsigned int r) const
Get row from matrix.
Class SymmetricMatrixWrapper.
virtual MyMatrix operator-(double b) const
MATRIX - SCALAR operator.
virtual MyColumnVector columnCopy(unsigned int c) const
Get column from matrix.
virtual void resize(unsigned int i, unsigned int j, bool copy=true, bool initialize=true)
resize matrix
virtual MyMatrix transpose() const
get transpose
virtual int convertToSymmetricMatrix(MySymmetricMatrix &sym)
Turn matrix into Symmetric one.
virtual MyMatrix & operator=(double a)
Set all elements of the Matrix equal to a.
virtual MyMatrix sub(int i_start, int i_end, int j_start, int j_end) const
get sub matrix
virtual MyMatrix & operator/=(double b)
MATRIX - SCALAR operator.
virtual unsigned int rows() const
Ask Number of Rows.
virtual MyMatrix & operator-=(double a)
MATRIX - SCALAR operator.
virtual MyMatrix & operator*=(double b)
MATRIX - SCALAR operator.
virtual unsigned int capacity() const
Ask Number of Rows.
virtual MyMatrix inverse() const
get inverse
virtual bool operator==(const MyMatrix &a) const
Operator ==.