00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00016
00017
00025
00026 template<typename T1>
00027 arma_inline
00028 const Op<T1, op_sum>
00029 sum(const Base<typename T1::elem_type,T1>& X, const uword dim = 0)
00030 {
00031 arma_extra_debug_sigprint();
00032
00033 return Op<T1, op_sum>(X.get_ref(), dim, 0);
00034 }
00035
00036
00039 template<typename eT>
00040 inline
00041 arma_warn_unused
00042 eT
00043 sum(const Row<eT>& X)
00044 {
00045 arma_extra_debug_sigprint();
00046
00047 return accu(X);
00048 }
00049
00050
00051
00054 template<typename eT>
00055 inline
00056 arma_warn_unused
00057 eT
00058 sum(const Col<eT>& X)
00059 {
00060 arma_extra_debug_sigprint();
00061
00062 return accu(X);
00063 }
00064
00065
00066
00070
00071 template<typename T1>
00072 inline
00073 arma_warn_unused
00074 typename T1::elem_type
00075 sum(const Op<T1, op_sum>& in)
00076 {
00077 arma_extra_debug_sigprint();
00078 arma_extra_debug_print("sum(): two consecutive sum() calls detected");
00079
00080 return accu(in.m);
00081 }
00082
00083
00084
00085 template<typename T1>
00086 arma_inline
00087 const Op<Op<T1, op_sum>, op_sum>
00088 sum(const Op<T1, op_sum>& in, const uword dim)
00089 {
00090 arma_extra_debug_sigprint();
00091
00092 return Op<Op<T1, op_sum>, op_sum>(in, dim, 0);
00093 }
00094
00095
00096
00098 template<typename eT>
00099 inline
00100 arma_warn_unused
00101 eT
00102 sum(const subview_row<eT>& X)
00103 {
00104 arma_extra_debug_sigprint();
00105
00106 return accu(X);
00107 }
00108
00109
00110
00112 template<typename eT>
00113 inline
00114 arma_warn_unused
00115 eT
00116 sum(const subview_col<eT>& X)
00117 {
00118 arma_extra_debug_sigprint();
00119
00120 return accu(X);
00121 }
00122
00123
00124
00126 template<typename eT>
00127 inline
00128 arma_warn_unused
00129 eT
00130 sum(const diagview<eT>& X)
00131 {
00132 arma_extra_debug_sigprint();
00133
00134 return accu(X);
00135 }
00136
00137
00138
00139 template<typename eT, typename T1>
00140 inline
00141 arma_warn_unused
00142 eT
00143 sum(const subview_elem1<eT,T1>& A)
00144 {
00145 arma_extra_debug_sigprint();
00146
00147 return accu(A);
00148 }
00149
00150
00151