22 #undef arma_applier_mat 23 #undef arma_applier_cube 26 #define arma_applier_mat(operator_rel, operator_str) \ 28 const Proxy<T1> P1(X.A);\ 29 const Proxy<T2> P2(X.B);\ 31 arma_debug_assert_same_size(P1, P2, operator_str);\ 33 const uword n_rows = P1.get_n_rows();\ 34 const uword n_cols = P1.get_n_cols();\ 36 out.set_size(n_rows, n_cols);\ 38 uword* out_mem = out.memptr();\ 40 const bool prefer_at_accessor = (Proxy<T1>::prefer_at_accessor || Proxy<T2>::prefer_at_accessor);\ 42 if(prefer_at_accessor == false)\ 44 typename Proxy<T1>::ea_type A = P1.get_ea();\ 45 typename Proxy<T2>::ea_type B = P2.get_ea();\ 47 const uword n_elem = out.n_elem;\ 49 for(uword i=0; i<n_elem; ++i)\ 51 out_mem[i] = (A[i] operator_rel B[i]) ? uword(1) : uword(0);\ 58 for(uword col=0; col<n_cols; ++col)\ 60 for(uword row=0; row<n_rows; ++row, ++count)\ 62 out_mem[count] = (P1.at(row,col) operator_rel P2.at(row,col)) ? uword(1) : uword(0);\ 71 #define arma_applier_cube(operator_rel, operator_str) \ 73 const ProxyCube<T1> P1(X.A);\ 74 const ProxyCube<T2> P2(X.B);\ 76 arma_debug_assert_same_size(P1, P2, operator_str);\ 78 const uword n_rows = P1.get_n_rows();\ 79 const uword n_cols = P1.get_n_cols();\ 80 const uword n_slices = P1.get_n_slices();\ 82 out.set_size(n_rows, n_cols, n_slices);\ 84 uword* out_mem = out.memptr();\ 86 const bool prefer_at_accessor = (ProxyCube<T1>::prefer_at_accessor || ProxyCube<T2>::prefer_at_accessor);\ 88 if(prefer_at_accessor == false)\ 90 typename ProxyCube<T1>::ea_type A = P1.get_ea();\ 91 typename ProxyCube<T2>::ea_type B = P2.get_ea();\ 93 const uword n_elem = out.n_elem;\ 95 for(uword i=0; i<n_elem; ++i)\ 97 out_mem[i] = (A[i] operator_rel B[i]) ? uword(1) : uword(0);\ 104 for(uword slice = 0; slice < n_slices; ++slice)\ 105 for(uword col = 0; col < n_cols; ++col)\ 106 for(uword row = 0; row < n_rows; ++row, ++count)\ 108 out_mem[count] = (P1.at(row,col,slice) operator_rel P2.at(row,col,slice)) ? uword(1) : uword(0);\ 115 template<
typename T1,
typename T2>
131 template<
typename T1,
typename T2>
147 template<
typename T1,
typename T2>
163 template<
typename T1,
typename T2>
179 template<
typename T1,
typename T2>
195 template<
typename T1,
typename T2>
217 template<
typename T1,
typename T2>
233 template<
typename T1,
typename T2>
249 template<
typename T1,
typename T2>
265 template<
typename T1,
typename T2>
281 template<
typename T1,
typename T2>
297 template<
typename T1,
typename T2>
313 #undef arma_applier_mat 314 #undef arma_applier_cube #define arma_applier_cube(operator_rel, operator_str)
static void apply(Mat< uword > &out, const mtGlue< uword, T1, T2, glue_rel_gt > &X)
static void apply(Mat< uword > &out, const mtGlue< uword, T1, T2, glue_rel_gteq > &X)
static void apply(Mat< uword > &out, const mtGlue< uword, T1, T2, glue_rel_lt > &X)
#define arma_extra_debug_sigprint
static void apply(Mat< uword > &out, const mtGlue< uword, T1, T2, glue_rel_eq > &X)
static void apply(Mat< uword > &out, const mtGlue< uword, T1, T2, glue_rel_noteq > &X)
static void apply(Mat< uword > &out, const mtGlue< uword, T1, T2, glue_rel_lteq > &X)
#define arma_applier_mat(operator_rel, operator_str)