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/agebandmatrixptrvector.cc
[mareframe] / trunk / gadget / agebandmatrixptrvector.cc Repository:
ViewVC logotype

View of /trunk/gadget/agebandmatrixptrvector.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: 3102 byte(s)
Initial version based on Gadget 2.2.00
#include "agebandmatrixptrvector.h"
#include "errorhandler.h"
#include "gadget.h"
#include "global.h"

AgeBandMatrixPtrVector::AgeBandMatrixPtrVector(int sz) {
  size = (sz > 0 ? sz : 0);
  if (size > 0)
    v = new AgeBandMatrix*[size];
  else
    v = 0;
}

AgeBandMatrixPtrVector::AgeBandMatrixPtrVector(const AgeBandMatrixPtrVector& initial) {
  size = initial.size;
  int i;
  if (size > 0) {
    v = new AgeBandMatrix*[size];
    for (i = 0; i < size; i++)
      v[i] = initial.v[i];
  } else
    v = 0;
}

AgeBandMatrixPtrVector::AgeBandMatrixPtrVector(int sz, int minage,
  const IntVector& minl, const IntVector& lsize) {

  int i;
  size = (sz > 0 ? sz : 0);
  if (size > 0) {
    v = new AgeBandMatrix*[size];
    for (i = 0; i < size; i++)
      v[i] = new AgeBandMatrix(minage, minl, lsize);
  } else
    v = 0;
}

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

void AgeBandMatrixPtrVector::resize(int addsize, AgeBandMatrix* value) {
  if (addsize != 1)
    handle.logMessage(LOGFAIL, "Error in agebandmatrixptrvector - cannot add entries to vector");

  this->resize(addsize);
  v[size - 1] = value;
}

void AgeBandMatrixPtrVector::resize(int addsize) {
  if (addsize <= 0)
    return;
  int i;
  if (v == 0) {
    size = addsize;
    v = new AgeBandMatrix*[size];
  } else {
    AgeBandMatrix** vnew = new AgeBandMatrix*[addsize + size];
    for (i = 0; i < size; i++)
      vnew[i] = v[i];
    delete[] v;
    v = vnew;
    size += addsize;
  }
}

void AgeBandMatrixPtrVector::resize(int addsize, int minage,
  const IntVector& minl, const IntVector& lsize) {

  if (addsize <= 0)
    return;

  int i;
  if (v == 0) {
    size = addsize;
    v = new AgeBandMatrix*[size];
    for (i = 0; i < size; i++)
      v[i] = new AgeBandMatrix(minage, minl, lsize);

  } else {
    AgeBandMatrix** vnew = new AgeBandMatrix*[size + addsize];
    for (i = 0; i < size; i++)
      vnew[i] = v[i];
    for (i = size; i < size + addsize; i++)
      vnew[i] = new AgeBandMatrix(minage, minl, lsize);
    delete[] v;
    v = vnew;
    size += addsize;
  }
}

void AgeBandMatrixPtrVector::resize(int addsize, int minage,
  int minl, const PopInfoMatrix& matr) {

  if (addsize <= 0)
    return;

  int i;
  if (v == 0) {
    size = addsize;
    v = new AgeBandMatrix*[size];
    for (i = 0; i < size; i++)
      v[i] = new AgeBandMatrix(minage, matr, minl);

  } else {
    AgeBandMatrix** vnew = new AgeBandMatrix*[addsize + size];
    for (i = 0; i < size; i++)
      vnew[i] = v[i];
    for (i = size; i < addsize + size; i++)
      vnew[i] = new AgeBandMatrix(minage, matr, minl);
    delete[] v;
    v = vnew;
    size += addsize;
  }
}

void AgeBandMatrixPtrVector::Delete(int pos) {
  int i;
  if (size > 1) {
    AgeBandMatrix** vnew = new AgeBandMatrix*[size - 1];
    for (i = 0; i < pos; i++)
      vnew[i] = v[i];
    for (i = pos; i < size - 1; i++)
      vnew[i] = v[i + 1];
    delete[] v;
    v = vnew;
    size--;
  } else {
    delete[] v;
    v = 0;
    size = 0;
  }
}

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

Powered By FusionForge