18#ifndef __NNFW_CKER_EIGEN_UTILS_H__
19#define __NNFW_CKER_EIGEN_UTILS_H__
37template <
typename Scalar>
39 std::is_const<Scalar>::value,
40 Eigen::Map<const Eigen::Matrix<typename std::remove_const<Scalar>::type, Eigen::Dynamic, 1>>,
41 Eigen::Map<Eigen::Matrix<Scalar, Eigen::Dynamic, 1>>>::type;
52template <
typename Scalar>
54 std::is_const<Scalar>::value,
56 const Eigen::Matrix<typename std::remove_const<Scalar>::type, Eigen::Dynamic, Eigen::Dynamic>>,
57 Eigen::Map<Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>>>::type;
59template <
typename Scalar>
63 const int rows = shape.
Dims(dims_count - 1);
int32_t DimensionsCount() const
int32_t Dims(int i) const
MatrixMap< Scalar > MapAsMatrixWithLastDimAsRows(Scalar *data, const Shape &shape)
int FlatSizeSkipDim(const Shape &shape, int skip_dim)
typename std::conditional< std::is_const< Scalar >::value, Eigen::Map< const Eigen::Matrix< typename std::remove_const< Scalar >::type, Eigen::Dynamic, 1 > >, Eigen::Map< Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > > >::type VectorMap
typename std::conditional< std::is_const< Scalar >::value, Eigen::Map< const Eigen::Matrix< typename std::remove_const< Scalar >::type, Eigen::Dynamic, Eigen::Dynamic > >, Eigen::Map< Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > > >::type MatrixMap
VectorMap< Scalar > MapAsVector(Scalar *data, const Shape &shape)