comparison liboctave/Array-idx.h @ 1614:1c39163722ce

[project @ 1995-11-03 12:53:35 by jwe]
author jwe
date Fri, 03 Nov 1995 12:53:35 +0000
parents 4da3d91d1a17
children 1a35c8c91349
comparison
equal deleted inserted replaced
1613:f18871f4df2b 1614:1c39163722ce
515 idx_vector idx_j = tmp[1]; 515 idx_vector idx_j = tmp[1];
516 516
517 int n = idx_i.freeze (lhs_nr, "row", pzo_flag, rre_flag); 517 int n = idx_i.freeze (lhs_nr, "row", pzo_flag, rre_flag);
518 int m = idx_j.freeze (lhs_nc, "column", pzo_flag, rre_flag); 518 int m = idx_j.freeze (lhs_nc, "column", pzo_flag, rre_flag);
519 519
520 int idx_i_is_colon = idx_i.is_colon ();
521 int idx_j_is_colon = idx_j.is_colon ();
522
523 if (idx_i_is_colon)
524 n = rhs_nr;
525
526 if (idx_j_is_colon)
527 m = rhs_nc;
528
520 if (idx_i && idx_j) 529 if (idx_i && idx_j)
521 { 530 {
522 if (rhs_nr == 0 && rhs_nc == 0) 531 if (rhs_nr == 0 && rhs_nc == 0)
523 { 532 {
524 lhs.maybe_delete_elements (idx_i, idx_j); 533 lhs.maybe_delete_elements (idx_i, idx_j);
525 } 534 }
526 else 535 else
527 { 536 {
528 if (rre_flag) 537 if (rre_flag)
529 { 538 {
530 int max_row_idx = idx_i.max () + 1; 539 int max_row_idx = idx_i_is_colon ? rhs_nr : idx_i.max () + 1;
531 int max_col_idx = idx_j.max () + 1; 540 int max_col_idx = idx_j_is_colon ? rhs_nc : idx_j.max () + 1;
532 541
533 int new_nr = max_row_idx > lhs_nr ? max_row_idx : lhs_nr; 542 int new_nr = max_row_idx > lhs_nr ? max_row_idx : lhs_nr;
534 int new_nc = max_col_idx > lhs_nc ? max_col_idx : lhs_nc; 543 int new_nc = max_col_idx > lhs_nc ? max_col_idx : lhs_nc;
535 544
536 lhs.resize (new_nr, new_nc, 0.0); 545 lhs.resize (new_nr, new_nc, 0.0);