trajopt
 All Classes Namespaces Files Functions Variables Typedefs Pages
eigen_slicing.hpp
1 #include <Eigen/Core>
2 #include <vector>
3 
4 namespace util {
5 
6 template <typename VectorT>
7 VectorT fancySlice(const VectorT& x, const std::vector<int>& inds) {
8  VectorT out(inds.size());
9  for (int i=0; i < inds.size(); ++i) out[i] = x[inds[i]];
10  return out;
11 }
12 
13 template <typename VectorT>
14 std::vector<int> flatnonzero(const VectorT& x) {
15  std::vector<int> out;
16  for (int i=0; i < x.size(); ++i) if (x[i] != 0) out.push_back(i);
17  return out;
18 }
19 
20 
21 }