4 Full_storage::operator=(Full_storage const &fs)
9 for (int i=0; i<h; i++)
10 for (int j=0; j<w; j++)
11 els[i][j]= fs.els[i][j];
15 Full_storage::OK() const
18 assert(maxh >= h && maxw >= w);
19 assert(h >= 0 && w >= 0);
21 if (maxh>0) { // access outer elts.
22 Real *r = els[maxh -1];
25 Real s = r[maxw -1]; // accessing unitialised memory.
31 Full_storage::resize_cols(int newh)
38 Real ** newa=new Real*[newh];
43 newa[j] = new Real[maxw];
51 Full_storage::resize_rows(int neww)
57 for (int i=0; i < maxh ; i++) {
58 Real* newa=new Real[neww];
59 for (int k=0; k < w; k++)
68 Full_storage::~Full_storage() {
69 for (int i=0; i < maxh; i++)
75 Full_storage::resize(int rows, int cols)
85 Full_storage::mult_ok(int i, int j) const
91 Full_storage::trans_ok(int i, int j) const
98 Full_storage::trans_next(int &i, int &j) const
100 assert(trans_ok(i,j));
109 Full_storage::mult_next(int &i, int &j) const
111 assert(mult_ok(i,j));
120 Full_storage::delete_column(int k)
122 assert(0 <= k &&k<w);
123 for (int i=0; i< h ; i++)
124 for (int j=k+1; j <w; j++)
125 els[i][j-1]=els[i][j];
129 Full_storage::delete_row(int k)
131 assert(0 <= k &&k<h);
132 for (int i=k+1; i < h ; i++)
133 for (int j=0; j < w; j++)
134 els[i-1][j]=els[i][j];
140 Full_storage::insert_row(int k)
142 assert(0 <= k&& k <=h);
144 for (int i=h-1; i > k ; i--)
145 for (int j=0; j <w; j++)
146 els[i][j]=els[i-1][j];
152 Full_storage::row(int n) const
155 for (int j = 0; j < w; j++)
161 Full_storage::column(int n) const
165 for (int i = 0; i<h; i++)
171 Full_storage::Full_storage(Full_storage&s)
177 Full_storage::clone()
179 return new Full_storage(*this);
181 /****************************************************************/
184 virtual_smat::get_full(int n, int m)
186 return new Full_storage(n,m);