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