24 if(n_elem >
sizeof(mem_local)/
sizeof(eT) )
109 template<
typename eT>
119 template<
typename eT>
129 template<
typename eT>
140 template<
typename eT>
151 template<
typename eT>
163 template<
typename eT>
175 template<
typename eT>
187 template<
typename eT>
199 template<
typename eT>
212 template<
typename eT>
217 return const_cast<eT*
>(
mem);
222 template<
typename eT>
232 template<
typename eT>
248 for(i=0, j=1; j < cols; i+=2, j+=2)
250 const eT tmp_i = A.
at(row, i);
251 const eT tmp_j = A.
at(row, j);
259 out[i] = A.
at(row, i);
265 out[7] = A.
at(row, 7);
268 out[6] = A.
at(row, 6);
271 out[5] = A.
at(row, 5);
274 out[4] = A.
at(row, 4);
277 out[3] = A.
at(row, 3);
280 out[2] = A.
at(row, 2);
283 out[1] = A.
at(row, 1);
286 out[0] = A.
at(row, 0);
292 template<
typename eT>
309 if(new_n_elem <=
sizeof(
mem_local)/
sizeof(eT) )
arma_aligned const uword n_elem
number of elements held
arma_hot void copy_row(const Mat< eT > &A, const uword row)
A lightweight array for POD types. If the amount of memory requested is small, the stack is used...
arma_inline eT & operator()(const uword i)
arma_hot static arma_inline void copy(eT *dest, const eT *src, const uword n_elem)
void init(const uword new_n_elem)
const uword n_cols
number of columns in the matrix (read-only)
const podarray & operator=(const podarray &x)
static arma_inline T1 & rw(const T1 &x)
internal function to allow modification of data declared as read-only
static arma_hot void inplace_set(eT *dest, const eT val, const uword n_elem)
arma_inline arma_warn_unused eT & at(const uword i)
linear element accessor (treats the matrix as a vector); no bounds check.
#define arma_extra_debug_sigprint_this
arma_aligned eT mem_local[podarray_prealloc_n_elem::val]
Internal memory, to avoid calling the 'new' operator for small amounts of memory. ...
arma_inline eT & operator[](const uword i)
#define arma_extra_debug_sigprint
arma_inline eT * memptr()
void set_size(const uword new_n_elem)
arma_aligned const eT *const mem
pointer to memory used by the object