Eigen-unsupported  3.3.7
KroneckerProduct module

## Detailed Description

This module contains an experimental Kronecker product implementation.

#include <Eigen/KroneckerProduct>

## Classes

class  Eigen::KroneckerProduct< Lhs, Rhs >
Kronecker tensor product helper class for dense matrices. More...

class  Eigen::KroneckerProductBase< Derived >
The base class of dense and sparse Kronecker product. More...

class  Eigen::KroneckerProductSparse< Lhs, Rhs >
Kronecker tensor product helper class for sparse matrices. More...

## Functions

template<typename A , typename B >
KroneckerProduct< A, B > Eigen::kroneckerProduct (const MatrixBase< A > &a, const MatrixBase< B > &b)

template<typename A , typename B >
KroneckerProductSparse< A, B > Eigen::kroneckerProduct (const EigenBase< A > &a, const EigenBase< B > &b)

## ◆ kroneckerProduct() [1/2]

template<typename A , typename B >
 KroneckerProduct Eigen::kroneckerProduct ( const MatrixBase< A > & a, const MatrixBase< B > & b )

Computes Kronecker tensor product of two dense matrices

Warning
If you want to replace a matrix by its Kronecker product with some matrix, do NOT do this:
A = kroneckerProduct(A,B); // bug!!! caused by aliasing effect
instead, use eval() to work around this:
A = kroneckerProduct(A,B).eval();
Parameters
 a Dense matrix a b Dense matrix b
Returns
Kronecker tensor product of a and b

## ◆ kroneckerProduct() [2/2]

template<typename A , typename B >
 KroneckerProductSparse Eigen::kroneckerProduct ( const EigenBase< A > & a, const EigenBase< B > & b )

Computes Kronecker tensor product of two matrices, at least one of which is sparse

Warning
If you want to replace a matrix by its Kronecker product with some matrix, do NOT do this:
A = kroneckerProduct(A,B); // bug!!! caused by aliasing effect
instead, use eval() to work around this:
A = kroneckerProduct(A,B).eval();
Parameters
 a Dense/sparse matrix a b Dense/sparse matrix b
Returns
Kronecker tensor product of a and b, stored in a sparse matrix