8#ifndef MATIOCPP_EIGENCONVERSIONS_H
9#define MATIOCPP_EIGENCONVERSIONS_H
13#ifdef MATIOCPP_HAS_EIGEN
23template <
typename type>
24using EigenMapWithStride = Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic>, 0, Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic>>;
26template <
typename type>
27using ConstEigenMapWithStride = Eigen::Map<const Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic>, 0, Eigen::Stride<Eigen::Dynamic, Eigen::Dynamic>>;
34template <
typename type>
35inline Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic>> to_eigen(MultiDimensionalArray<type>& input);
42template <
typename type>
43inline Eigen::Map<const Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic>> to_eigen(
const MultiDimensionalArray<type>& input);
54template <
typename type>
55inline EigenMapWithStride<type> to_eigen(MultiDimensionalArray<type>& input,
const std::vector<int>& slice);
66template <
typename type>
67inline ConstEigenMapWithStride<type> to_eigen(
const MultiDimensionalArray<type>& input,
const std::vector<int>& slice);
74template <
typename type>
75inline Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, 1>> to_eigen(Vector<type>& input);
82template <
typename type>
83inline const Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, 1>> to_eigen(
const Vector<type>& input);
91template <typename EigenDerived, typename = std::enable_if_t<Eigen::MatrixBase<EigenDerived>::RowsAtCompileTime != 1 &&
92 Eigen::MatrixBase<EigenDerived>::ColsAtCompileTime != 1>>
93inline MultiDimensionalArray<typename EigenDerived::Scalar>
make_variable(
const std::string& name,
const Eigen::MatrixBase<EigenDerived>& input);
matioCpp::Vector< typename std::remove_cv_t< typename matioCpp::SpanUtils::container_data< Vector >::type > > make_variable(const std::string &name, const Vector &input)
Conversion from a generic vector to a matioCpp::Vector.