20 #include "../config.h"
21 #ifdef __MATRIXWRAPPER_NEWMAT__
23 #ifndef __MATRIX_NEWMAT__
24 #define __MATRIX_NEWMAT__
26 #include "matrix_wrapper.h"
27 #include "vector_wrapper.h"
28 #include <newmat/newmatio.h>
29 #include <newmat/newmatap.h>
31 #define NewMatMatrix NEWMAT::Matrix
32 #define NewMatSymmetricMatrix NEWMAT::SymmetricMatrix
38 class Matrix :
public NewMatMatrix,
public Matrix_Wrapper
52 Matrix (
const MyMatrix& a);
53 Matrix(
const NewMatMatrix & a);
55 virtual unsigned int rows()
const;
56 virtual unsigned int columns()
const;
57 virtual double&
operator()(
unsigned int,
unsigned int);
58 virtual const double operator()(
unsigned int,
unsigned int)
const;
59 virtual const bool operator==(
const MyMatrix& a)
const;
67 virtual MyMatrix
operator+ (
double b)
const;
68 virtual MyMatrix
operator- (
double b)
const;
69 virtual MyMatrix
operator* (
double b)
const;
70 virtual MyMatrix
operator/ (
double b)
const;
72 virtual MyMatrix&
operator =(
const MySymmetricMatrix& a);
75 virtual MyMatrix
operator+ (
const MyMatrix &a)
const;
76 virtual MyMatrix
operator- (
const MyMatrix &a)
const;
77 virtual MyMatrix
operator* (
const MyMatrix &a)
const;
79 virtual MyColumnVector
operator* (
const MyColumnVector &b)
const;
81 virtual MyRowVector
rowCopy(
unsigned int r)
const;
82 virtual MyColumnVector
columnCopy(
unsigned int c)
const;
84 virtual void resize(
unsigned int i,
unsigned int j,
85 bool copy=
true,
bool initialize=
true);
86 virtual MyMatrix
inverse()
const;
90 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const;
94 class SymmetricMatrix :
public NewMatSymmetricMatrix,
public SymmetricMatrix_Wrapper
101 SymmetricMatrix(
int n);
104 SymmetricMatrix(
const MySymmetricMatrix& a);
105 SymmetricMatrix(
const NewMatSymmetricMatrix & a);
108 virtual ~SymmetricMatrix();
110 virtual unsigned int rows()
const;
111 virtual unsigned int columns()
const;
112 virtual MySymmetricMatrix
inverse()
const;
113 virtual MySymmetricMatrix
transpose()
const;
116 virtual double&
operator()(
unsigned int,
unsigned int);
117 virtual const double operator()(
unsigned int,
unsigned int)
const;
118 virtual const bool operator==(
const MySymmetricMatrix& a)
const;
120 virtual MySymmetricMatrix&
operator=(
double a);
126 virtual MySymmetricMatrix
operator + (
double b)
const;
127 virtual MySymmetricMatrix
operator - (
double b)
const;
128 virtual MySymmetricMatrix
operator * (
double b)
const;
129 virtual MySymmetricMatrix
operator / (
double b)
const;
133 virtual MyMatrix
operator + (
const MyMatrix &a)
const;
134 virtual MyMatrix
operator - (
const MyMatrix &a)
const;
135 virtual MyMatrix
operator * (
const MyMatrix &a)
const;
137 virtual MySymmetricMatrix&
operator +=(
const MySymmetricMatrix& a);
138 virtual MySymmetricMatrix&
operator -=(
const MySymmetricMatrix& a);
139 virtual MySymmetricMatrix
operator + (
const MySymmetricMatrix &a)
const;
140 virtual MySymmetricMatrix
operator - (
const MySymmetricMatrix &a)
const;
141 virtual MyMatrix
operator * (
const MySymmetricMatrix& a)
const;
143 virtual MyColumnVector
operator* (
const MyColumnVector &b)
const;
144 virtual void multiply (
const MyColumnVector &b, MyColumnVector &result)
const;
146 virtual void resize(
unsigned int i,
bool copy=
true,
bool initialize=
true);
147 virtual MyMatrix
sub(
int i_start,
int i_end,
int j_start ,
int j_end)
const;
virtual MyMatrix operator/(double b) const
MATRIX - SCALAR operator.
virtual MySymmetricMatrix & operator*=(double b)
SYMMETRICMATRIX - SCALAR operator.
virtual MySymmetricMatrix & operator=(double a)
Set all elements of the Matrix equal to a.
virtual unsigned int columns() const
Ask Number of Columns.
virtual MyMatrix sub(int i_start, int i_end, int j_start, int j_end) const
get sub matrix
virtual void multiply(const MyColumnVector &b, MyColumnVector &result) const
SYMMETRICMATRIX - VECTOR operator.
virtual double determinant() const
get determinant
virtual MyMatrix operator+(double b) const
MATRIX - SCALAR operator.
virtual double determinant() const
get determinant
virtual MyMatrix & operator+=(double a)
MATRIX - SCALAR operator.
virtual MySymmetricMatrix & operator/=(double b)
SYMMETRICMATRIX - SCALAR operator.
virtual double & operator()(unsigned int, unsigned int)
Operator ()
virtual unsigned int rows() const
Ask Number of Rows.
virtual MySymmetricMatrix operator-(double b) const
SYMMETRICMATRIX - SCALAR operator.
virtual MySymmetricMatrix operator*(double b) const
SYMMETRICMATRIX - SCALAR operator.
virtual MyMatrix operator*(double b) const
MATRIX - SCALAR operator.
virtual MyRowVector rowCopy(unsigned int r) const
Get row from matrix.
virtual MyMatrix operator-(double b) const
MATRIX - SCALAR operator.
virtual MySymmetricMatrix transpose() const
get transpose
virtual MyColumnVector columnCopy(unsigned int c) const
Get column from matrix.
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 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 MySymmetricMatrix & operator+=(double a)
SYMMETRICMATRIX - SCALAR 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 & 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 double & operator()(unsigned int, unsigned int)
Operator ()
virtual MyMatrix inverse() const
get inverse
virtual MySymmetricMatrix & operator-=(double a)
SYMMETRICMATRIX - SCALAR operator.
virtual bool operator==(const MySymmetricMatrix &a) const
Operator ==.
virtual void resize(unsigned int i, bool copy=true, bool initialize=true)
resize symmetric matrix
virtual unsigned int columns() const
Ask Number of Columns.
virtual bool operator==(const MyMatrix &a) const
Operator ==.