comparison armadillo-3.900.4/include/armadillo_bits/subview_elem1_bones.hpp @ 49:1ec0e2823891

Switch to using subrepo copies of qm-dsp, nnls-chroma, vamp-plugin-sdk; update Armadillo version; assume build without external BLAS/LAPACK
author Chris Cannam
date Thu, 13 Jun 2013 10:25:24 +0100
parents
children
comparison
equal deleted inserted replaced
48:69251e11a913 49:1ec0e2823891
1 // Copyright (C) 2010-2012 NICTA (www.nicta.com.au)
2 // Copyright (C) 2010-2012 Conrad Sanderson
3 //
4 // This Source Code Form is subject to the terms of the Mozilla Public
5 // License, v. 2.0. If a copy of the MPL was not distributed with this
6 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
8
9 //! \addtogroup subview_elem1
10 //! @{
11
12
13
14 template<typename eT, typename T1>
15 class subview_elem1 : public Base<eT, subview_elem1<eT,T1> >
16 {
17 public:
18
19 typedef eT elem_type;
20 typedef typename get_pod_type<elem_type>::result pod_type;
21
22 static const bool is_row = false;
23 static const bool is_col = true;
24
25 arma_aligned const Mat<eT>& m;
26 arma_aligned const Base<uword,T1>& a;
27
28
29 protected:
30
31 arma_inline subview_elem1(const Mat<eT>& in_m, const Base<uword,T1>& in_a);
32
33
34 public:
35
36 inline ~subview_elem1();
37
38 template<typename op_type> inline void inplace_op(const eT val);
39 template<typename op_type, typename T2> inline void inplace_op(const subview_elem1<eT,T2>& x );
40 template<typename op_type, typename T2> inline void inplace_op(const Base<eT,T2>& x );
41
42 arma_inline const Op<subview_elem1<eT,T1>,op_htrans> t() const;
43 arma_inline const Op<subview_elem1<eT,T1>,op_htrans> ht() const;
44 arma_inline const Op<subview_elem1<eT,T1>,op_strans> st() const;
45
46 inline void fill(const eT val);
47 inline void zeros();
48 inline void ones();
49
50 inline void operator+= (const eT val);
51 inline void operator-= (const eT val);
52 inline void operator*= (const eT val);
53 inline void operator/= (const eT val);
54
55
56 // deliberately returning void
57 template<typename T2> inline void operator_equ(const subview_elem1<eT,T2>& x);
58 template<typename T2> inline void operator= (const subview_elem1<eT,T2>& x);
59 inline void operator= (const subview_elem1<eT,T1>& x);
60 template<typename T2> inline void operator+= (const subview_elem1<eT,T2>& x);
61 template<typename T2> inline void operator-= (const subview_elem1<eT,T2>& x);
62 template<typename T2> inline void operator%= (const subview_elem1<eT,T2>& x);
63 template<typename T2> inline void operator/= (const subview_elem1<eT,T2>& x);
64
65 template<typename T2> inline void operator= (const Base<eT,T2>& x);
66 template<typename T2> inline void operator+= (const Base<eT,T2>& x);
67 template<typename T2> inline void operator-= (const Base<eT,T2>& x);
68 template<typename T2> inline void operator%= (const Base<eT,T2>& x);
69 template<typename T2> inline void operator/= (const Base<eT,T2>& x);
70
71 inline static void extract(Mat<eT>& out, const subview_elem1& in);
72
73 template<typename op_type> inline static void mat_inplace_op(Mat<eT>& out, const subview_elem1& in);
74
75 inline static void plus_inplace(Mat<eT>& out, const subview_elem1& in);
76 inline static void minus_inplace(Mat<eT>& out, const subview_elem1& in);
77 inline static void schur_inplace(Mat<eT>& out, const subview_elem1& in);
78 inline static void div_inplace(Mat<eT>& out, const subview_elem1& in);
79
80
81
82 private:
83
84 friend class Mat<eT>;
85 subview_elem1();
86 };
87
88
89
90 //! @}