Matrix.cc
#include "Matrix.h"
#include <string.h>
Matrix::Matrix() {
nCols = 0;
nRows = 0;
}
Matrix::Matrix(int m, int n) {
nCols = m;
nRows = n;
data = new double[m*n];
}
Matrix::Matrix(double *src, int m, int n) {
// create a matrix from a Fortran-like vector (without copy!)
nCols = m;
nRows = n;
data = src;
}
Matrix::~Matrix() {
delete [] data;
}
Matrix &Matrix::copy() {
// return a deep copy of this
Matrix &theCopy = *new Matrix(nCols, nRows);
memcpy(theCopy.data, data, nCols*nRows*sizeof(double));
return theCopy;
}
int Matrix::getColumnDimension() {
return nCols;
}
int Matrix::getRowDimension() {
return nRows;
}
double* Matrix::getArray() {
return data;
}
double Matrix::get(int i, int j) {
// element read access, first index = 1
return data[(i-1) + nCols*(j-1)];
}
void Matrix::set(int i, int j, double val) {
// element write access, first index = 1
data[(i-1) + nCols*(j-1)] = val;
}

Peter Junglas 20.6.2000