explicitly handle another corner case
This commit is contained in:
@@ -101,11 +101,12 @@ op_reshape::apply_mat_inplace(Mat<eT>& A, const uword new_n_rows, const uword ne
|
||||
|
||||
if(A.is_empty()) { A.zeros(new_n_rows, new_n_cols); return; }
|
||||
|
||||
const bool is_into_empty = ( (new_n_cols == uword(0)) || (new_n_rows == uword(0)) );
|
||||
const bool is_into_colvec = ( (new_n_cols == uword(1)) && (new_n_rows == A.n_elem) );
|
||||
const bool is_into_rowvec = ( (new_n_rows == uword(1)) && (new_n_cols == A.n_elem) );
|
||||
const bool is_rowcol_swap = ( (new_n_cols == A.n_rows) && (new_n_rows == A.n_cols) );
|
||||
|
||||
if(is_into_colvec || is_into_rowvec || is_rowcol_swap) { A.set_size(new_n_rows, new_n_cols); return; }
|
||||
if(is_into_empty || is_into_colvec || is_into_rowvec || is_rowcol_swap) { A.set_size(new_n_rows, new_n_cols); return; }
|
||||
|
||||
Mat<eT> B(new_n_rows, new_n_cols, arma_nozeros_indicator());
|
||||
|
||||
@@ -231,11 +232,12 @@ op_reshape::apply_cube_inplace(Cube<eT>& A, const uword new_n_rows, const uword
|
||||
|
||||
if(A.is_empty()) { A.zeros(new_n_rows, new_n_cols, new_n_slices); return; }
|
||||
|
||||
const bool is_into_empty = ( (new_n_cols == uword(0)) || (new_n_rows == uword(0)) || (new_n_slices == uword(0) ) );
|
||||
const bool is_into_colvec = ( (new_n_cols == uword(1)) && (new_n_rows == A.n_elem) && (new_n_slices == uword(1) ) );
|
||||
const bool is_into_rowvec = ( (new_n_rows == uword(1)) && (new_n_cols == A.n_elem) && (new_n_slices == uword(1) ) );
|
||||
const bool is_rowcol_swap = ( (new_n_cols == A.n_rows) && (new_n_rows == A.n_cols) && (new_n_slices == A.n_slices) );
|
||||
|
||||
if(is_into_colvec || is_into_rowvec || is_rowcol_swap) { A.set_size(new_n_rows, new_n_cols, new_n_slices); return; }
|
||||
if(is_into_empty || is_into_colvec || is_into_rowvec || is_rowcol_swap) { A.set_size(new_n_rows, new_n_cols, new_n_slices); return; }
|
||||
|
||||
Cube<eT> B(new_n_rows, new_n_cols, new_n_slices, arma_nozeros_indicator());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user