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 //! @}