comparison armadillo-3.900.4/include/armadillo_bits/forward_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) 2008-2012 NICTA (www.nicta.com.au)
2 // Copyright (C) 2008-2013 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 using std::cout;
10 using std::cerr;
11 using std::endl;
12 using std::ios;
13
14 template<typename elem_type, typename derived> struct Base;
15 template<typename elem_type, typename derived> struct BaseCube;
16
17 template<typename eT> class Mat;
18 template<typename eT> class Col;
19 template<typename eT> class Row;
20 template<typename eT> class Cube;
21 template<typename eT> class xvec_htrans;
22 template<typename oT> class field;
23
24 template<typename eT> class subview;
25 template<typename eT> class subview_col;
26 template<typename eT> class subview_row;
27 template<typename eT> class subview_row_strans;
28 template<typename eT> class subview_row_htrans;
29 template<typename eT> class subview_cube;
30 template<typename oT> class subview_field;
31
32 template<typename eT> class SpValProxy;
33 template<typename eT> class SpMat;
34 template<typename eT> class SpCol;
35 template<typename eT> class SpRow;
36 template<typename eT> class SpSubview;
37
38 template<typename eT> class diagview;
39
40 template<typename eT, typename T1> class subview_elem1;
41 template<typename eT, typename T1, typename T2> class subview_elem2;
42
43 template<typename parent, unsigned int mode> class subview_each1;
44 template<typename parent, unsigned int mode, typename TB> class subview_each2;
45
46
47 class arma_empty_class {};
48
49 class diskio;
50
51 class op_min;
52 class op_max;
53
54 class op_strans;
55 class op_htrans;
56 class op_htrans2;
57 class op_inv;
58 class op_sum;
59 class op_abs;
60 class op_diagmat;
61 class op_trimat;
62 class op_diagvec;
63
64 class eop_conj;
65
66 class glue_times;
67 class glue_times_diag;
68
69 class glue_rel_lt;
70 class glue_rel_gt;
71 class glue_rel_lteq;
72 class glue_rel_gteq;
73 class glue_rel_eq;
74 class glue_rel_noteq;
75
76 class op_rel_lt_pre;
77 class op_rel_lt_post;
78 class op_rel_gt_pre;
79 class op_rel_gt_post;
80 class op_rel_lteq_pre;
81 class op_rel_lteq_post;
82 class op_rel_gteq_pre;
83 class op_rel_gteq_post;
84 class op_rel_eq;
85 class op_rel_noteq;
86
87 class gen_ones_diag;
88 class gen_ones_full;
89 class gen_zeros;
90 class gen_randu;
91 class gen_randn;
92
93 class glue_mixed_plus;
94 class glue_mixed_minus;
95 class glue_mixed_div;
96 class glue_mixed_schur;
97 class glue_mixed_times;
98
99 class op_cx_scalar_times;
100 class op_cx_scalar_plus;
101 class op_cx_scalar_minus_pre;
102 class op_cx_scalar_minus_post;
103 class op_cx_scalar_div_pre;
104 class op_cx_scalar_div_post;
105
106
107
108 class op_subview_elem_equ;
109 class op_subview_elem_inplace_plus;
110 class op_subview_elem_inplace_minus;
111 class op_subview_elem_inplace_schur;
112 class op_subview_elem_inplace_div;
113
114
115
116 template<const bool, const bool, const bool, const bool> class gemm;
117 template<const bool, const bool, const bool> class gemv;
118
119
120 template< typename eT, typename gen_type> class Gen;
121
122 template< typename T1, typename op_type> class Op;
123 template< typename T1, typename eop_type> class eOp;
124 template<typename out_eT, typename T1, typename op_type> class mtOp;
125
126 template< typename T1, typename T2, typename glue_type> class Glue;
127 template< typename T1, typename T2, typename eglue_type> class eGlue;
128 template<typename out_eT, typename T1, typename T2, typename glue_type> class mtGlue;
129
130
131
132 template< typename eT, typename gen_type> class GenCube;
133
134 template< typename T1, typename op_type> class OpCube;
135 template< typename T1, typename eop_type> class eOpCube;
136 template<typename out_eT, typename T1, typename op_type> class mtOpCube;
137
138 template< typename T1, typename T2, typename glue_type> class GlueCube;
139 template< typename T1, typename T2, typename eglue_type> class eGlueCube;
140 template<typename out_eT, typename T1, typename T2, typename glue_type> class mtGlueCube;
141
142
143 template<typename T1> class Proxy;
144 template<typename T1> class ProxyCube;
145
146
147
148 class spop_strans;
149 class spop_htrans;
150 class spop_scalar_times;
151
152 class spglue_plus;
153 class spglue_plus2;
154
155 class spglue_minus;
156 class spglue_minus2;
157
158 class spglue_times;
159 class spglue_times2;
160
161
162 template< typename T1, typename spop_type> class SpOp;
163 template<typename out_eT, typename T1, typename spop_type> class mtSpOp;
164
165 template<typename T1, typename T2, typename spglue_type> class SpGlue;
166
167
168 template<typename T1> class SpProxy;
169
170
171
172 struct arma_vec_indicator {};
173 struct arma_fixed_indicator {};
174
175
176 //! \addtogroup injector
177 //! @{
178
179 template<typename Dummy = int> struct injector_end_of_row {};
180
181 static const injector_end_of_row<> endr = injector_end_of_row<>();
182 //!< endr indicates "end of row" when using the << operator;
183 //!< similar conceptual meaning to std::endl
184
185 //! @}
186
187
188
189 //! \addtogroup diskio
190 //! @{
191
192
193 enum file_type
194 {
195 file_type_unknown,
196 auto_detect, //!< Automatically detect the file type
197 raw_ascii, //!< ASCII format (text), without any other information.
198 arma_ascii, //!< Armadillo ASCII format (text), with information about matrix type and size
199 csv_ascii, //!< comma separated values (CSV), without any other information
200 raw_binary, //!< raw binary format, without any other information.
201 arma_binary, //!< Armadillo binary format, with information about matrix type and size
202 pgm_binary, //!< Portable Grey Map (greyscale image)
203 ppm_binary, //!< Portable Pixel Map (colour image), used by the field and cube classes
204 hdf5_binary, //!< Open binary format, not specific to Armadillo, which can store arbitrary data
205 coord_ascii //!< simple co-ordinate format for sparse matrices
206 };
207
208
209 //! @}
210
211