Mercurial > hg > segmenter-vamp-plugin
comparison armadillo-2.4.4/include/armadillo_bits/operator_cube_schur.hpp @ 0:8b6102e2a9b0
Armadillo Library
author | maxzanoni76 <max.zanoni@eecs.qmul.ac.uk> |
---|---|
date | Wed, 11 Apr 2012 09:27:06 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8b6102e2a9b0 |
---|---|
1 // Copyright (C) 2008-2010 NICTA (www.nicta.com.au) | |
2 // Copyright (C) 2008-2010 Conrad Sanderson | |
3 // | |
4 // This file is part of the Armadillo C++ library. | |
5 // It is provided without any warranty of fitness | |
6 // for any purpose. You can redistribute this file | |
7 // and/or modify it under the terms of the GNU | |
8 // Lesser General Public License (LGPL) as published | |
9 // by the Free Software Foundation, either version 3 | |
10 // of the License or (at your option) any later version. | |
11 // (see http://www.opensource.org/licenses for more info) | |
12 | |
13 | |
14 //! \addtogroup operator_cube_schur | |
15 //! @{ | |
16 | |
17 | |
18 // operator %, which we define it to do a schur product (element-wise multiplication) | |
19 | |
20 | |
21 //! element-wise multiplication of BaseCube objects with same element type | |
22 template<typename T1, typename T2> | |
23 arma_inline | |
24 const eGlueCube<T1, T2, eglue_schur> | |
25 operator% | |
26 ( | |
27 const BaseCube<typename T1::elem_type,T1>& X, | |
28 const BaseCube<typename T1::elem_type,T2>& Y | |
29 ) | |
30 { | |
31 arma_extra_debug_sigprint(); | |
32 | |
33 return eGlueCube<T1, T2, eglue_schur>(X.get_ref(), Y.get_ref()); | |
34 } | |
35 | |
36 | |
37 | |
38 //! element-wise multiplication of BaseCube objects with different element types | |
39 template<typename T1, typename T2> | |
40 inline | |
41 const mtGlueCube<typename promote_type<typename T1::elem_type, typename T2::elem_type>::result, T1, T2, glue_mixed_schur> | |
42 operator% | |
43 ( | |
44 const BaseCube< typename force_different_type<typename T1::elem_type, typename T2::elem_type>::T1_result, T1>& X, | |
45 const BaseCube< typename force_different_type<typename T1::elem_type, typename T2::elem_type>::T2_result, T2>& Y | |
46 ) | |
47 { | |
48 arma_extra_debug_sigprint(); | |
49 | |
50 typedef typename T1::elem_type eT1; | |
51 typedef typename T2::elem_type eT2; | |
52 | |
53 typedef typename promote_type<eT1,eT2>::result out_eT; | |
54 | |
55 promote_type<eT1,eT2>::check(); | |
56 | |
57 return mtGlueCube<out_eT, T1, T2, glue_mixed_schur>( X.get_ref(), Y.get_ref() ); | |
58 } | |
59 | |
60 | |
61 | |
62 //! @} |