20 #include <Eigen/Dense>
29 const Eigen::MatrixBase<D> & data) {
31 (Eigen::MatrixBase<D>::ColsAtCompileTime == 1),
32 "getMedian only takes Eigen column vectors as arguments");
33 Eigen::Matrix<typename Eigen::MatrixBase<D>::Scalar,
34 Eigen::MatrixBase<D>::RowsAtCompileTime,
36 Eigen::MatrixBase<D>::ColsAtCompileTime> m = data;
38 if (Eigen::MatrixBase<D>::SizeAtCompileTime) {
39 double * begin = m.data();
40 double * end = m.data() + m.SizeAtCompileTime;
41 double * middle = begin +
static_cast<int>(std::floor((end - begin) / 2));
42 std::nth_element(begin, middle, end);
55 #endif // MSF_TOOLS_H_