inline void subview_cube<eT>::operator-= (const eT val) { arma_extra_debug_sigprint(); const uword local_n_rows = n_rows; const uword local_n_cols = n_cols; const uword local_n_slices = n_slices; for(uword slice = 0; slice < local_n_slices; ++slice) { for(uword col = 0; col < local_n_cols; ++col) { arrayops::inplace_minus( slice_colptr(slice,col), val, local_n_rows ); } } }
inline void subview_cube<eT>::randn() { arma_extra_debug_sigprint(); const uword local_n_rows = n_rows; const uword local_n_cols = n_cols; const uword local_n_slices = n_slices; for(uword slice = 0; slice < local_n_slices; ++slice) { for(uword col = 0; col < local_n_cols; ++col) { arma_rng::randn<eT>::fill( slice_colptr(slice,col), local_n_rows ); } } }
inline void subview_cube<eT>::fill(const eT val) { arma_extra_debug_sigprint(); const u32 local_n_rows = n_rows; const u32 local_n_cols = n_cols; const u32 local_n_slices = n_slices; for(u32 slice = 0; slice < local_n_slices; ++slice) { for(u32 col = 0; col < local_n_cols; ++col) { arrayops::inplace_set( slice_colptr(slice,col), val, local_n_rows ); } } }
inline void subview_cube<eT>::fill(const eT val) { arma_extra_debug_sigprint(); for(u32 slice = 0; slice < n_slices; ++slice) { for(u32 col = 0; col < n_cols; ++col) { eT* coldata = slice_colptr(slice,col); for(u32 row = 0; row < n_rows; ++row) { coldata[row] = val; } } } }
inline arma_warn_unused bool subview_cube<eT>::is_finite() const { arma_extra_debug_sigprint(); const uword local_n_rows = n_rows; const uword local_n_cols = n_cols; const uword local_n_slices = n_slices; for(uword slice = 0; slice < local_n_slices; ++slice) { for(uword col = 0; col < local_n_cols; ++col) { if(arrayops::is_finite(slice_colptr(slice,col), local_n_rows) == false) { return false; } } } return true; }
inline arma_warn_unused eT subview_cube<eT>::max() const { arma_extra_debug_sigprint(); arma_debug_check( (n_elem == 0), "subview_cube::max(): object has no elements" ); const uword local_n_rows = n_rows; const uword local_n_cols = n_cols; const uword local_n_slices = n_slices; eT max_val = at(0,0,0); for(uword si=0; si < local_n_slices; ++si) for(uword ci=0; ci < local_n_cols; ++ci) { max_val = (std::max)( max_val, op_max::direct_max(slice_colptr(si,ci), local_n_rows) ); } return max_val; }