fn_kron.hpp
Go to the documentation of this file.
1 // Copyright (C) 2009-2010 NICTA (www.nicta.com.au)
2 // Copyright (C) 2009-2010 Conrad Sanderson
3 // Copyright (C) 2009-2010 Dimitrios Bouzas
4 //
5 // This file is part of the Armadillo C++ library.
6 // It is provided without any warranty of fitness
7 // for any purpose. You can redistribute this file
8 // and/or modify it under the terms of the GNU
9 // Lesser General Public License (LGPL) as published
10 // by the Free Software Foundation, either version 3
11 // of the License or (at your option) any later version.
12 // (see http://www.opensource.org/licenses for more info)
13 
14 
17 
18 
19 
23 template<typename T1, typename T2>
27  {
29 
30  return Glue<T1, T2, glue_kron>(A.get_ref(), B.get_ref());
31  }
32 
33 
34 
38 template<typename T, typename T1, typename T2>
39 inline
41 kron(const Base<std::complex<T>,T1>& X, const Base<T,T2>& Y)
42  {
44 
45  typedef typename std::complex<T> eT1;
46 
48 
49  const unwrap<T1> tmp1(X.get_ref());
50  const unwrap<T2> tmp2(Y.get_ref());
51 
52  const Mat<eT1>& A = tmp1.M;
53  const Mat<T >& B = tmp2.M;
54 
55  Mat<eT1> out;
56 
57  glue_kron::direct_kron(out, A, B);
58 
59  return out;
60  }
61 
62 
63 
67 template<typename T, typename T1, typename T2>
68 inline
70 kron(const Base<T,T1>& X, const Base<std::complex<T>,T2>& Y)
71  {
73 
74  typedef typename std::complex<T> eT2;
75 
77 
78  const unwrap<T1> tmp1(X.get_ref());
79  const unwrap<T2> tmp2(Y.get_ref());
80 
81  const Mat<T >& A = tmp1.M;
82  const Mat<eT2>& B = tmp2.M;
83 
84  Mat<eT2> out;
85 
86  glue_kron::direct_kron(out, A, B);
87 
88  return out;
89  }
90 
91 
92 
arma_inline const Glue< T1, T2, glue_kron > kron(const Base< typename T1::elem_type, T1 > &A, const Base< typename T1::elem_type, T2 > &B)
kronecker product of two matrices, with the matrices having the same element type ...
Definition: fn_kron.hpp:26
static void check()
arma_inline const derived & get_ref() const
Definition: Base_meat.hpp:22
static void direct_kron(Mat< eT > &out, const Mat< eT > &A, const Mat< eT > &B)
both input matrices have the same element type
#define arma_extra_debug_sigprint
Definition: debug.hpp:1116
Dense matrix class.
#define arma_inline


armadillo_matrix
Author(s):
autogenerated on Fri Apr 16 2021 02:31:57