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

Annotation of /trunk/gadget/intmatrix.cc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (view) (download)

1 : agomez 1 #include "intmatrix.h"
2 :     #include "gadget.h"
3 :    
4 :     IntMatrix::IntMatrix(int nr, int nc, int value) {
5 :     nrow = nr;
6 :     v = new IntVector*[nr];
7 :     int i, j;
8 :     for (i = 0; i < nr; i++)
9 :     v[i] = new IntVector(nc, value);
10 :     }
11 :    
12 :     IntMatrix::IntMatrix(const IntMatrix& initial) : nrow(initial.nrow) {
13 :     int i;
14 :     if (nrow >= 0) {
15 :     v = new IntVector*[nrow];
16 :     for (i = 0; i < nrow; i++)
17 :     v[i] = new IntVector(initial[i]);
18 :     } else {
19 :     v = 0;
20 :     nrow = 0;
21 :     }
22 :     }
23 :    
24 :     IntMatrix::~IntMatrix() {
25 :     int i;
26 :     if (v != 0) {
27 :     for (i = 0; i < nrow; i++)
28 :     delete v[i];
29 :     delete[] v;
30 :     v = 0;
31 :     }
32 :     }
33 :    
34 :     void IntMatrix::AddRows(int add, int length, int value) {
35 :     if (add <= 0)
36 :     return;
37 :    
38 :     int i;
39 :     if (v == 0) {
40 :     nrow = add;
41 :     v = new IntVector*[nrow];
42 :     for (i = 0; i < nrow; i++)
43 :     v[i] = new IntVector(length, value);
44 :    
45 :     } else {
46 :     IntVector** vnew = new IntVector*[nrow + add];
47 :     for (i = 0; i < nrow; i++)
48 :     vnew[i] = v[i];
49 :     for (i = nrow; i < nrow + add; i++)
50 :     vnew[i] = new IntVector(length, value);
51 :     delete[] v;
52 :     v = vnew;
53 :     nrow += add;
54 :     }
55 :     }
56 :    
57 :     void IntMatrix::Delete(int pos) {
58 :     delete v[pos];
59 :     int i;
60 :     if (nrow > 1) {
61 :     IntVector** vnew = new IntVector*[nrow -1];
62 :     for (i = 0; i < pos; i++)
63 :     vnew[i] = v[i];
64 :     for (i = pos; i < nrow - 1; i++)
65 :     vnew[i] = v[i + 1];
66 :     delete[] v;
67 :     v = vnew;
68 :     nrow--;
69 :     } else {
70 :     delete[] v;
71 :     v = 0;
72 :     nrow = 0;
73 :     }
74 :     }
75 :    
76 :     IntMatrix& IntMatrix::operator = (const IntMatrix& initial) {
77 :     int i;
78 :     if (v != 0) {
79 :     for (i = 0; i < nrow; i++)
80 :     delete v[i];
81 :     delete[] v;
82 :     }
83 :    
84 :     nrow = initial.nrow;
85 :     if (nrow > 0) {
86 :     v = new IntVector*[nrow];
87 :     for (i = 0; i < nrow; i++)
88 :     v[i] = new IntVector(initial[i]);
89 :    
90 :     } else
91 :     v = 0;
92 :    
93 :     return *this;
94 :     }
95 :    
96 :     void IntMatrix::Reset() {
97 :     if (nrow > 0) {
98 :     int i;
99 :     for (i = 0; i < nrow; i++)
100 :     delete v[i];
101 :     delete[] v;
102 :     v = 0;
103 :     nrow = 0;
104 :     }
105 :     }
106 :    
107 :     void IntMatrix::Print(ofstream& outfile) const {
108 :     int i, j;
109 :     for (i = 0; i < nrow; i++) {
110 :     outfile << TAB;
111 :     for (j = 0; j < v[i]->Size(); j++)
112 :     outfile << setw(smallwidth) << (*v[i])[j] << sep;
113 :     outfile << endl;
114 :     }
115 :     }
116 :    
117 :     void IntMatrix::setToZero() {
118 :     int i;
119 :     for (i = 0; i < nrow; i++)
120 :     (*v[i]).setToZero();
121 :     }

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

Powered By FusionForge