Functions

Fn_kron

//! More...

Functions

template<typename T1 , typename T2 >
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
template<typename T , typename T1 , typename T2 >
Mat< typename eT_promoter< T1,
T2 >::eT > 
kron (const Base< std::complex< T >, T1 > &X, const Base< T, T2 > &Y)
 //! kronecker product of two matrices, //! with the matrices having different element types
template<typename T , typename T1 , typename T2 >
Mat< typename eT_promoter< T1,
T2 >::eT > 
kron (const Base< T, T1 > &X, const Base< std::complex< T >, T2 > &Y)
 //! kronecker product of two matrices, //! with the matrices having different element types

Detailed Description

//!


Function Documentation

template<typename T1 , typename T2 >
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 at line 29 of file fn_kron.hpp.

References Base< elem_type, derived >::get_ref().

  {
  arma_extra_debug_sigprint();

  return Glue<T1, T2, glue_kron>(A.get_ref(), B.get_ref());
  }

template<typename T , typename T1 , typename T2 >
Mat<typename eT_promoter<T1,T2>::eT> kron ( const Base< std::complex< T >, T1 > &  X,
const Base< T, T2 > &  Y 
) [inline]

//! kronecker product of two matrices, //! with the matrices having different element types

Definition at line 44 of file fn_kron.hpp.

References promote_type< T1, T2 >::check(), glue_kron::direct_kron(), and Base< elem_type, derived >::get_ref().

  {
  arma_extra_debug_sigprint();

  typedef typename std::complex<T> eT1;

  promote_type<eT1,T>::check();
  
  const unwrap<T1> tmp1(X.get_ref());
  const unwrap<T2> tmp2(Y.get_ref());
  
  const Mat<eT1>& A = tmp1.M;
  const Mat<T  >& B = tmp2.M;

  Mat<eT1> out;
  
  glue_kron::direct_kron(out, A, B);
  
  return out;
  }

template<typename T , typename T1 , typename T2 >
Mat<typename eT_promoter<T1,T2>::eT> kron ( const Base< T, T1 > &  X,
const Base< std::complex< T >, T2 > &  Y 
) [inline]

//! kronecker product of two matrices, //! with the matrices having different element types

Definition at line 73 of file fn_kron.hpp.

References promote_type< T1, T2 >::check(), glue_kron::direct_kron(), and Base< elem_type, derived >::get_ref().

  {
  arma_extra_debug_sigprint();

  typedef typename std::complex<T> eT2;  

  promote_type<T,eT2>::check();
  
  const unwrap<T1> tmp1(X.get_ref());
  const unwrap<T2> tmp2(Y.get_ref());
  
  const Mat<T  >& A = tmp1.M;
  const Mat<eT2>& B = tmp2.M;

  Mat<eT2> out;
  
  glue_kron::direct_kron(out, A, B);
  
  return out;
  }