Revision 1 -
(download)
(annotate)
Mon Feb 10 17:09:07 2014 UTC
(10 years, 5 months ago)
by agomez File size: 1607 byte(s)
Initial version based on Gadget 2.2.00
#include "formulavector.h"
FormulaVector::FormulaVector(const FormulaVector& initial) {
int i;
size = initial.size;
if (size > 0) {
v = new Formula[size];
for (i = 0; i < size; i++)
v[i] = initial.v[i];
} else
v = 0;
}
FormulaVector::FormulaVector(int sz, Formula initial) {
int i;
size = (sz > 0 ? sz : 0);
if (size > 0) {
v = new Formula[size];
for (i = 0; i < size; i++)
v[i] = initial;
} else
v = 0;
}
FormulaVector::FormulaVector(int sz, double initial) {
int i;
size = (sz > 0 ? sz : 0);
if (size > 0) {
v = new Formula[size];
for (i = 0; i < size; i++)
v[i].setValue(initial);
} else
v = 0;
}
FormulaVector::~FormulaVector() {
if (v != 0) {
delete[] v;
v = 0;
}
}
void FormulaVector::resize(int addsize, Keeper* keeper) {
if (addsize <= 0)
return;
int i;
if (v == 0) {
size = addsize;
v = new Formula[size];
} else {
Formula* vnew = new Formula[size + addsize];
for (i = 0; i < size; i++)
v[i].Interchange(vnew[i], keeper);
delete[] v;
v = vnew;
size += addsize;
}
}
void FormulaVector::Inform(Keeper* keeper) {
int i;
for (i = 0; i < size; i++)
v[i].Inform(keeper);
}
void FormulaVector::Delete(int pos, Keeper* keeper) {
int i;
if (size > 1) {
Formula* vnew = new Formula[size - 1];
for (i = 0; i < pos; i++)
v[i].Interchange(vnew[i], keeper);
for (i = pos; i < size - 1; i++)
v[i + 1].Interchange(vnew[i], keeper);
delete[] v;
v = vnew;
size--;
} else {
delete[] v;
v = 0;
size = 0;
}
}