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 a)
MATRIX - SCALAR operator.
virtual MyColumnVector columnCopy(unsigned int c) const
Get column from matrix.
virtual double & operator()(unsigned int, unsigned int)
Operator ()
virtual double determinant() const
get determinant
virtual unsigned int columns() const
Ask Number of Columns.
virtual MyMatrix operator+(double b) const
MATRIX - SCALAR operator.
virtual bool operator==(const MyMatrix &a) const
Operator ==.
virtual MyRowVector rowCopy(unsigned int r) const
Get row from matrix.
virtual unsigned int rows() const
Ask Number of Rows.
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 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 operator-(double b) const
MATRIX - SCALAR operator.
virtual MyMatrix & operator/=(double b)
MATRIX - SCALAR operator.
virtual MyMatrix operator/(double b) const
MATRIX - SCALAR operator.
virtual MyMatrix & operator-=(double a)
MATRIX - SCALAR operator.
virtual MyMatrix & operator*=(double b)
MATRIX - SCALAR operator.
virtual MyMatrix inverse() const
get inverse
virtual MyMatrix transpose() const
get transpose
virtual MyMatrix sub(int i_start, int i_end, int j_start, int j_end) const
get sub matrix