--- trunk/gadget/matrix.cc 2015/04/29 12:55:30 2 +++ trunk/gadget/matrix.cc 2015/07/24 18:36:24 12 @@ -2,11 +2,9 @@ #include "mathfunc.h" #include "gadget.h" -//TODO usar mallock Matrix::Matrix(int nr, int nc, double value) { m = new double[nr * nc]; - nrow = nr; ncol = nc; int i, j; @@ -16,24 +14,6 @@ } } -//Matrix::Matrix(const DoubleMatrix& initial) : nrow(initial.nrow) { -// int i; -// if (nrow >= 0) { -//// v = new DoubleVector*[nrow]; -//// for (i = 0; i < nrow; i++) -//// v[i] = new DoubleVector(initial[i]); -// v = new double[nrow][initial.Ncol(0)]; -// int i,j; -// -// for (i = 0; i < nrow; i++) -// for (j = 0; j < initial.Ncol(0); j++) -// v[i][j] = initial[i][j]; -// } else { -// v = 0; -// nrow = 0; -// } -//} - Matrix::~Matrix() { int i; if (m != 0) { @@ -74,45 +54,6 @@ } } -//void Matrix::Delete(int pos) { -// delete v[pos]; -// int i; -// if (nrow > 1) { -// DoubleVector** vnew = new DoubleVector*[nrow - 1]; -// for (i = 0; i < pos; i++) -// vnew[i] = v[i]; -// for (i = pos; i < nrow - 1; i++) -// vnew[i] = v[i + 1]; -// delete[] v; -// v = vnew; -// nrow--; -// } else { -// delete[] v; -// v = 0; -// nrow = 0; -// } -//} - -//Matrix& Matrix::operator = (const Matrix& d) { -// int i; -// if (v != 0) { -// for (i = 0; i < nrow; i++) -// delete v[i]; -// delete[] v; -// } -// -// nrow = d.nrow; -// if (nrow > 0) { -// v = new double*[nrow]; -// for (i = 0; i < nrow; i++) -// v[i] = new double(*d[i]); -// -// } else -// v = 0; -// -// return *this; -//} - void Matrix::Reset() { if (nrow > 0) { int i; @@ -123,6 +64,20 @@ } } +void Matrix::Initialize(int nr, int nc, double initial) { + if (m != 0) + delete[] m; + + m = new double[nr * nc]; + nrow = nr; + ncol = nc; + int i, j; + for (i = 0; i < nr; i++) { + for (j = 0; j < nc; j++) + m[i*ncol+j] = initial; + } +} + void Matrix::Print(ofstream& outfile) const { int i, j; for (i = 0; i < nrow; i++) { @@ -136,9 +91,7 @@ void Matrix::setToZero() { int i, j; -// **v = {0}; for (i = 0; i < nrow; i++) for (j = 0; j < ncol; j++) - m[i*ncol+j] = 0; -// (*v[i]).setToZero(); + m[i*ncol+j] = 0.0; }