8#ifndef model_MulticomponentExpander_H_
9#define model_MulticomponentExpander_H_
21 template<
typename T,
int N>
22 static Eigen::Matrix<T,c,c*N>
expandSF(
const Eigen::Matrix<T,1,N>&
m)
24 Eigen::Matrix<T,c,c*N>
temp;
27 temp.template block<c,c>(0,
c*
j).setIdentity()*=
m(
j);
34 template<
typename T,
int dim,
int N>
35 static Eigen::Matrix<T,c*dim,c*N>
expandSFgrad(
const Eigen::Matrix<T,dim,N>&
m)
37 Eigen::Matrix<T,c*dim,c*N>
temp(Eigen::Matrix<T,c*dim,c*N>::Zero());
42 temp.template block<dim,1>(dim*
i,
c*
j+
i).setIdentity()=
m.col(
j);
69 template<
typename T,
int N>
76 Eigen::Matrix<T,(
c*(
c+1))/2,
c*
N>
temp(Eigen::Matrix<T,(
c*(
c+1))/2,
c*
N>::Zero());
83 for (
int j=0;
j<
c-
k;++
j)
107 template<
typename T,
int N>
108 static const Eigen::Matrix<T,1,N>&
expandSF(
const Eigen::Matrix<T,1,N>&
m)
113 template<
typename T,
int dim,
int N>
114 static const Eigen::Matrix<T,dim,N>&
expandSFgrad(
const Eigen::Matrix<T,dim,N>&
m)
119 template<
typename T,
int N>
120 static const Eigen::Matrix<T,1,N>&
expandSFdef(
const Eigen::Matrix<T,1,N>&
m)
static const Eigen::Matrix< T, 1, N > & expandSFdef(const Eigen::Matrix< T, 1, N > &m)
static const Eigen::Matrix< T, dim, N > & expandSFgrad(const Eigen::Matrix< T, dim, N > &m)
static const Eigen::Matrix< T, 1, N > & expandSF(const Eigen::Matrix< T, 1, N > &m)
static Eigen::Matrix< T,(c *(c+1))/2, c *N > expandSFdef(const Eigen::Matrix< T, c, N > &m)
static Eigen::Matrix< T, c *dim, c *N > expandSFgrad(const Eigen::Matrix< T, dim, N > &m)
static Eigen::Matrix< T, c, c *N > expandSF(const Eigen::Matrix< T, 1, N > &m)