| Col_bones.hpp | | Col_bones.hpp | |
| | | | |
| skipping to change at line 106 | | skipping to change at line 106 | |
| | | | |
| typedef eT* row_iterator; | | typedef eT* row_iterator; | |
| typedef const eT* const_row_iterator; | | typedef const eT* const_row_iterator; | |
| | | | |
| inline row_iterator begin_row(const uword row_num); | | inline row_iterator begin_row(const uword row_num); | |
| inline const_row_iterator begin_row(const uword row_num) const; | | inline const_row_iterator begin_row(const uword row_num) const; | |
| | | | |
| inline row_iterator end_row (const uword row_num); | | inline row_iterator end_row (const uword row_num); | |
| inline const_row_iterator end_row (const uword row_num) const; | | inline const_row_iterator end_row (const uword row_num) const; | |
| | | | |
|
| template<uword fixed_n_elem> | | template<uword fixed_n_elem> class fixed; | |
| class fixed : public Col<eT> | | | |
| { | | | |
| private: | | | |
| | | | |
|
| static const bool use_extra = (fixed_n_elem > arma_config::mat_prealloc | | protected: | |
| ); | | | |
| | | | |
| arma_aligned eT mem_local_extra[ (use_extra) ? fixed_n_elem : 1 ]; | | | |
| | | | |
| arma_inline void change_to_row(); | | | |
| | | | |
| public: | | | |
| | | | |
|
| typedef fixed<fixed_n_elem> Col_fixed_type; | | inline Col(const arma_fixed_indicator&, const uword in_n_elem, const eT*
in_mem); | |
| | | | |
|
| typedef eT elem_type; | | public: | |
| typedef typename get_pod_type<eT>::result pod_type; | | | |
| | | | |
|
| static const bool is_col = true; | | #ifdef ARMA_EXTRA_COL_PROTO | |
| static const bool is_row = false; | | #include ARMA_INCFILE_WRAP(ARMA_EXTRA_COL_PROTO) | |
| | | #endif | |
| | | }; | |
| | | | |
|
| static const uword n_rows = fixed_n_elem; | | template<typename eT> | |
| static const uword n_cols = 1; | | template<uword fixed_n_elem> | |
| static const uword n_elem = fixed_n_elem; | | class Col<eT>::fixed : public Col<eT> | |
| | | { | |
| | | private: | |
| | | | |
|
| arma_inline fixed(); | | static const bool use_extra = (fixed_n_elem > arma_config::mat_prealloc); | |
| arma_inline fixed(const fixed<fixed_n_elem>& X); | | | |
| inline fixed(const subview_cube<eT>& X); | | | |
| | | | |
|
| template<typename T1> inline fixed(const Base<eT,T1>& A); | | arma_aligned eT mem_local_extra[ (use_extra) ? fixed_n_elem : 1 ]; | |
| template<typename T1, typename T2> inline fixed(const Base<pod_type,T1> | | | |
| & A, const Base<pod_type,T2>& B); | | | |
| | | | |
|
| inline fixed(const eT* aux_mem); | | arma_inline void change_to_row(); | |
| | | | |
|
| inline fixed(const char* text); | | public: | |
| inline fixed(const std::string& text); | | | |
| | | | |
|
| template<typename T1> inline const Col& operator=(const Base<eT,T1>& A)
; | | typedef fixed<fixed_n_elem> Col_fixed_type; | |
| | | | |
|
| inline const Col& operator=(const eT val); | | typedef eT elem_type; | |
| inline const Col& operator=(const char* text); | | typedef typename get_pod_type<eT>::result pod_type; | |
| inline const Col& operator=(const std::string& text); | | | |
| inline const Col& operator=(const subview_cube<eT>& X); | | | |
| | | | |
|
| using Col<eT>::operator(); | | static const bool is_col = true; | |
| | | static const bool is_row = false; | |
| | | | |
|
| #if defined(ARMA_USE_CXX11) | | static const uword n_rows = fixed_n_elem; | |
| inline fixed(const std::initializer_list<eT>& list); | | static const uword n_cols = 1; | |
| inline const Col& operator=(const std::initializer_list<eT>& list); | | static const uword n_elem = fixed_n_elem; | |
| #endif | | | |
| | | | |
|
| arma_inline arma_warn_unused eT& operator[] (const uword i); | | arma_inline fixed(); | |
| arma_inline arma_warn_unused eT operator[] (const uword i) const; | | arma_inline fixed(const fixed<fixed_n_elem>& X); | |
| arma_inline arma_warn_unused eT& at (const uword i); | | inline fixed(const subview_cube<eT>& X); | |
| arma_inline arma_warn_unused eT at (const uword i) const; | | | |
| arma_inline arma_warn_unused eT& operator() (const uword i); | | | |
| arma_inline arma_warn_unused eT operator() (const uword i) const; | | | |
| | | | |
|
| arma_inline arma_warn_unused eT& at (const uword in_row, const | | template<typename T1> inline fixed(const Base<eT,T1>& A); | |
| uword in_col); | | template<typename T1, typename T2> inline fixed(const Base<pod_type,T1>& | |
| arma_inline arma_warn_unused eT at (const uword in_row, const | | A, const Base<pod_type,T2>& B); | |
| uword in_col) const; | | | |
| arma_inline arma_warn_unused eT& operator() (const uword in_row, const | | | |
| uword in_col); | | | |
| arma_inline arma_warn_unused eT operator() (const uword in_row, const | | | |
| uword in_col) const; | | | |
| | | | |
|
| arma_inline arma_warn_unused eT* memptr(); | | inline fixed(const eT* aux_mem); | |
| arma_inline arma_warn_unused const eT* memptr() const; | | | |
| | | | |
|
| arma_hot inline const Col<eT>& fill(const eT val); | | inline fixed(const char* text); | |
| arma_hot inline const Col<eT>& zeros(); | | inline fixed(const std::string& text); | |
| arma_hot inline const Col<eT>& ones(); | | | |
| }; | | | |
| | | | |
|
| protected: | | template<typename T1> inline const Col& operator=(const Base<eT,T1>& A); | |
| | | | |
|
| inline Col(const arma_fixed_indicator&, const uword in_n_elem, const eT* | | inline const Col& operator=(const eT val); | |
| in_mem); | | inline const Col& operator=(const char* text); | |
| | | inline const Col& operator=(const std::string& text); | |
| | | inline const Col& operator=(const subview_cube<eT>& X); | |
| | | | |
|
| public: | | using Col<eT>::operator(); | |
| | | | |
|
| #ifdef ARMA_EXTRA_COL_PROTO | | #if defined(ARMA_USE_CXX11) | |
| #include ARMA_INCFILE_WRAP(ARMA_EXTRA_COL_PROTO) | | inline fixed(const std::initializer_list<eT>& list); | |
| | | inline const Col& operator=(const std::initializer_list<eT>& list); | |
| #endif | | #endif | |
|
| | | | |
| | | arma_inline arma_warn_unused eT& operator[] (const uword i); | |
| | | arma_inline arma_warn_unused eT operator[] (const uword i) const; | |
| | | arma_inline arma_warn_unused eT& at (const uword i); | |
| | | arma_inline arma_warn_unused eT at (const uword i) const; | |
| | | arma_inline arma_warn_unused eT& operator() (const uword i); | |
| | | arma_inline arma_warn_unused eT operator() (const uword i) const; | |
| | | | |
| | | arma_inline arma_warn_unused eT& at (const uword in_row, const uw | |
| | | ord in_col); | |
| | | arma_inline arma_warn_unused eT at (const uword in_row, const uw | |
| | | ord in_col) const; | |
| | | arma_inline arma_warn_unused eT& operator() (const uword in_row, const uw | |
| | | ord in_col); | |
| | | arma_inline arma_warn_unused eT operator() (const uword in_row, const uw | |
| | | ord in_col) const; | |
| | | | |
| | | arma_inline arma_warn_unused eT* memptr(); | |
| | | arma_inline arma_warn_unused const eT* memptr() const; | |
| | | | |
| | | arma_hot inline const Col<eT>& fill(const eT val); | |
| | | arma_hot inline const Col<eT>& zeros(); | |
| | | arma_hot inline const Col<eT>& ones(); | |
| }; | | }; | |
| | | | |
| //! @} | | //! @} | |
| | | | |
End of changes. 23 change blocks. |
| 65 lines changed or deleted | | 66 lines changed or added | |
|
| Cube_bones.hpp | | Cube_bones.hpp | |
| | | | |
| skipping to change at line 268 | | skipping to change at line 268 | |
| | | | |
| inline iterator end(); | | inline iterator end(); | |
| inline const_iterator end() const; | | inline const_iterator end() const; | |
| | | | |
| inline slice_iterator begin_slice(const uword slice_num); | | inline slice_iterator begin_slice(const uword slice_num); | |
| inline const_slice_iterator begin_slice(const uword slice_num) const; | | inline const_slice_iterator begin_slice(const uword slice_num) const; | |
| | | | |
| inline slice_iterator end_slice(const uword slice_num); | | inline slice_iterator end_slice(const uword slice_num); | |
| inline const_slice_iterator end_slice(const uword slice_num) const; | | inline const_slice_iterator end_slice(const uword slice_num) const; | |
| | | | |
|
| template<uword fixed_n_rows, uword fixed_n_cols, uword fixed_n_slices> | | template<uword fixed_n_rows, uword fixed_n_cols, uword fixed_n_slices> cl | |
| class fixed : public Cube<eT> | | ass fixed; | |
| { | | | |
| private: | | | |
| | | | |
| static const uword fixed_n_elem = fixed_n_rows * fixed_n_cols * fixed_n | | | |
| _slices; | | | |
| | | | |
| arma_aligned Mat<eT>* mat_ptrs_local_extra[ (fixed_n_slices > Cube_prea | | | |
| lloc::mat_ptrs_size) ? fixed_n_slices : 1 ]; | | | |
| arma_aligned eT mem_local_extra [ (fixed_n_elem > Cube_prea | | | |
| lloc::mem_n_elem) ? fixed_n_elem : 1 ]; | | | |
| | | | |
| arma_inline void mem_setup(); | | | |
| | | | |
| public: | | | |
| | | | |
| inline fixed() { mem_setup(); } | | | |
| | | | |
| inline const Cube& operator=(const eT val) { mem_setup(); Cube<eT>::ope | | | |
| rator=(val); return *this; } | | | |
| | | | |
| template<typename T1> | | | |
| inline fixed(const BaseCube<eT,T1>& A) { mem_setup(); Cube<eT>::operato | | | |
| r=(A.get_ref()); } | | | |
| | | | |
| template<typename T1> | | | |
| inline const Cube& operator=(const BaseCube<eT,T1>& A) { Cube<eT>::oper | | | |
| ator=(A.get_ref()); return *this; } | | | |
| | | | |
| template<typename T1, typename T2> | | | |
| inline explicit fixed(const BaseCube<pod_type,T1>& A, const BaseCube<po | | | |
| d_type,T2>& B) { mem_setup(); Cube<eT>::init(A,B); } | | | |
| | | | |
| // using Cube<eT>::operator(); | | | |
| // TODO: overload operator(), operator[] and .at() to allow faster elem | | | |
| ent access | | | |
| }; | | | |
| | | | |
| protected: | | protected: | |
| | | | |
| inline void init_cold(); | | inline void init_cold(); | |
| inline void init_warm(const uword in_rows, const uword in_cols, const uwo
rd in_slices); | | inline void init_warm(const uword in_rows, const uword in_cols, const uwo
rd in_slices); | |
| | | | |
| template<typename T1, typename T2> | | template<typename T1, typename T2> | |
| inline void init(const BaseCube<pod_type,T1>& A, const BaseCube<pod_type,
T2>& B); | | inline void init(const BaseCube<pod_type,T1>& A, const BaseCube<pod_type,
T2>& B); | |
| | | | |
| inline void steal_mem(Cube& X); | | inline void steal_mem(Cube& X); | |
| | | | |
| skipping to change at line 323 | | skipping to change at line 294 | |
| friend class op_reshape; | | friend class op_reshape; | |
| friend class op_resize; | | friend class op_resize; | |
| | | | |
| public: | | public: | |
| | | | |
| #ifdef ARMA_EXTRA_CUBE_PROTO | | #ifdef ARMA_EXTRA_CUBE_PROTO | |
| #include ARMA_INCFILE_WRAP(ARMA_EXTRA_CUBE_PROTO) | | #include ARMA_INCFILE_WRAP(ARMA_EXTRA_CUBE_PROTO) | |
| #endif | | #endif | |
| }; | | }; | |
| | | | |
|
| | | template<typename eT> | |
| | | template<uword fixed_n_rows, uword fixed_n_cols, uword fixed_n_slices> | |
| | | class Cube<eT>::fixed : public Cube<eT> | |
| | | { | |
| | | private: | |
| | | | |
| | | static const uword fixed_n_elem = fixed_n_rows * fixed_n_cols * fixed_n_s | |
| | | lices; | |
| | | | |
| | | arma_aligned Mat<eT>* mat_ptrs_local_extra[ (fixed_n_slices > Cube_preall | |
| | | oc::mat_ptrs_size) ? fixed_n_slices : 1 ]; | |
| | | arma_aligned eT mem_local_extra [ (fixed_n_elem > Cube_preall | |
| | | oc::mem_n_elem) ? fixed_n_elem : 1 ]; | |
| | | | |
| | | arma_inline void mem_setup(); | |
| | | | |
| | | public: | |
| | | | |
| | | inline fixed() { mem_setup(); } | |
| | | | |
| | | inline const Cube& operator=(const eT val) { mem_setup(); Cube<eT>::opera | |
| | | tor=(val); return *this; } | |
| | | | |
| | | template<typename T1> | |
| | | inline fixed(const BaseCube<eT,T1>& A) { mem_setup(); Cube<eT>::operator= | |
| | | (A.get_ref()); } | |
| | | | |
| | | template<typename T1> | |
| | | inline const Cube& operator=(const BaseCube<eT,T1>& A) { Cube<eT>::operat | |
| | | or=(A.get_ref()); return *this; } | |
| | | | |
| | | template<typename T1, typename T2> | |
| | | inline explicit fixed(const BaseCube<pod_type,T1>& A, const BaseCube<pod_ | |
| | | type,T2>& B) { mem_setup(); Cube<eT>::init(A,B); } | |
| | | | |
| | | // using Cube<eT>::operator(); | |
| | | // TODO: overload operator(), operator[] and .at() to allow faster elemen | |
| | | t access | |
| | | }; | |
| | | | |
| class Cube_aux | | class Cube_aux | |
| { | | { | |
| public: | | public: | |
| | | | |
| template<typename eT> arma_inline static void prefix_pp(Cube<eT>& x); | | template<typename eT> arma_inline static void prefix_pp(Cube<eT>& x); | |
| template<typename T> arma_inline static void prefix_pp(Cube< std::comple
x<T> >& x); | | template<typename T> arma_inline static void prefix_pp(Cube< std::comple
x<T> >& x); | |
| | | | |
| template<typename eT> arma_inline static void postfix_pp(Cube<eT>& x); | | template<typename eT> arma_inline static void postfix_pp(Cube<eT>& x); | |
| template<typename T> arma_inline static void postfix_pp(Cube< std::compl
ex<T> >& x); | | template<typename T> arma_inline static void postfix_pp(Cube< std::compl
ex<T> >& x); | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 38 lines changed or deleted | | 42 lines changed or added | |
|
| Mat_bones.hpp | | Mat_bones.hpp | |
| | | | |
| skipping to change at line 441 | | skipping to change at line 441 | |
| inline row_iterator begin_row(const uword row_num); | | inline row_iterator begin_row(const uword row_num); | |
| inline const_row_iterator begin_row(const uword row_num) const; | | inline const_row_iterator begin_row(const uword row_num) const; | |
| | | | |
| inline row_iterator end_row (const uword row_num); | | inline row_iterator end_row (const uword row_num); | |
| inline const_row_iterator end_row (const uword row_num) const; | | inline const_row_iterator end_row (const uword row_num) const; | |
| | | | |
| inline void clear(); | | inline void clear(); | |
| inline bool empty() const; | | inline bool empty() const; | |
| inline uword size() const; | | inline uword size() const; | |
| | | | |
|
| template<uword fixed_n_rows, uword fixed_n_cols> | | | |
| class fixed : public Mat<eT> | | | |
| { | | | |
| private: | | | |
| | | | |
| static const uword fixed_n_elem = fixed_n_rows * fixed_n_cols; | | | |
| static const bool use_extra = (fixed_n_elem > arma_config::mat_prea | | | |
| lloc); | | | |
| | | | |
| arma_aligned eT mem_local_extra[ (use_extra) ? fixed_n_elem : 1 ]; | | | |
| | | | |
| public: | | | |
| | | | |
| typedef fixed<fixed_n_rows, fixed_n_cols> Mat_fixed_type; | | | |
| | | | |
| typedef eT elem_type; | | | |
| typedef typename get_pod_type<eT>::result pod_type; | | | |
| | | | |
| static const bool is_col = (fixed_n_cols == 1) ? true : false; | | | |
| static const bool is_row = (fixed_n_rows == 1) ? true : false; | | | |
| | | | |
| static const uword n_rows = fixed_n_rows; | | | |
| static const uword n_cols = fixed_n_cols; | | | |
| static const uword n_elem = fixed_n_elem; | | | |
| | | | |
| arma_inline fixed(); | | | |
| arma_inline fixed(const fixed<fixed_n_rows, fixed_n_cols>& X); | | | |
| | | | |
| template<typename T1> inline fixed(const Base<eT,T1>& A); | | | |
| template<typename T1, typename T2> inline fixed(const Base<pod_type,T1> | | | |
| & A, const Base<pod_type,T2>& B); | | | |
| | | | |
| inline fixed(const eT* aux_mem); | | | |
| | | | |
| inline fixed(const char* text); | | | |
| inline fixed(const std::string& text); | | | |
| | | | |
| using Mat<eT>::operator=; | | | |
| using Mat<eT>::operator(); | | | |
| | | | |
| #if defined(ARMA_USE_CXX11) | | | |
| inline fixed(const std::initializer_list<eT>& list); | | | |
| inline const Mat& operator=(const std::initializer_list<eT>& list); | | | |
| #endif | | | |
| | | | |
| arma_inline arma_warn_unused eT& operator[] (const uword i); | | | |
| arma_inline arma_warn_unused eT operator[] (const uword i) const; | | | |
| arma_inline arma_warn_unused eT& at (const uword i); | | | |
| arma_inline arma_warn_unused eT at (const uword i) const; | | | |
| arma_inline arma_warn_unused eT& operator() (const uword i); | | | |
| arma_inline arma_warn_unused eT operator() (const uword i) const; | | | |
| | | | |
| arma_inline arma_warn_unused eT& at (const uword in_row, const | | | |
| uword in_col); | | | |
| arma_inline arma_warn_unused eT at (const uword in_row, const | | | |
| uword in_col) const; | | | |
| arma_inline arma_warn_unused eT& operator() (const uword in_row, const | | | |
| uword in_col); | | | |
| arma_inline arma_warn_unused eT operator() (const uword in_row, const | | | |
| uword in_col) const; | | | |
| | | | |
| arma_inline arma_warn_unused eT* memptr(); | | | |
| arma_inline arma_warn_unused const eT* memptr() const; | | | |
| | | | |
| arma_hot inline const Mat<eT>& fill(const eT val); | | | |
| arma_hot inline const Mat<eT>& zeros(); | | | |
| arma_hot inline const Mat<eT>& ones(); | | | |
| }; | | | |
| | | | |
| inline void steal_mem(Mat& X); //!< don't use this unless you're writing
code internal to Armadillo | | inline void steal_mem(Mat& X); //!< don't use this unless you're writing
code internal to Armadillo | |
| | | | |
|
| | | template<uword fixed_n_rows, uword fixed_n_cols> class fixed; | |
| | | | |
| protected: | | protected: | |
| | | | |
| inline void init_cold(); | | inline void init_cold(); | |
| inline void init_warm(uword in_rows, uword in_cols); | | inline void init_warm(uword in_rows, uword in_cols); | |
| | | | |
| inline void init(const std::string& text); | | inline void init(const std::string& text); | |
| | | | |
| #if defined(ARMA_USE_CXX11) | | #if defined(ARMA_USE_CXX11) | |
| inline void init(const std::initializer_list<eT>& list); | | inline void init(const std::initializer_list<eT>& list); | |
| #endif | | #endif | |
| | | | |
| skipping to change at line 540 | | skipping to change at line 479 | |
| friend class op_htrans; | | friend class op_htrans; | |
| friend class op_resize; | | friend class op_resize; | |
| | | | |
| public: | | public: | |
| | | | |
| #ifdef ARMA_EXTRA_MAT_PROTO | | #ifdef ARMA_EXTRA_MAT_PROTO | |
| #include ARMA_INCFILE_WRAP(ARMA_EXTRA_MAT_PROTO) | | #include ARMA_INCFILE_WRAP(ARMA_EXTRA_MAT_PROTO) | |
| #endif | | #endif | |
| }; | | }; | |
| | | | |
|
| | | template<typename eT> | |
| | | template<uword fixed_n_rows, uword fixed_n_cols> | |
| | | class Mat<eT>::fixed : public Mat<eT> | |
| | | { | |
| | | private: | |
| | | | |
| | | static const uword fixed_n_elem = fixed_n_rows * fixed_n_cols; | |
| | | static const bool use_extra = (fixed_n_elem > arma_config::mat_preall | |
| | | oc); | |
| | | | |
| | | arma_aligned eT mem_local_extra[ (use_extra) ? fixed_n_elem : 1 ]; | |
| | | | |
| | | public: | |
| | | | |
| | | typedef fixed<fixed_n_rows, fixed_n_cols> Mat_fixed_type; | |
| | | | |
| | | typedef eT elem_type; | |
| | | typedef typename get_pod_type<eT>::result pod_type; | |
| | | | |
| | | static const bool is_col = (fixed_n_cols == 1) ? true : false; | |
| | | static const bool is_row = (fixed_n_rows == 1) ? true : false; | |
| | | | |
| | | static const uword n_rows = fixed_n_rows; | |
| | | static const uword n_cols = fixed_n_cols; | |
| | | static const uword n_elem = fixed_n_elem; | |
| | | | |
| | | arma_inline fixed(); | |
| | | arma_inline fixed(const fixed<fixed_n_rows, fixed_n_cols>& X); | |
| | | | |
| | | template<typename T1> inline fixed(const Base<eT,T1>& A); | |
| | | template<typename T1, typename T2> inline fixed(const Base<pod_type,T1>& | |
| | | A, const Base<pod_type,T2>& B); | |
| | | | |
| | | inline fixed(const eT* aux_mem); | |
| | | | |
| | | inline fixed(const char* text); | |
| | | inline fixed(const std::string& text); | |
| | | | |
| | | using Mat<eT>::operator=; | |
| | | using Mat<eT>::operator(); | |
| | | | |
| | | #if defined(ARMA_USE_CXX11) | |
| | | inline fixed(const std::initializer_list<eT>& list); | |
| | | inline const Mat& operator=(const std::initializer_list<eT>& list); | |
| | | #endif | |
| | | | |
| | | arma_inline arma_warn_unused eT& operator[] (const uword i); | |
| | | arma_inline arma_warn_unused eT operator[] (const uword i) const; | |
| | | arma_inline arma_warn_unused eT& at (const uword i); | |
| | | arma_inline arma_warn_unused eT at (const uword i) const; | |
| | | arma_inline arma_warn_unused eT& operator() (const uword i); | |
| | | arma_inline arma_warn_unused eT operator() (const uword i) const; | |
| | | | |
| | | arma_inline arma_warn_unused eT& at (const uword in_row, const uw | |
| | | ord in_col); | |
| | | arma_inline arma_warn_unused eT at (const uword in_row, const uw | |
| | | ord in_col) const; | |
| | | arma_inline arma_warn_unused eT& operator() (const uword in_row, const uw | |
| | | ord in_col); | |
| | | arma_inline arma_warn_unused eT operator() (const uword in_row, const uw | |
| | | ord in_col) const; | |
| | | | |
| | | arma_inline arma_warn_unused eT* memptr(); | |
| | | arma_inline arma_warn_unused const eT* memptr() const; | |
| | | | |
| | | arma_hot inline const Mat<eT>& fill(const eT val); | |
| | | arma_hot inline const Mat<eT>& zeros(); | |
| | | arma_hot inline const Mat<eT>& ones(); | |
| | | }; | |
| | | | |
| class Mat_aux | | class Mat_aux | |
| { | | { | |
| public: | | public: | |
| | | | |
| template<typename eT> arma_inline static void prefix_pp(Mat<eT>& x); | | template<typename eT> arma_inline static void prefix_pp(Mat<eT>& x); | |
| template<typename T> arma_inline static void prefix_pp(Mat< std::complex
<T> >& x); | | template<typename T> arma_inline static void prefix_pp(Mat< std::complex
<T> >& x); | |
| | | | |
| template<typename eT> arma_inline static void postfix_pp(Mat<eT>& x); | | template<typename eT> arma_inline static void postfix_pp(Mat<eT>& x); | |
| template<typename T> arma_inline static void postfix_pp(Mat< std::comple
x<T> >& x); | | template<typename T> arma_inline static void postfix_pp(Mat< std::comple
x<T> >& x); | |
| | | | |
| | | | |
End of changes. 3 change blocks. |
| 69 lines changed or deleted | | 72 lines changed or added | |
|
| Row_bones.hpp | | Row_bones.hpp | |
| | | | |
| skipping to change at line 106 | | skipping to change at line 106 | |
| | | | |
| typedef eT* row_iterator; | | typedef eT* row_iterator; | |
| typedef const eT* const_row_iterator; | | typedef const eT* const_row_iterator; | |
| | | | |
| inline row_iterator begin_row(const uword row_num); | | inline row_iterator begin_row(const uword row_num); | |
| inline const_row_iterator begin_row(const uword row_num) const; | | inline const_row_iterator begin_row(const uword row_num) const; | |
| | | | |
| inline row_iterator end_row (const uword row_num); | | inline row_iterator end_row (const uword row_num); | |
| inline const_row_iterator end_row (const uword row_num) const; | | inline const_row_iterator end_row (const uword row_num) const; | |
| | | | |
|
| template<uword fixed_n_elem> | | template<uword fixed_n_elem> class fixed; | |
| class fixed : public Row<eT> | | | |
| { | | | |
| private: | | | |
| | | | |
|
| static const bool use_extra = (fixed_n_elem > arma_config::mat_prealloc | | protected: | |
| ); | | | |
| | | | |
| arma_aligned eT mem_local_extra[ (use_extra) ? fixed_n_elem : 1 ]; | | | |
| | | | |
| public: | | | |
| | | | |
| typedef fixed<fixed_n_elem> Row_fixed_type; | | | |
| | | | |
|
| typedef eT elem_type; | | inline Row(const arma_fixed_indicator&, const uword in_n_elem, const eT* | |
| typedef typename get_pod_type<eT>::result pod_type; | | in_mem); | |
| | | | |
|
| static const bool is_col = false; | | public: | |
| static const bool is_row = true; | | | |
| | | | |
|
| static const uword n_rows = 1; | | #ifdef ARMA_EXTRA_ROW_PROTO | |
| static const uword n_cols = fixed_n_elem; | | #include ARMA_INCFILE_WRAP(ARMA_EXTRA_ROW_PROTO) | |
| static const uword n_elem = fixed_n_elem; | | #endif | |
| | | }; | |
| | | | |
|
| arma_inline fixed(); | | template<typename eT> | |
| arma_inline fixed(const fixed<fixed_n_elem>& X); | | template<uword fixed_n_elem> | |
| inline fixed(const subview_cube<eT>& X); | | class Row<eT>::fixed : public Row<eT> | |
| | | { | |
| | | private: | |
| | | | |
|
| template<typename T1> inline fixed(const Base<eT,T1>& A); | | static const bool use_extra = (fixed_n_elem > arma_config::mat_prealloc); | |
| template<typename T1, typename T2> inline fixed(const Base<pod_type,T1> | | | |
| & A, const Base<pod_type,T2>& B); | | | |
| | | | |
|
| inline fixed(const eT* aux_mem); | | arma_aligned eT mem_local_extra[ (use_extra) ? fixed_n_elem : 1 ]; | |
| | | | |
|
| inline fixed(const char* text); | | public: | |
| inline fixed(const std::string& text); | | | |
| | | | |
|
| template<typename T1> inline const Row& operator=(const Base<eT,T1>& A)
; | | typedef fixed<fixed_n_elem> Row_fixed_type; | |
| | | | |
|
| inline const Row& operator=(const eT val); | | typedef eT elem_type; | |
| inline const Row& operator=(const char* text); | | typedef typename get_pod_type<eT>::result pod_type; | |
| inline const Row& operator=(const std::string& text); | | | |
| inline const Row& operator=(const subview_cube<eT>& X); | | | |
| | | | |
|
| using Row<eT>::operator(); | | static const bool is_col = false; | |
| | | static const bool is_row = true; | |
| | | | |
|
| #if defined(ARMA_USE_CXX11) | | static const uword n_rows = 1; | |
| inline fixed(const std::initializer_list<eT>& list); | | static const uword n_cols = fixed_n_elem; | |
| inline const Row& operator=(const std::initializer_list<eT>& list); | | static const uword n_elem = fixed_n_elem; | |
| #endif | | | |
| | | | |
|
| arma_inline arma_warn_unused eT& operator[] (const uword i); | | arma_inline fixed(); | |
| arma_inline arma_warn_unused eT operator[] (const uword i) const; | | arma_inline fixed(const fixed<fixed_n_elem>& X); | |
| arma_inline arma_warn_unused eT& at (const uword i); | | inline fixed(const subview_cube<eT>& X); | |
| arma_inline arma_warn_unused eT at (const uword i) const; | | | |
| arma_inline arma_warn_unused eT& operator() (const uword i); | | | |
| arma_inline arma_warn_unused eT operator() (const uword i) const; | | | |
| | | | |
|
| arma_inline arma_warn_unused eT& at (const uword in_row, const | | template<typename T1> inline fixed(const Base<eT,T1>& A); | |
| uword in_col); | | template<typename T1, typename T2> inline fixed(const Base<pod_type,T1>& | |
| arma_inline arma_warn_unused eT at (const uword in_row, const | | A, const Base<pod_type,T2>& B); | |
| uword in_col) const; | | | |
| arma_inline arma_warn_unused eT& operator() (const uword in_row, const | | | |
| uword in_col); | | | |
| arma_inline arma_warn_unused eT operator() (const uword in_row, const | | | |
| uword in_col) const; | | | |
| | | | |
|
| arma_inline arma_warn_unused eT* memptr(); | | inline fixed(const eT* aux_mem); | |
| arma_inline arma_warn_unused const eT* memptr() const; | | | |
| | | | |
|
| arma_hot inline const Row<eT>& fill(const eT val); | | inline fixed(const char* text); | |
| arma_hot inline const Row<eT>& zeros(); | | inline fixed(const std::string& text); | |
| arma_hot inline const Row<eT>& ones(); | | | |
| }; | | | |
| | | | |
|
| protected: | | template<typename T1> inline const Row& operator=(const Base<eT,T1>& A); | |
| | | | |
|
| inline Row(const arma_fixed_indicator&, const uword in_n_elem, const eT* | | inline const Row& operator=(const eT val); | |
| in_mem); | | inline const Row& operator=(const char* text); | |
| | | inline const Row& operator=(const std::string& text); | |
| | | inline const Row& operator=(const subview_cube<eT>& X); | |
| | | | |
|
| public: | | using Row<eT>::operator(); | |
| | | | |
|
| #ifdef ARMA_EXTRA_ROW_PROTO | | #if defined(ARMA_USE_CXX11) | |
| #include ARMA_INCFILE_WRAP(ARMA_EXTRA_ROW_PROTO) | | inline fixed(const std::initializer_list<eT>& list); | |
| | | inline const Row& operator=(const std::initializer_list<eT>& list); | |
| #endif | | #endif | |
|
| | | | |
| | | arma_inline arma_warn_unused eT& operator[] (const uword i); | |
| | | arma_inline arma_warn_unused eT operator[] (const uword i) const; | |
| | | arma_inline arma_warn_unused eT& at (const uword i); | |
| | | arma_inline arma_warn_unused eT at (const uword i) const; | |
| | | arma_inline arma_warn_unused eT& operator() (const uword i); | |
| | | arma_inline arma_warn_unused eT operator() (const uword i) const; | |
| | | | |
| | | arma_inline arma_warn_unused eT& at (const uword in_row, const uw | |
| | | ord in_col); | |
| | | arma_inline arma_warn_unused eT at (const uword in_row, const uw | |
| | | ord in_col) const; | |
| | | arma_inline arma_warn_unused eT& operator() (const uword in_row, const uw | |
| | | ord in_col); | |
| | | arma_inline arma_warn_unused eT operator() (const uword in_row, const uw | |
| | | ord in_col) const; | |
| | | | |
| | | arma_inline arma_warn_unused eT* memptr(); | |
| | | arma_inline arma_warn_unused const eT* memptr() const; | |
| | | | |
| | | arma_hot inline const Row<eT>& fill(const eT val); | |
| | | arma_hot inline const Row<eT>& zeros(); | |
| | | arma_hot inline const Row<eT>& ones(); | |
| }; | | }; | |
| | | | |
| //! @} | | //! @} | |
| | | | |
End of changes. 22 change blocks. |
| 64 lines changed or deleted | | 66 lines changed or added | |
|
| glue_cor_meat.hpp | | glue_cor_meat.hpp | |
|
| // Copyright (C) 2009-2011 NICTA (www.nicta.com.au) | | // Copyright (C) 2009-2012 NICTA (www.nicta.com.au) | |
| // Copyright (C) 2009-2011 Conrad Sanderson | | // Copyright (C) 2009-2012 Conrad Sanderson | |
| // Copyright (C) 2009-2010 Dimitrios Bouzas | | // Copyright (C) 2009-2010 Dimitrios Bouzas | |
| // | | // | |
| // This file is part of the Armadillo C++ library. | | // This file is part of the Armadillo C++ library. | |
| // It is provided without any warranty of fitness | | // It is provided without any warranty of fitness | |
| // for any purpose. You can redistribute this file | | // for any purpose. You can redistribute this file | |
| // and/or modify it under the terms of the GNU | | // and/or modify it under the terms of the GNU | |
| // Lesser General Public License (LGPL) as published | | // Lesser General Public License (LGPL) as published | |
| // by the Free Software Foundation, either version 3 | | // by the Free Software Foundation, either version 3 | |
| // of the License or (at your option) any later version. | | // of the License or (at your option) any later version. | |
| // (see http://www.opensource.org/licenses for more info) | | // (see http://www.opensource.org/licenses for more info) | |
| | | | |
| skipping to change at line 68 | | skipping to change at line 68 | |
| out.set_size(1,1); | | out.set_size(1,1); | |
| out[0] = out_acc/norm_val; | | out[0] = out_acc/norm_val; | |
| | | | |
| const Mat<eT> stddev_A = (A.n_rows == 1) ? Mat<eT>(stddev(trans(A))) :
Mat<eT>(stddev(A)); | | const Mat<eT> stddev_A = (A.n_rows == 1) ? Mat<eT>(stddev(trans(A))) :
Mat<eT>(stddev(A)); | |
| const Mat<eT> stddev_B = (B.n_rows == 1) ? Mat<eT>(stddev(trans(B))) :
Mat<eT>(stddev(B)); | | const Mat<eT> stddev_B = (B.n_rows == 1) ? Mat<eT>(stddev(trans(B))) :
Mat<eT>(stddev(B)); | |
| | | | |
| out /= stddev_A * stddev_B; | | out /= stddev_A * stddev_B; | |
| } | | } | |
| else | | else | |
| { | | { | |
|
| arma_debug_assert_same_size(A, B, "cor()"); | | arma_debug_assert_mul_size(A, B, true, false, "cor()"); | |
| | | | |
| const uword N = A.n_rows; | | const uword N = A.n_rows; | |
| const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | |
| | | | |
| out = trans(A) * B; | | out = trans(A) * B; | |
| out -= (trans(sum(A)) * sum(B))/eT(N); | | out -= (trans(sum(A)) * sum(B))/eT(N); | |
| out /= norm_val; | | out /= norm_val; | |
| out /= trans(stddev(A)) * stddev(B); | | out /= trans(stddev(A)) * stddev(B); | |
| } | | } | |
| } | | } | |
| | | | |
| skipping to change at line 133 | | skipping to change at line 133 | |
| out.set_size(1,1); | | out.set_size(1,1); | |
| out[0] = out_acc/norm_val; | | out[0] = out_acc/norm_val; | |
| | | | |
| const Mat<T> stddev_A = (A.n_rows == 1) ? Mat<T>(stddev(trans(A))) : Ma
t<T>(stddev(A)); | | const Mat<T> stddev_A = (A.n_rows == 1) ? Mat<T>(stddev(trans(A))) : Ma
t<T>(stddev(A)); | |
| const Mat<T> stddev_B = (B.n_rows == 1) ? Mat<T>(stddev(trans(B))) : Ma
t<T>(stddev(B)); | | const Mat<T> stddev_B = (B.n_rows == 1) ? Mat<T>(stddev(trans(B))) : Ma
t<T>(stddev(B)); | |
| | | | |
| out /= conv_to< Mat<eT> >::from( stddev_A * stddev_B ); | | out /= conv_to< Mat<eT> >::from( stddev_A * stddev_B ); | |
| } | | } | |
| else | | else | |
| { | | { | |
|
| arma_debug_assert_same_size(A, B, "cor()"); | | arma_debug_assert_mul_size(A, B, true, false, "cor()"); | |
| | | | |
| const uword N = A.n_rows; | | const uword N = A.n_rows; | |
| const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | |
| | | | |
| out = trans(A) * B; // out = strans(conj(A)) * B; | | out = trans(A) * B; // out = strans(conj(A)) * B; | |
| out -= (trans(sum(A)) * sum(B))/eT(N); // out -= (strans(conj(sum(A)))
* sum(B))/eT(N); | | out -= (trans(sum(A)) * sum(B))/eT(N); // out -= (strans(conj(sum(A)))
* sum(B))/eT(N); | |
| out /= norm_val; | | out /= norm_val; | |
| out /= conv_to< Mat<eT> >::from( trans(stddev(A)) * stddev(B) ); | | out /= conv_to< Mat<eT> >::from( trans(stddev(A)) * stddev(B) ); | |
| } | | } | |
| } | | } | |
| | | | |
End of changes. 3 change blocks. |
| 4 lines changed or deleted | | 4 lines changed or added | |
|
| glue_cov_meat.hpp | | glue_cov_meat.hpp | |
|
| // Copyright (C) 2009-2011 NICTA (www.nicta.com.au) | | // Copyright (C) 2009-2012 NICTA (www.nicta.com.au) | |
| // Copyright (C) 2009-2011 Conrad Sanderson | | // Copyright (C) 2009-2012 Conrad Sanderson | |
| // Copyright (C) 2009-2010 Dimitrios Bouzas | | // Copyright (C) 2009-2010 Dimitrios Bouzas | |
| // | | // | |
| // This file is part of the Armadillo C++ library. | | // This file is part of the Armadillo C++ library. | |
| // It is provided without any warranty of fitness | | // It is provided without any warranty of fitness | |
| // for any purpose. You can redistribute this file | | // for any purpose. You can redistribute this file | |
| // and/or modify it under the terms of the GNU | | // and/or modify it under the terms of the GNU | |
| // Lesser General Public License (LGPL) as published | | // Lesser General Public License (LGPL) as published | |
| // by the Free Software Foundation, either version 3 | | // by the Free Software Foundation, either version 3 | |
| // of the License or (at your option) any later version. | | // of the License or (at your option) any later version. | |
| // (see http://www.opensource.org/licenses for more info) | | // (see http://www.opensource.org/licenses for more info) | |
| | | | |
| skipping to change at line 57 | | skipping to change at line 57 | |
| | | | |
| out_acc -= (A_acc * B_acc)/eT(N); | | out_acc -= (A_acc * B_acc)/eT(N); | |
| | | | |
| const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | |
| | | | |
| out.set_size(1,1); | | out.set_size(1,1); | |
| out[0] = out_acc/norm_val; | | out[0] = out_acc/norm_val; | |
| } | | } | |
| else | | else | |
| { | | { | |
|
| arma_debug_assert_same_size(A, B, "cov()"); | | arma_debug_assert_mul_size(A, B, true, false, "cov()"); | |
| | | | |
| const uword N = A.n_rows; | | const uword N = A.n_rows; | |
| const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | |
| | | | |
| out = trans(A) * B; | | out = trans(A) * B; | |
| out -= (trans(sum(A)) * sum(B))/eT(N); | | out -= (trans(sum(A)) * sum(B))/eT(N); | |
| out /= norm_val; | | out /= norm_val; | |
| } | | } | |
| } | | } | |
| | | | |
| | | | |
| skipping to change at line 110 | | skipping to change at line 110 | |
| | | | |
| out_acc -= (std::conj(A_acc) * B_acc)/eT(N); | | out_acc -= (std::conj(A_acc) * B_acc)/eT(N); | |
| | | | |
| const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | |
| | | | |
| out.set_size(1,1); | | out.set_size(1,1); | |
| out[0] = out_acc/norm_val; | | out[0] = out_acc/norm_val; | |
| } | | } | |
| else | | else | |
| { | | { | |
|
| arma_debug_assert_same_size(A, B, "cov()"); | | arma_debug_assert_mul_size(A, B, true, false, "cov()"); | |
| | | | |
| const uword N = A.n_rows; | | const uword N = A.n_rows; | |
| const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | | const eT norm_val = (norm_type == 0) ? ( (N > 1) ? eT(N-1) : eT(1) ) :
eT(N); | |
| | | | |
| out = trans(A) * B; // out = strans(conj(A)) * B; | | out = trans(A) * B; // out = strans(conj(A)) * B; | |
| out -= (trans(sum(A)) * sum(B))/eT(N); // out -= (strans(conj(sum(A)))
* sum(B))/eT(N); | | out -= (trans(sum(A)) * sum(B))/eT(N); // out -= (strans(conj(sum(A)))
* sum(B))/eT(N); | |
| out /= norm_val; | | out /= norm_val; | |
| } | | } | |
| } | | } | |
| | | | |
| | | | |
End of changes. 3 change blocks. |
| 4 lines changed or deleted | | 4 lines changed or added | |
|