Log In | Get Help   
Home My Page Projects Code Snippets Project Openings Mareframe
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files
[mareframe] View of /trunk/gadget/formulamatrix.cc
[mareframe] / trunk / gadget / formulamatrix.cc Repository:
ViewVC logotype

View of /trunk/gadget/formulamatrix.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (download) (annotate)
Mon Feb 10 17:09:07 2014 UTC (10 years, 4 months ago) by agomez
File size: 1785 byte(s)
Initial version based on Gadget 2.2.00
#include "formulamatrix.h"
#include "gadget.h"

FormulaMatrix::FormulaMatrix(int nr, int nc, Formula initial) {
  int i;
  nrow = nr;
  if (nrow > 0) {
    v = new FormulaVector*[nr];
    for (i = 0; i < nr; i++)
      v[i] = new FormulaVector(nc, initial);
  } else
    v = 0;
}

FormulaMatrix::FormulaMatrix(int nr, int nc, double initial) {
  int i;
  nrow = nr;
  if (nrow > 0) {
    v = new FormulaVector*[nr];
    for (i = 0; i < nr; i++)
      v[i] = new FormulaVector(nc, initial);
  } else
    v = 0;
}

FormulaMatrix::~FormulaMatrix() {
  int i;
  if (v != 0) {
    for (i = 0; i < nrow; i++)
      delete v[i];
    delete[] v;
  }
}

void FormulaMatrix::AddRows(int add, int length, Formula value) {
  if (add <= 0)
    return;

  int i;
  if (v == 0) {
    nrow = add;
    v = new FormulaVector*[nrow];
    for (i = 0; i < nrow; i++)
      v[i] = new FormulaVector(length, value);
  } else {
    FormulaVector** vnew = new FormulaVector*[add + nrow];
    for (i = 0; i < nrow; i++)
      vnew[i] = v[i];
    for (i = nrow; i < nrow + add; i++)
      vnew[i] = new FormulaVector(length, value);
    delete[] v;
    v = vnew;
    nrow += add;
  }
}

void FormulaMatrix::AddRows(int add, int length, double value) {
  if (add <= 0)
    return;

  int i;
  if (v == 0) {
    nrow = add;
    v = new FormulaVector*[nrow];
    for (i = 0; i < nrow; i++)
      v[i] = new FormulaVector(length, value);
  } else {
    FormulaVector** vnew = new FormulaVector*[add + nrow];
    for (i = 0; i < nrow; i++)
      vnew[i] = v[i];
    for (i = nrow; i < nrow + add; i++)
      vnew[i] = new FormulaVector(length, value);
    delete[] v;
    v = vnew;
    nrow += add;
  }
}

void FormulaMatrix::Inform(Keeper* keeper) {
  int i;
  for (i = 0; i < nrow; i++)
    v[i]->Inform(keeper);
}

root@forge.cesga.es
ViewVC Help
Powered by ViewVC 1.0.0  

Powered By FusionForge