Functions | |
template<typename T1 > | |
arma_warn_unused T1::elem_type | trace (const Base< typename T1::elem_type, T1 > &X) |
Immediate trace (sum of diagonal elements) of a square dense matrix. | |
template<typename T1 > | |
arma_warn_unused T1::elem_type | trace (const Op< T1, op_diagmat > &X) |
arma_warn_unused T1::elem_type trace | ( | const Base< typename T1::elem_type, T1 > & | X | ) | [inline] |
Immediate trace (sum of diagonal elements) of a square dense matrix.
Definition at line 26 of file fn_trace.hpp.
References Base< elem_type, derived >::get_ref().
00027 { 00028 arma_extra_debug_sigprint(); 00029 00030 typedef typename T1::elem_type eT; 00031 00032 const Proxy<T1> A(X.get_ref()); 00033 00034 arma_debug_check( (A.n_rows != A.n_cols), "trace(): matrix must be square" ); 00035 00036 eT val = eT(0); 00037 00038 for(u32 i=0; i<A.n_rows; ++i) 00039 { 00040 val += A.at(i,i); 00041 } 00042 00043 return val; 00044 }
arma_warn_unused T1::elem_type trace | ( | const Op< T1, op_diagmat > & | X | ) | [inline] |
Definition at line 52 of file fn_trace.hpp.
References Op< T1, op_type >::m, and diagmat_proxy< T1 >::n_elem.
00053 { 00054 arma_extra_debug_sigprint(); 00055 00056 typedef typename T1::elem_type eT; 00057 00058 const diagmat_proxy<T1> A(X.m); 00059 00060 const u32 N = A.n_elem; 00061 00062 eT val = eT(0); 00063 00064 for(u32 i=0; i<N; ++i) 00065 { 00066 val += A[i]; 00067 } 00068 00069 return val; 00070 }