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

Annotation of /trunk/gadget/agebandmatrixptrvector.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (view) (download)

1 : agomez 1 #include "agebandmatrixptrvector.h"
2 :     #include "errorhandler.h"
3 :     #include "gadget.h"
4 :     #include "global.h"
5 :    
6 :     AgeBandMatrixPtrVector::AgeBandMatrixPtrVector(int sz) {
7 :     size = (sz > 0 ? sz : 0);
8 :     if (size > 0)
9 :     v = new AgeBandMatrix*[size];
10 :     else
11 :     v = 0;
12 :     }
13 :    
14 :     AgeBandMatrixPtrVector::AgeBandMatrixPtrVector(const AgeBandMatrixPtrVector& initial) {
15 :     size = initial.size;
16 :     int i;
17 :     if (size > 0) {
18 :     v = new AgeBandMatrix*[size];
19 :     for (i = 0; i < size; i++)
20 :     v[i] = initial.v[i];
21 :     } else
22 :     v = 0;
23 :     }
24 :    
25 :     AgeBandMatrixPtrVector::AgeBandMatrixPtrVector(int sz, int minage,
26 :     const IntVector& minl, const IntVector& lsize) {
27 :    
28 :     int i;
29 :     size = (sz > 0 ? sz : 0);
30 :     if (size > 0) {
31 :     v = new AgeBandMatrix*[size];
32 :     for (i = 0; i < size; i++)
33 :     v[i] = new AgeBandMatrix(minage, minl, lsize);
34 :     } else
35 :     v = 0;
36 :     }
37 :    
38 :     AgeBandMatrixPtrVector::~AgeBandMatrixPtrVector() {
39 :     int i;
40 :     if (v != 0) {
41 :     for (i = 0; i < size; i++)
42 :     delete v[i];
43 :     delete[] v;
44 :     v = 0;
45 :     }
46 :     }
47 :    
48 :     void AgeBandMatrixPtrVector::resize(int addsize, AgeBandMatrix* value) {
49 :     if (addsize != 1)
50 :     handle.logMessage(LOGFAIL, "Error in agebandmatrixptrvector - cannot add entries to vector");
51 :    
52 :     this->resize(addsize);
53 :     v[size - 1] = value;
54 :     }
55 :    
56 :     void AgeBandMatrixPtrVector::resize(int addsize) {
57 :     if (addsize <= 0)
58 :     return;
59 :     int i;
60 :     if (v == 0) {
61 :     size = addsize;
62 :     v = new AgeBandMatrix*[size];
63 :     } else {
64 :     AgeBandMatrix** vnew = new AgeBandMatrix*[addsize + size];
65 :     for (i = 0; i < size; i++)
66 :     vnew[i] = v[i];
67 :     delete[] v;
68 :     v = vnew;
69 :     size += addsize;
70 :     }
71 :     }
72 :    
73 :     void AgeBandMatrixPtrVector::resize(int addsize, int minage,
74 :     const IntVector& minl, const IntVector& lsize) {
75 :    
76 :     if (addsize <= 0)
77 :     return;
78 :    
79 :     int i;
80 :     if (v == 0) {
81 :     size = addsize;
82 :     v = new AgeBandMatrix*[size];
83 :     for (i = 0; i < size; i++)
84 :     v[i] = new AgeBandMatrix(minage, minl, lsize);
85 :    
86 :     } else {
87 :     AgeBandMatrix** vnew = new AgeBandMatrix*[size + addsize];
88 :     for (i = 0; i < size; i++)
89 :     vnew[i] = v[i];
90 :     for (i = size; i < size + addsize; i++)
91 :     vnew[i] = new AgeBandMatrix(minage, minl, lsize);
92 :     delete[] v;
93 :     v = vnew;
94 :     size += addsize;
95 :     }
96 :     }
97 :    
98 :     void AgeBandMatrixPtrVector::resize(int addsize, int minage,
99 :     int minl, const PopInfoMatrix& matr) {
100 :    
101 :     if (addsize <= 0)
102 :     return;
103 :    
104 :     int i;
105 :     if (v == 0) {
106 :     size = addsize;
107 :     v = new AgeBandMatrix*[size];
108 :     for (i = 0; i < size; i++)
109 :     v[i] = new AgeBandMatrix(minage, matr, minl);
110 :    
111 :     } else {
112 :     AgeBandMatrix** vnew = new AgeBandMatrix*[addsize + size];
113 :     for (i = 0; i < size; i++)
114 :     vnew[i] = v[i];
115 :     for (i = size; i < addsize + size; i++)
116 :     vnew[i] = new AgeBandMatrix(minage, matr, minl);
117 :     delete[] v;
118 :     v = vnew;
119 :     size += addsize;
120 :     }
121 :     }
122 :    
123 :     void AgeBandMatrixPtrVector::Delete(int pos) {
124 :     int i;
125 :     if (size > 1) {
126 :     AgeBandMatrix** vnew = new AgeBandMatrix*[size - 1];
127 :     for (i = 0; i < pos; i++)
128 :     vnew[i] = v[i];
129 :     for (i = pos; i < size - 1; i++)
130 :     vnew[i] = v[i + 1];
131 :     delete[] v;
132 :     v = vnew;
133 :     size--;
134 :     } else {
135 :     delete[] v;
136 :     v = 0;
137 :     size = 0;
138 :     }
139 :     }

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

Powered By FusionForge