inline uword size(const subview_field<oT>& X, const uword dim) { arma_extra_debug_sigprint(); return SizeCube( X.n_rows, X.n_cols, X.n_slices )( dim ); }
inline const SizeCube size(const uword n_rows, const uword n_cols, const uword n_slices) { arma_extra_debug_sigprint(); return SizeCube(n_rows, n_cols, n_slices); }
inline const SizeCube size(const subview_field<oT>& X) { arma_extra_debug_sigprint(); return SizeCube( X.n_rows, X.n_cols, X.n_slices ); }
arma_warn_unused inline const SizeCube size(const field<oT>& X) { arma_extra_debug_sigprint(); return SizeCube( X.n_rows, X.n_cols, X.n_slices ); }
inline typename enable_if2< is_arma_cube_type<T1>::value, uword >::result size(const T1& X, const uword dim) { arma_extra_debug_sigprint(); const ProxyCube<T1> P(X); return SizeCube( P.get_n_rows(), P.get_n_cols(), P.get_n_slices() )( dim ); }
arma_warn_unused inline uword size(const BaseCube<typename T1::elem_type, T1>& X, const uword dim) { arma_extra_debug_sigprint(); const ProxyCube<T1> P(X.get_ref()); return SizeCube( P.get_n_rows(), P.get_n_cols(), P.get_n_slices() )( dim ); }
arma_warn_unused inline typename enable_if2< is_arma_cube_type<T1>::value, const SizeCube >::result size(const T1& X) { arma_extra_debug_sigprint(); const ProxyCube<T1> P(X); return SizeCube( P.get_n_rows(), P.get_n_cols(), P.get_n_slices() ); }
inline SizeCube SizeCube::operator-(const SizeCube& s) const { const uword out_n_rows = (n_rows > s.n_rows ) ? (n_rows - s.n_rows ) : uword(0); const uword out_n_cols = (n_cols > s.n_cols ) ? (n_cols - s.n_cols ) : uword(0); const uword out_n_slices = (n_slices > s.n_slices) ? (n_slices - s.n_slices) : uword(0); const uword k = ( (out_n_rows == uword(0)) || (out_n_cols == uword(0)) || (out_n_slices == uword(0)) ) ? uword(0) : uword(1); return SizeCube( (k*out_n_rows), (k*out_n_cols), (k*out_n_slices) ); }
inline SizeCube SizeCube::operator+(const SizeCube& s) const { return SizeCube( (n_rows + s.n_rows), (n_cols + s.n_cols), (n_slices + s.n_slices) ); }
inline SizeCube SizeCube::operator/(const uword val) const { return SizeCube( (n_rows / val), (n_cols / val), (n_slices / val) ); }