Mercurial > octave
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); |