diff options
Diffstat (limited to 'extern/ceres/include/ceres/internal/eigen.h')
-rw-r--r-- | extern/ceres/include/ceres/internal/eigen.h | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/extern/ceres/include/ceres/internal/eigen.h b/extern/ceres/include/ceres/internal/eigen.h index 7138804ace4..59545dfd9c9 100644 --- a/extern/ceres/include/ceres/internal/eigen.h +++ b/extern/ceres/include/ceres/internal/eigen.h @@ -52,40 +52,27 @@ typedef Eigen::Matrix<double, Eigen::ColMajor> ColMajorMatrix; typedef Eigen::Map<ColMajorMatrix, 0, - Eigen::Stride<Eigen::Dynamic, 1> > ColMajorMatrixRef; + Eigen::Stride<Eigen::Dynamic, 1>> ColMajorMatrixRef; typedef Eigen::Map<const ColMajorMatrix, 0, - Eigen::Stride<Eigen::Dynamic, 1> > ConstColMajorMatrixRef; - - + Eigen::Stride<Eigen::Dynamic, 1>> ConstColMajorMatrixRef; // C++ does not support templated typdefs, thus the need for this // struct so that we can support statically sized Matrix and Maps. -template <int num_rows = Eigen::Dynamic, int num_cols = Eigen::Dynamic> + template <int num_rows = Eigen::Dynamic, int num_cols = Eigen::Dynamic> struct EigenTypes { - typedef Eigen::Matrix <double, num_rows, num_cols, Eigen::RowMajor> - Matrix; - - typedef Eigen::Map< - Eigen::Matrix<double, num_rows, num_cols, Eigen::RowMajor> > - MatrixRef; - - typedef Eigen::Matrix <double, num_rows, 1> - Vector; - - typedef Eigen::Map < - Eigen::Matrix<double, num_rows, 1> > - VectorRef; - - - typedef Eigen::Map< - const Eigen::Matrix<double, num_rows, num_cols, Eigen::RowMajor> > - ConstMatrixRef; - - typedef Eigen::Map < - const Eigen::Matrix<double, num_rows, 1> > - ConstVectorRef; + typedef Eigen::Matrix<double, + num_rows, + num_cols, + num_cols == 1 ? Eigen::ColMajor : Eigen::RowMajor> + Matrix; + + typedef Eigen::Map<Matrix> MatrixRef; + typedef Eigen::Map<const Matrix> ConstMatrixRef; + typedef Eigen::Matrix<double, num_rows, 1> Vector; + typedef Eigen::Map<Eigen::Matrix<double, num_rows, 1>> VectorRef; + typedef Eigen::Map<const Eigen::Matrix<double, num_rows, 1>> ConstVectorRef; }; } // namespace ceres |