17 template<
typename T,
int COLS,
int ROWS>
20 for(
unsigned int i = 0; i < COLS; ++i)
21 for(
unsigned int k = 0; k < ROWS; ++k)
26 template<
typename T,
unsigned int COLS,
unsigned int ROWS>
28 Eigen::Matrix<T,ROWS,COLS> result;
29 for(
unsigned int i = 0; i < COLS; ++i)
30 for(
unsigned int k = 0; k < ROWS; ++k)
31 result(k,i) = ICL(i,k);
37 template<
typename T,
unsigned int COLS,
unsigned int ROWS>
38 inline Eigen::Map<Eigen::Matrix<T,ROWS,COLS,Eigen::RowMajor>,Eigen::Aligned,Eigen::Stride<0,0> >
40 Eigen::Map<Eigen::Matrix<T,ROWS,COLS,Eigen::RowMajor>,Eigen::Aligned,Eigen::Stride<0,0> > result(ICL.
data());
44 template<
typename T,
unsigned int COLS,
unsigned int ROWS>
45 inline Eigen::Map<Eigen::Matrix<T,ROWS,COLS,Eigen::ColMajor>,Eigen::Unaligned,Eigen::Stride<1,COLS> >
47 Eigen::Map<Eigen::Matrix<T,ROWS,COLS,Eigen::ColMajor>,Eigen::Unaligned,Eigen::Stride<1,COLS> > result(ICL.
data());
56 for(uint i = 0; i < E.cols(); ++i)
57 for(uint k = 0; k < E.rows(); ++k)
64 Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic> result(E.
rows(),E.
cols());
65 for(uint i = 0; i < E.
cols(); ++i)
66 for(uint k = 0; k < E.
rows(); ++k)
74 inline Eigen::Map<Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor>,Eigen::Aligned >
76 Eigen::Map<Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor>,Eigen::Aligned> result(ICL.
data(),ICL.
rows(),ICL.
cols());
81 inline Eigen::Map<Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic,Eigen::ColMajor>,Eigen::Unaligned,Eigen::Stride<Eigen::Dynamic,Eigen::Dynamic> >
83 Eigen::Map<Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic,Eigen::ColMajor>,Eigen::Unaligned,Eigen::Stride<Eigen::Dynamic,Eigen::Dynamic> > result(ICL.
data(),ICL.
rows(),ICL.
cols(),Eigen::Stride<Eigen::Dynamic,Eigen::Dynamic>(1,ICL.
cols()));
89 #define ICL_INSTANCIATE_ICL_TO_EIGEN(Type,Size) \ 90 template Eigen::Matrix<Type,Size,Size> iclToEigen<Type,Size,Size>(icl::math::FixedMatrix<Type,Size,Size> const &);\ 91 template Eigen::Matrix<Type,Size,1> iclToEigen<Type,1,Size>(icl::math::FixedMatrix<Type,1,Size> const &);\ 92 template Eigen::Matrix<Type,1,Size> iclToEigen<Type,Size,1>(icl::math::FixedMatrix<Type,Size,1> const &);\ 93 template icl::math::FixedMatrix<Type,Size,Size> eigenToICL<Type,Size,Size>(Eigen::Matrix<Type,Size,Size> const &);\ 94 template icl::math::FixedMatrix<Type,1,Size> eigenToICL<Type,1,Size>(Eigen::Matrix<Type,Size,1> const &);\ 95 template icl::math::FixedMatrix<Type,Size,1> eigenToICL<Type,Size,1>(Eigen::Matrix<Type,1,Size> const &); 97 #define ICL_INSTANCIATE_ICL_TO_EIGEN_DYN(Type) \ 98 template icl::math::DynMatrix<Type> eigenToICLDyn<Type>(Eigen::Matrix<Type,Eigen::Dynamic,Eigen::Dynamic> const &); \ 99 template Eigen::Matrix<Type,Eigen::Dynamic,Eigen::Dynamic> iclToEigenDyn<Type>(icl::math::DynMatrix<Type> const &); 103 #define ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW(Type,Size,TypeSuffix) \ 104 typedef Eigen::Map<Eigen::Matrix<Type,Size,Size,Eigen::ColMajor>,Eigen::Unaligned,Eigen::Stride<1,Size> > \ 105 ICLEigenMapColMajor##Size##TypeSuffix; \ 106 typedef Eigen::Map<Eigen::Matrix<Type,Size,Size,Eigen::RowMajor>,Eigen::Aligned,Eigen::Stride<0,0> > \ 107 ICLEigenMapRowMajor##Size##TypeSuffix; \ 108 template ICLEigenMapRowMajor##Size##TypeSuffix iclToEigenRowMajorShallow<Type,Size,Size>(icl::math::FixedMatrix<Type,Size,Size> &); \ 109 template ICLEigenMapColMajor##Size##TypeSuffix iclToEigenColMajorShallow<Type,Size,Size>(icl::math::FixedMatrix<Type,Size,Size> &); 111 #define ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW_DYN(Type,TypeSuffix) \ 112 typedef Eigen::Map<Eigen::Matrix<Type,Eigen::Dynamic,Eigen::Dynamic,Eigen::ColMajor>,Eigen::Unaligned,Eigen::Stride<Eigen::Dynamic,Eigen::Dynamic> > \ 113 ICLEigenMapColMajorDyn##TypeSuffix; \ 114 typedef Eigen::Map<Eigen::Matrix<Type,Eigen::Dynamic,Eigen::Dynamic,Eigen::RowMajor>,Eigen::Aligned> \ 115 ICLEigenMapRowMajorDyn##TypeSuffix; \ 116 template ICLEigenMapColMajorDyn##TypeSuffix iclToEigenDynColMajorShallow(icl::math::DynMatrix<Type> &ICL); \ 117 template ICLEigenMapRowMajorDyn##TypeSuffix iclToEigenDynRowMajorShallow(icl::math::DynMatrix<Type> &ICL); 119 #define ICL_INSTANCIATE_ICL_TO_EIGEN_ALL_SIZES(Type,TypeSuffix) \ 120 ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW(Type,2,TypeSuffix)\ 121 ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW(Type,3,TypeSuffix)\ 122 ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW(Type,4,TypeSuffix)\ 123 ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW_DYN(Type,TypeSuffix)\ 124 ICL_INSTANCIATE_ICL_TO_EIGEN_DYN(Type)\ 125 ICL_INSTANCIATE_ICL_TO_EIGEN(Type,2)\ 126 ICL_INSTANCIATE_ICL_TO_EIGEN(Type,3)\ 127 ICL_INSTANCIATE_ICL_TO_EIGEN(Type,4) 129 ICL_INSTANCIATE_ICL_TO_EIGEN_ALL_SIZES(
int,i)
130 ICL_INSTANCIATE_ICL_TO_EIGEN_ALL_SIZES(
float,f)
131 ICL_INSTANCIATE_ICL_TO_EIGEN_ALL_SIZES(
double,d)
133 #undef ICL_INSTANCIATE_ICL_TO_EIGEN_ALL_SIZES 134 #undef ICL_INSTANCIATE_ICL_TO_EIGEN_DYN 135 #undef ICL_INSTANCIATE_ICL_TO_EIGEN 136 #undef ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW 137 #undef ICL_INSTANCIATE_ICL_TO_EIGEN_SHALLOW_DYN 142 #endif // ICL_HAVE_EIGEN3 Powerful and highly flexible matrix class implementation.
Definition: FixedMatrix.h:172
undocument this line if you encounter any issues!
Definition: Any.h:37
Highly flexible and optimized matrix class implementation.
Definition: DynMatrix.h:81
T * data()
return internal data pointer
Definition: FixedMatrix.h:453
unsigned int rows() const
height of the matrix (number of rows)
Definition: DynMatrix.h:471
unsigned int cols() const
width of the matrix (number of columns)
Definition: DynMatrix.h:474
T * data()
internal data pointer
Definition: DynMatrix.h:477