23 #define arma_applier_1(operatorA) \ 27 for(i=0, j=1; j<n_elem; i+=2, j+=2)\ 32 tmp_i = eop_core<eop_type>::process(tmp_i, k);\ 33 tmp_j = eop_core<eop_type>::process(tmp_j, k);\ 35 out_mem[i] operatorA tmp_i;\ 36 out_mem[j] operatorA tmp_j;\ 41 out_mem[i] operatorA eop_core<eop_type>::process(P[i], k);\ 46 #define arma_applier_2(operatorA) \ 50 for(uword col=0; col<n_cols; ++col)\ 54 for(i=0, j=1; j<n_rows; i+=2, j+=2, count+=2)\ 56 eT tmp_i = P.at(i,col);\ 57 eT tmp_j = P.at(j,col);\ 59 tmp_i = eop_core<eop_type>::process(tmp_i, k);\ 60 tmp_j = eop_core<eop_type>::process(tmp_j, k);\ 62 out_mem[count ] operatorA tmp_i;\ 63 out_mem[count+1] operatorA tmp_j;\ 68 out_mem[count] operatorA eop_core<eop_type>::process(P.at(i,col), k);\ 76 #define arma_applier_3(operatorA) \ 80 for(uword slice=0; slice<n_slices; ++slice)\ 82 for(uword col=0; col<n_cols; ++col)\ 86 for(i=0, j=1; j<n_rows; i+=2, j+=2, count+=2)\ 88 eT tmp_i = P.at(i,col,slice);\ 89 eT tmp_j = P.at(j,col,slice);\ 91 tmp_i = eop_core<eop_type>::process(tmp_i, k);\ 92 tmp_j = eop_core<eop_type>::process(tmp_j, k);\ 94 out_mem[count ] operatorA tmp_i;\ 95 out_mem[count+1] operatorA tmp_j;\ 100 out_mem[count] operatorA eop_core<eop_type>::process(P.at(i,col,slice), k);\ 114 template<
typename eop_type>
115 template<
typename T1>
123 typedef typename T1::elem_type eT;
133 eT* out_mem = out.
memptr();
151 template<
typename eop_type>
152 template<
typename T1>
160 typedef typename T1::elem_type eT;
167 eT* out_mem = out.
memptr();
188 template<
typename eop_type>
189 template<
typename T1>
197 typedef typename T1::elem_type eT;
204 eT* out_mem = out.
memptr();
225 template<
typename eop_type>
226 template<
typename T1>
234 typedef typename T1::elem_type eT;
241 eT* out_mem = out.
memptr();
262 template<
typename eop_type>
263 template<
typename T1>
271 typedef typename T1::elem_type eT;
278 eT* out_mem = out.
memptr();
304 template<
typename eop_type>
305 template<
typename T1>
313 typedef typename T1::elem_type eT;
324 eT* out_mem = out.
memptr();
342 template<
typename eop_type>
343 template<
typename T1>
351 typedef typename T1::elem_type eT;
359 eT* out_mem = out.
memptr();
380 template<
typename eop_type>
381 template<
typename T1>
389 typedef typename T1::elem_type eT;
397 eT* out_mem = out.
memptr();
418 template<
typename eop_type>
419 template<
typename T1>
427 typedef typename T1::elem_type eT;
435 eT* out_mem = out.
memptr();
456 template<
typename eop_type>
457 template<
typename T1>
465 typedef typename T1::elem_type eT;
473 eT* out_mem = out.
memptr();
499 template<
typename eop_type>
500 template<
typename eT>
510 arma_stop(
"eop_core::process(): unhandled eop_type");
623 #undef arma_applier_1 624 #undef arma_applier_2 625 #undef arma_applier_3 arma_inline arma_warn_unused eT * memptr()
returns a pointer to array of eTs used by the matrix
arma_inline uword get_n_cols() const
arma_inline uword get_n_cols() const
static arma_inline arma_integral_only< eT >::result atanh(const eT x)
static arma_float_only< eT >::result trunc_exp(const eT x)
#define arma_applier_3(operatorA)
static arma_inline arma_integral_only< eT >::result acos(const eT x)
static arma_hot void apply_inplace_minus(Mat< typename T1::elem_type > &out, const eOp< T1, eop_type > &x)
static arma_hot void apply_inplace_schur(Mat< typename T1::elem_type > &out, const eOp< T1, eop_type > &x)
arma_inline uword get_n_rows() const
arma_aligned const Proxy< T1 > P
static arma_inline arma_integral_only< eT >::result tan(const eT x)
static arma_inline arma_integral_only< eT >::result log(const eT x)
static arma_hot void apply_inplace_div(Mat< typename T1::elem_type > &out, const eOp< T1, eop_type > &x)
const uword n_cols
number of columns in the matrix (read-only)
#define arma_debug_assert_same_size
static arma_inline arma_integral_only< eT >::result cosh(const eT x)
const uword n_elem
number of elements in the matrix (read-only)
const uword n_rows
number of rows in the matrix (read-only)
static arma_inline arma_integral_only< eT >::result asin(const eT x)
arma_inline uword get_n_slices() const
static arma_inline arma_integral_only< eT >::result floor(const eT x)
arma_hot arma_pure static arma_inline eT process(const eT val, const eT k)
#define arma_applier_1(operatorA)
#define arma_applier_2(operatorA)
static arma_inline arma_not_cx< eT >::result conj(const eT x)
static arma_inline arma_integral_only< eT >::result exp10(const eT x)
arma_aligned elem_type aux
storage of auxiliary data, user defined format
arma_inline arma_warn_unused eT * memptr()
returns a pointer to array of eTs used by the cube
const uword n_cols
number of columns in each slice (read-only)
static arma_inline arma_unsigned_integral_only< eT >::result neg(const eT x)
static arma_inline arma_integral_only< eT >::result exp2(const eT x)
static arma_inline arma_integral_only< eT >::result sin(const eT x)
static arma_inline arma_integral_only< eT >::result log2(const eT x)
#define arma_ignore(variable)
static arma_inline arma_integral_only< eT >::result exp(const eT x)
static arma_inline arma_integral_only< eT >::result atan(const eT x)
static arma_inline arma_integral_only< eT >::result acosh(const eT x)
void arma_cold arma_stop(const T1 &x)
print a message to get_stream_err1() and/or throw a logic_error exception
static arma_inline arma_integral_only< eT >::result ceil(const eT x)
static arma_inline arma_integral_only< eT >::result tanh(const eT x)
static arma_inline arma_unsigned_integral_only< eT >::result arma_abs(const eT x)
work around a bug in GCC 4.4
static arma_inline arma_integral_only< eT >::result log10(const eT x)
arma_aligned const ProxyCube< T1 > P
#define arma_extra_debug_sigprint
arma_inline uword get_n_rows() const
arma_aligned elem_type aux
storage of auxiliary data, user defined format
const uword n_elem
number of elements in the cube (read-only)
static arma_inline arma_integral_only< eT >::result sqrt(const eT x)
static arma_inline arma_integral_only< eT >::result sinh(const eT x)
static arma_hot void apply(Mat< typename T1::elem_type > &out, const eOp< T1, eop_type > &x)
static arma_inline arma_integral_only< eT >::result direct_eps(const eT)
static arma_inline arma_integral_only< eT >::result asinh(const eT x)
static arma_inline arma_integral_only< eT >::result cos(const eT x)
static arma_float_only< eT >::result trunc_log(const eT x)
static arma_hot void apply_inplace_plus(Mat< typename T1::elem_type > &out, const eOp< T1, eop_type > &x)
static arma_inline arma_float_or_cx_only< T1 >::result pow(const T1 base, const T2 exponent)
const uword n_slices
number of slices in the cube (read-only)
const uword n_rows
number of rows in each slice (read-only)