Chris@49
|
1 // Copyright (C) 2010 NICTA (www.nicta.com.au)
|
Chris@49
|
2 // Copyright (C) 2010 Conrad Sanderson
|
Chris@49
|
3 // Copyright (C) 2010 Dimitrios Bouzas
|
Chris@49
|
4 //
|
Chris@49
|
5 // This Source Code Form is subject to the terms of the Mozilla Public
|
Chris@49
|
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
|
Chris@49
|
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
Chris@49
|
8
|
Chris@49
|
9
|
Chris@49
|
10
|
Chris@49
|
11 //! \addtogroup op_find
|
Chris@49
|
12 //! @{
|
Chris@49
|
13
|
Chris@49
|
14
|
Chris@49
|
15
|
Chris@49
|
16 class op_find
|
Chris@49
|
17 {
|
Chris@49
|
18 public:
|
Chris@49
|
19
|
Chris@49
|
20 template<typename T1>
|
Chris@49
|
21 inline static uword
|
Chris@49
|
22 helper
|
Chris@49
|
23 (
|
Chris@49
|
24 Mat<uword>& indices,
|
Chris@49
|
25 const Base<typename T1::elem_type, T1>& X
|
Chris@49
|
26 );
|
Chris@49
|
27
|
Chris@49
|
28 template<typename T1, typename op_type>
|
Chris@49
|
29 inline static uword
|
Chris@49
|
30 helper
|
Chris@49
|
31 (
|
Chris@49
|
32 Mat<uword>& indices,
|
Chris@49
|
33 const mtOp<uword, T1, op_type>& X,
|
Chris@49
|
34 const typename arma_op_rel_only<op_type>::result junk1 = 0,
|
Chris@49
|
35 const typename arma_not_cx<typename T1::elem_type>::result junk2 = 0
|
Chris@49
|
36 );
|
Chris@49
|
37
|
Chris@49
|
38 template<typename T1, typename op_type>
|
Chris@49
|
39 inline static uword
|
Chris@49
|
40 helper
|
Chris@49
|
41 (
|
Chris@49
|
42 Mat<uword>& indices,
|
Chris@49
|
43 const mtOp<uword, T1, op_type>& X,
|
Chris@49
|
44 const typename arma_op_rel_only<op_type>::result junk1 = 0,
|
Chris@49
|
45 const typename arma_cx_only<typename T1::elem_type>::result junk2 = 0
|
Chris@49
|
46 );
|
Chris@49
|
47
|
Chris@49
|
48 template<typename T1, typename T2, typename glue_type>
|
Chris@49
|
49 inline static uword
|
Chris@49
|
50 helper
|
Chris@49
|
51 (
|
Chris@49
|
52 Mat<uword>& indices,
|
Chris@49
|
53 const mtGlue<uword, T1, T2, glue_type>& X,
|
Chris@49
|
54 const typename arma_glue_rel_only<glue_type>::result junk1 = 0,
|
Chris@49
|
55 const typename arma_not_cx<typename T1::elem_type>::result junk2 = 0,
|
Chris@49
|
56 const typename arma_not_cx<typename T2::elem_type>::result junk3 = 0
|
Chris@49
|
57 );
|
Chris@49
|
58
|
Chris@49
|
59 template<typename T1, typename T2, typename glue_type>
|
Chris@49
|
60 inline static uword
|
Chris@49
|
61 helper
|
Chris@49
|
62 (
|
Chris@49
|
63 Mat<uword>& indices,
|
Chris@49
|
64 const mtGlue<uword, T1, T2, glue_type>& X,
|
Chris@49
|
65 const typename arma_glue_rel_only<glue_type>::result junk1 = 0,
|
Chris@49
|
66 const typename arma_cx_only<typename T1::elem_type>::result junk2 = 0,
|
Chris@49
|
67 const typename arma_cx_only<typename T2::elem_type>::result junk3 = 0
|
Chris@49
|
68 );
|
Chris@49
|
69
|
Chris@49
|
70 template<typename T1>
|
Chris@49
|
71 inline static void apply(Mat<uword>& out, const mtOp<uword, T1, op_find>& X);
|
Chris@49
|
72 };
|
Chris@49
|
73
|
Chris@49
|
74
|
Chris@49
|
75
|
Chris@49
|
76 //! @}
|