eigen_ref.cpp
Go to the documentation of this file.
1 /*
2  * Copyright 2014-2019, CNRS
3  * Copyright 2018-2020, INRIA
4  */
5 
6 #include "eigenpy/eigenpy.hpp"
7 #include <iostream>
8 
9 using namespace Eigen;
10 using namespace eigenpy;
11 
12 template<typename MatType>
13 void printMatrix(const Eigen::Ref<const MatType> mat)
14 {
15  if(MatType::IsVectorAtCompileTime)
16  std::cout << "isVector" << std::endl;
17  std::cout << "size: cols " << mat.cols() << " rows " << mat.rows() << std::endl;
18  std::cout << mat << std::endl;
19 }
20 
21 template<typename VecType>
22 void printVector(const Eigen::Ref<const VecType> & vec)
23 {
24  EIGEN_STATIC_ASSERT_VECTOR_ONLY(VecType);
25  printMatrix(vec);
26 }
27 
28 template<typename MatType>
29 void setOnes(Eigen::Ref<MatType> mat)
30 {
31  mat.setOnes();
32 }
33 
34 template<typename MatType>
35 void fill(Eigen::Ref<MatType> mat, const typename MatType::Scalar & value)
36 {
37  mat.fill(value);
38 }
39 
40 template<typename MatType>
41 Eigen::Ref<MatType> asRef(const int rows, const int cols)
42 {
43  static MatType mat(rows,cols);
44  std::cout << "mat:\n" << mat << std::endl;
45  return mat;
46 }
47 
49 {
50  namespace bp = boost::python;
52 
53  bp::def("printMatrix", printMatrix<Vector3d>);
54  bp::def("printMatrix", printMatrix<VectorXd>);
55  bp::def("printMatrix", printMatrix<MatrixXd>);
56 
57  bp::def("printVector", printVector<VectorXd>);
58  bp::def("printRowVector", printVector<RowVectorXd>);
59 
60  bp::def("setOnes", setOnes<Vector3d>);
61  bp::def("setOnes", setOnes<VectorXd>);
62  bp::def("setOnes", setOnes<MatrixXd>);
63 
64  bp::def("fillVec3", fill<Vector3d>);
65  bp::def("fillVec", fill<VectorXd>);
66  bp::def("fill", fill<MatrixXd>);
67 
68  bp::def("asRef", asRef<MatrixXd>);
69 }
Eigen::Ref< MatType > asRef(const int rows, const int cols)
Definition: eigen_ref.cpp:41
Definition: complex.cpp:7
BOOST_PYTHON_MODULE(eigen_ref)
Definition: eigen_ref.cpp:48
void EIGENPY_DLLAPI enableEigenPy()
Definition: eigenpy.cpp:29
void printMatrix(const Eigen::Ref< const MatType > mat)
Definition: eigen_ref.cpp:13
void setOnes(Eigen::Ref< MatType > mat)
Definition: eigen_ref.cpp:29
void printVector(const Eigen::Ref< const VecType > &vec)
Definition: eigen_ref.cpp:22
void fill(Eigen::Ref< MatType > mat, const typename MatType::Scalar &value)
Definition: eigen_ref.cpp:35


eigenpy
Author(s): Justin Carpentier, Nicolas Mansard
autogenerated on Sat Apr 17 2021 02:37:59