fix: allow Cube::insert_slices() to handle Cube::slice() and Mat as inputs

This commit is contained in:
conrad
2022-07-07 12:06:04 +10:00
parent a6546ae72b
commit fce92e8dbb
2 changed files with 18 additions and 0 deletions
+1
View File
@@ -208,6 +208,7 @@ class Cube : public BaseCube< eT, Cube<eT> >
template<typename T1> inline void insert_rows(const uword row_num, const BaseCube<eT,T1>& X);
template<typename T1> inline void insert_cols(const uword col_num, const BaseCube<eT,T1>& X);
template<typename T1> inline void insert_slices(const uword slice_num, const BaseCube<eT,T1>& X);
template<typename T1> inline void insert_slices(const uword slice_num, const Base<eT,T1>& X);
template<typename gen_type> inline Cube(const GenCube<eT, gen_type>& X);
+17
View File
@@ -2534,6 +2534,23 @@ Cube<eT>::insert_slices(const uword slice_num, const BaseCube<eT,T1>& X)
template<typename eT>
template<typename T1>
inline
void
Cube<eT>::insert_slices(const uword slice_num, const Base<eT,T1>& X)
{
arma_extra_debug_sigprint();
const quasi_unwrap<T1> U(X.get_ref());
const Cube<eT> C(const_cast<eT*>(U.M.memptr()), U.M.n_rows, U.M.n_cols, uword(1), false, true);
(*this).insert_slices(slice_num, C);
}
//! create a cube from GenCube, ie. run the previously delayed element generation operations
template<typename eT>
template<typename gen_type>