Functions | |
template<typename T1 > | |
arma_hot T1::elem_type | accu_unwrap (const Base< typename T1::elem_type, T1 > &X) |
template<typename T1 > | |
arma_hot T1::elem_type | accu_proxy (const Base< typename T1::elem_type, T1 > &X) |
template<typename T1 > | |
arma_inline arma_warn_unused T1::elem_type | accu (const Base< typename T1::elem_type, T1 > &X) |
accumulate the elements of a matrix | |
template<typename T1 > | |
arma_inline arma_warn_unused u32 | accu (const mtOp< u32, T1, op_rel_noteq > &X) |
explicit handling of Hamming norm (also known as zero norm) | |
template<typename T1 > | |
arma_hot arma_warn_unused T1::elem_type | accu (const BaseCube< typename T1::elem_type, T1 > &X) |
accumulate the elements of a cube | |
template<typename eT > | |
arma_pure arma_warn_unused eT | accu (const diagview< eT > &X) |
accumulate the elements of a diagview | |
template<typename eT > | |
arma_pure arma_warn_unused eT | accu (const subview< eT > &S) |
accumulate the elements of a subview (submatrix) | |
template<typename eT > | |
arma_pure arma_warn_unused eT | accu (const subview_row< eT > &S) |
accumulate the elements of a subview_row | |
template<typename eT > | |
arma_pure arma_warn_unused eT | accu (const subview_col< eT > &S) |
accumulate the elements of a subview_col |
arma_hot T1::elem_type accu_unwrap | ( | const Base< typename T1::elem_type, T1 > & | X | ) | [inline] |
Definition at line 26 of file fn_accu.hpp.
References Base< elem_type, derived >::get_ref().
Referenced by accu().
00027 { 00028 arma_extra_debug_sigprint(); 00029 00030 typedef typename T1::elem_type eT; 00031 00032 const unwrap<T1> tmp(X.get_ref()); 00033 const Mat<eT>& A = tmp.M; 00034 00035 const eT* A_mem = A.memptr(); 00036 const u32 N = A.n_elem; 00037 00038 eT val1 = eT(0); 00039 eT val2 = eT(0); 00040 00041 u32 i,j; 00042 00043 for(i=0, j=1; j<N; i+=2, j+=2) 00044 { 00045 val1 += A_mem[i]; 00046 val2 += A_mem[j]; 00047 } 00048 00049 if(i < N) 00050 { 00051 val1 += A_mem[i]; 00052 } 00053 00054 return val1 + val2; 00055 }
arma_hot T1::elem_type accu_proxy | ( | const Base< typename T1::elem_type, T1 > & | X | ) | [inline] |
Definition at line 63 of file fn_accu.hpp.
References Base< elem_type, derived >::get_ref().
Referenced by accu().
arma_inline arma_warn_unused T1::elem_type accu | ( | const Base< typename T1::elem_type, T1 > & | X | ) | [inline] |
accumulate the elements of a matrix
Definition at line 90 of file fn_accu.hpp.
References accu_proxy(), and accu_unwrap().
Referenced by sum().
00091 { 00092 arma_extra_debug_sigprint(); 00093 00094 return (is_Mat<T1>::value == true) ? accu_unwrap(X) : accu_proxy(X); 00095 }
arma_inline arma_warn_unused u32 accu | ( | const mtOp< u32, T1, op_rel_noteq > & | X | ) | [inline] |
explicit handling of Hamming norm (also known as zero norm)
Definition at line 104 of file fn_accu.hpp.
References mtOp< out_eT, T1, op_type >::aux, and mtOp< out_eT, T1, op_type >::m.
00105 { 00106 arma_extra_debug_sigprint(); 00107 00108 typedef typename T1::elem_type eT; 00109 00110 const Proxy<T1> A(X.m); 00111 00112 const u32 n_elem = A.n_elem; 00113 const eT val = X.aux; 00114 00115 u32 n_nonzero = 0; 00116 for(u32 i=0; i<n_elem; ++i) 00117 { 00118 if(A[i] != val) 00119 { 00120 ++n_nonzero; 00121 } 00122 } 00123 00124 return n_nonzero; 00125 }
arma_hot arma_warn_unused T1::elem_type accu | ( | const BaseCube< typename T1::elem_type, T1 > & | X | ) | [inline] |
accumulate the elements of a cube
Definition at line 135 of file fn_accu.hpp.
References BaseCube< elem_type, derived >::get_ref().
00136 { 00137 arma_extra_debug_sigprint(); 00138 00139 typedef typename T1::elem_type eT; 00140 00141 const ProxyCube<T1> A(X.get_ref()); 00142 00143 const u32 n_elem = A.n_elem; 00144 00145 eT val = eT(0); 00146 00147 for(u32 i=0; i<n_elem; ++i) 00148 { 00149 val += A[i]; 00150 } 00151 00152 return val; 00153 }
arma_pure arma_warn_unused eT accu | ( | const diagview< eT > & | X | ) | [inline] |
accumulate the elements of a diagview
Definition at line 163 of file fn_accu.hpp.
References diagview< eT >::n_elem.
arma_pure arma_warn_unused eT accu | ( | const subview< eT > & | S | ) | [inline] |
accumulate the elements of a subview (submatrix)
Definition at line 186 of file fn_accu.hpp.
References subview< eT >::colptr(), subview< eT >::n_cols, and subview< eT >::n_rows.
00187 { 00188 arma_extra_debug_sigprint(); 00189 00190 eT val = eT(0); 00191 00192 for(u32 col=0; col<S.n_cols; ++col) 00193 { 00194 const eT* coldata = S.colptr(col); 00195 00196 for(u32 row=0; row<S.n_rows; ++row) 00197 { 00198 val += coldata[row]; 00199 } 00200 00201 } 00202 00203 return val; 00204 }
arma_pure arma_warn_unused eT accu | ( | const subview_row< eT > & | S | ) | [inline] |
accumulate the elements of a subview_row
Definition at line 214 of file fn_accu.hpp.
References Mat< eT >::at(), subview< eT >::aux_col1, subview< eT >::aux_col2, subview< eT >::aux_row1, and subview< eT >::m.
00215 { 00216 arma_extra_debug_sigprint(); 00217 00218 const Mat<eT>& X = S.m; 00219 00220 const u32 row = S.aux_row1; 00221 const u32 start_col = S.aux_col1; 00222 const u32 end_col = S.aux_col2; 00223 00224 eT val = eT(0); 00225 00226 for(u32 col=start_col; col<=end_col; ++col) 00227 { 00228 val += X.at(row,col); 00229 } 00230 00231 return val; 00232 }
arma_pure arma_warn_unused eT accu | ( | const subview_col< eT > & | S | ) | [inline] |
accumulate the elements of a subview_col
Definition at line 242 of file fn_accu.hpp.
References subview< eT >::colptr(), and subview< eT >::n_rows.