Mercurial > octave-nkf
comparison liboctave/Array-util.cc @ 4747:3f28979bbe2c
[project @ 2004-02-06 23:56:46 by jwe]
author | jwe |
---|---|
date | Fri, 06 Feb 2004 23:56:46 +0000 |
parents | a1b165f5e934 |
children | bbddd4339cf2 |
comparison
equal
deleted
inserted
replaced
4746:c43a0c0b6d44 | 4747:3f28979bbe2c |
---|---|
37 | 37 |
38 if (n == dimensions.length ()) | 38 if (n == dimensions.length ()) |
39 { | 39 { |
40 for (int i = 0; i < n; i++) | 40 for (int i = 0; i < n; i++) |
41 { | 41 { |
42 if (ra_idx(i) < 0 || ra_idx(i) > dimensions(i)) | 42 if (ra_idx(i) < 0 || ra_idx(i) >= dimensions(i)) |
43 { | 43 { |
44 retval = false; | 44 retval = false; |
45 break; | 45 break; |
46 } | 46 } |
47 } | 47 } |
234 | 234 |
235 return true; | 235 return true; |
236 } | 236 } |
237 | 237 |
238 bool | 238 bool |
239 equal_arrays (const dim_vector& a, const dim_vector& b) | |
240 { | |
241 bool retval = true; | |
242 | |
243 if (a.length () != b.length ()) | |
244 retval = false; | |
245 else | |
246 { | |
247 for (int i = 0; i < a.length (); i++) | |
248 { | |
249 if (a(i) != b(i)) | |
250 retval = false; | |
251 } | |
252 } | |
253 | |
254 return retval; | |
255 } | |
256 | |
257 bool | |
258 all_ok (const Array<idx_vector>& ra_idx) | 239 all_ok (const Array<idx_vector>& ra_idx) |
259 { | 240 { |
260 bool retval = true; | 241 bool retval = true; |
261 | 242 |
262 int n = ra_idx.length (); | 243 int n = ra_idx.length (); |
291 | 272 |
292 return retval; | 273 return retval; |
293 } | 274 } |
294 | 275 |
295 bool | 276 bool |
296 any_zero_len (const dim_vector& frozen_lengths) | |
297 { | |
298 bool retval = false; | |
299 | |
300 int n = frozen_lengths.length (); | |
301 | |
302 for (int i = 0; i < n; i++) | |
303 { | |
304 if (frozen_lengths(i) == 0) | |
305 { | |
306 retval = true; | |
307 break; | |
308 } | |
309 } | |
310 | |
311 return retval; | |
312 } | |
313 | |
314 bool | |
315 all_colon_equiv (const Array<idx_vector>& ra_idx, | 277 all_colon_equiv (const Array<idx_vector>& ra_idx, |
316 const dim_vector& frozen_lengths) | 278 const dim_vector& frozen_lengths) |
317 { | 279 { |
318 bool retval = true; | 280 bool retval = true; |
319 | 281 |
391 retval(i) = ra_idx(i).elem (result_idx(i)); | 353 retval(i) = ra_idx(i).elem (result_idx(i)); |
392 | 354 |
393 return retval; | 355 return retval; |
394 } | 356 } |
395 | 357 |
396 int | |
397 number_of_elements (const dim_vector ra_idx) | |
398 { | |
399 int retval = 1; | |
400 | |
401 int n = ra_idx.length (); | |
402 | |
403 if (n == 0) | |
404 retval = 0; | |
405 | |
406 for (int i = 0; i < n; i++) | |
407 retval *= ra_idx(i); | |
408 | |
409 return retval; | |
410 } | |
411 | |
412 Array<int> | 358 Array<int> |
413 get_ra_idx (int idx, const dim_vector& dims) | 359 get_ra_idx (int idx, const dim_vector& dims) |
414 { | 360 { |
415 Array<int> retval; | 361 Array<int> retval; |
416 | 362 |
419 retval.resize (n_dims); | 365 retval.resize (n_dims); |
420 | 366 |
421 for (int i = 0; i < n_dims; i++) | 367 for (int i = 0; i < n_dims; i++) |
422 retval(i) = 0; | 368 retval(i) = 0; |
423 | 369 |
424 assert (idx > 0 || idx < number_of_elements (dims)); | 370 assert (idx > 0 || idx < dims.numel ()); |
425 | 371 |
426 for (int i = 0; i < idx; i++) | 372 for (int i = 0; i < idx; i++) |
427 increment_index (retval, dims); | 373 increment_index (retval, dims); |
428 | 374 |
429 // XXX FIXME XXX -- the solution using increment_index is not | 375 // XXX FIXME XXX -- the solution using increment_index is not |