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
34 namespace MatrixWrapper
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;
61 virtual MyMatrix& operator =(
double a);
63 virtual MyMatrix& operator +=(
double a);
64 virtual MyMatrix& operator -=(
double a);
65 virtual MyMatrix& operator *=(
double b);
66 virtual MyMatrix& operator /=(
double b);
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);
73 virtual MyMatrix& operator +=(
const MyMatrix& a);
74 virtual MyMatrix& operator -=(
const MyMatrix& 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;
87 virtual MyMatrix transpose()
const;
88 virtual double determinant()
const;
89 virtual int convertToSymmetricMatrix(MySymmetricMatrix& sym);
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;
114 virtual double determinant()
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);
122 virtual MySymmetricMatrix& operator +=(
double a);
123 virtual MySymmetricMatrix& operator -=(
double a);
124 virtual MySymmetricMatrix& operator *=(
double b);
125 virtual MySymmetricMatrix& operator /=(
double b);
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;
131 virtual MyMatrix& operator +=(
const MyMatrix& a);
132 virtual MyMatrix& operator -=(
const MyMatrix& a);
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;