annotate armadillo-3.900.4/include/armadillo_bits/diagview_bones.hpp @ 84:55a047986812 tip

Update library URI so as not to be document-local
author Chris Cannam
date Wed, 22 Apr 2020 14:21:57 +0100
parents 1ec0e2823891
children
rev   line source
Chris@49 1 // Copyright (C) 2008-2013 NICTA (www.nicta.com.au)
Chris@49 2 // Copyright (C) 2008-2013 Conrad Sanderson
Chris@49 3 //
Chris@49 4 // This Source Code Form is subject to the terms of the Mozilla Public
Chris@49 5 // License, v. 2.0. If a copy of the MPL was not distributed with this
Chris@49 6 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
Chris@49 7
Chris@49 8
Chris@49 9 //! \addtogroup diagview
Chris@49 10 //! @{
Chris@49 11
Chris@49 12
Chris@49 13 //! Class for storing data required to extract and set the diagonals of a matrix
Chris@49 14 template<typename eT>
Chris@49 15 class diagview : public Base<eT, diagview<eT> >
Chris@49 16 {
Chris@49 17 public:
Chris@49 18
Chris@49 19 typedef eT elem_type;
Chris@49 20 typedef typename get_pod_type<eT>::result pod_type;
Chris@49 21
Chris@49 22 arma_aligned const Mat<eT>& m;
Chris@49 23
Chris@49 24 static const bool is_row = false;
Chris@49 25 static const bool is_col = true;
Chris@49 26
Chris@49 27 const uword row_offset;
Chris@49 28 const uword col_offset;
Chris@49 29
Chris@49 30 const uword n_rows; // equal to n_elem
Chris@49 31 const uword n_elem;
Chris@49 32
Chris@49 33 static const uword n_cols = 1;
Chris@49 34
Chris@49 35
Chris@49 36 protected:
Chris@49 37
Chris@49 38 arma_inline diagview(const Mat<eT>& in_m, const uword in_row_offset, const uword in_col_offset, const uword len);
Chris@49 39
Chris@49 40
Chris@49 41 public:
Chris@49 42
Chris@49 43 inline ~diagview();
Chris@49 44
Chris@49 45 inline void operator=(const diagview& x);
Chris@49 46
Chris@49 47 inline void operator+=(const eT val);
Chris@49 48 inline void operator-=(const eT val);
Chris@49 49 inline void operator*=(const eT val);
Chris@49 50 inline void operator/=(const eT val);
Chris@49 51
Chris@49 52 template<typename T1> inline void operator= (const Base<eT,T1>& x);
Chris@49 53 template<typename T1> inline void operator+=(const Base<eT,T1>& x);
Chris@49 54 template<typename T1> inline void operator-=(const Base<eT,T1>& x);
Chris@49 55 template<typename T1> inline void operator%=(const Base<eT,T1>& x);
Chris@49 56 template<typename T1> inline void operator/=(const Base<eT,T1>& x);
Chris@49 57
Chris@49 58
Chris@49 59 arma_inline eT at_alt (const uword ii) const;
Chris@49 60
Chris@49 61 arma_inline eT& operator[](const uword ii);
Chris@49 62 arma_inline eT operator[](const uword ii) const;
Chris@49 63
Chris@49 64 arma_inline eT& at(const uword ii);
Chris@49 65 arma_inline eT at(const uword ii) const;
Chris@49 66
Chris@49 67 arma_inline eT& operator()(const uword ii);
Chris@49 68 arma_inline eT operator()(const uword ii) const;
Chris@49 69
Chris@49 70 arma_inline eT& at(const uword in_n_row, const uword);
Chris@49 71 arma_inline eT at(const uword in_n_row, const uword) const;
Chris@49 72
Chris@49 73 arma_inline eT& operator()(const uword in_n_row, const uword in_n_col);
Chris@49 74 arma_inline eT operator()(const uword in_n_row, const uword in_n_col) const;
Chris@49 75
Chris@49 76
Chris@49 77 arma_inline const Op<diagview<eT>,op_htrans> t() const;
Chris@49 78 arma_inline const Op<diagview<eT>,op_htrans> ht() const;
Chris@49 79 arma_inline const Op<diagview<eT>,op_strans> st() const;
Chris@49 80
Chris@49 81 inline void fill(const eT val);
Chris@49 82 inline void zeros();
Chris@49 83 inline void ones();
Chris@49 84
Chris@49 85 inline static void extract(Mat<eT>& out, const diagview& in);
Chris@49 86
Chris@49 87 inline static void plus_inplace(Mat<eT>& out, const diagview& in);
Chris@49 88 inline static void minus_inplace(Mat<eT>& out, const diagview& in);
Chris@49 89 inline static void schur_inplace(Mat<eT>& out, const diagview& in);
Chris@49 90 inline static void div_inplace(Mat<eT>& out, const diagview& in);
Chris@49 91
Chris@49 92
Chris@49 93 private:
Chris@49 94
Chris@49 95 friend class Mat<eT>;
Chris@49 96 friend class subview<eT>;
Chris@49 97
Chris@49 98 diagview();
Chris@49 99 //diagview(const diagview&); // making this private causes an error under gcc 4.1/4.2, but not 4.3
Chris@49 100 };
Chris@49 101
Chris@49 102
Chris@49 103 //! @}