matio-cpp  v0.2.5
A C++ wrapper of the matio library, with memory ownership handling, to read and write .mat files.
EigenConversions.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2022 Fondazione Istituto Italiano di Tecnologia
3  *
4  * This software may be modified and distributed under the terms of the
5  * BSD-2-Clause license (https://opensource.org/licenses/BSD-2-Clause).
6  */
7 
8 #ifndef MATIOCPP_EIGENCONVERSIONS_H
9 #define MATIOCPP_EIGENCONVERSIONS_H
10 
12 
13 #ifdef MATIOCPP_HAS_EIGEN
14 
15 #include <matioCpp/Vector.h>
17 
18 #include <Eigen/Core>
19 
20 namespace matioCpp
21 {
22 
28 template <typename type>
29 inline Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic>> to_eigen(MultiDimensionalArray<type>& input);
30 
36 template <typename type>
37 inline const Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, Eigen::Dynamic>> to_eigen(const MultiDimensionalArray<type>& input);
38 
44 template <typename type>
45 inline Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, 1>> to_eigen(Vector<type>& input);
46 
52 template <typename type>
53 inline const Eigen::Map<Eigen::Matrix<type, Eigen::Dynamic, 1>> to_eigen(const Vector<type>& input);
54 
61 template <typename EigenDerived, typename = std::enable_if_t<Eigen::MatrixBase<EigenDerived>::RowsAtCompileTime != 1 &&
62  Eigen::MatrixBase<EigenDerived>::ColsAtCompileTime != 1>>
63 inline MultiDimensionalArray<typename EigenDerived::Scalar> make_variable(const std::string& name, const Eigen::MatrixBase<EigenDerived>& input);
64 
65 }
66 
68 
69 #endif
70 
71 
72 #endif // MATIOCPP_EIGENCONVERSIONS_H
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.