mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-29 16:40:38 +08:00
Fix Eigen Row/ColMajor bug in NumericDiffCostFunction.
If the parameter block size is 1, asking Eigen to create a row-major matrix triggers a compile time error. Previously we were handling the case where the number of rows in the jacobian block was known statically, but the problem is present when the nummber of rows is dynamic. This CL fixes this problem. Thanks to Dominik Reitzle for reporting this. Change-Id: I99c3eec3558e66ebf4efa51c4dee8ce292ffe0c1
This commit is contained in:
committed by
Keir Mierle
parent
6c25185bb1
commit
12eb389b4e
@@ -182,6 +182,30 @@ TEST(NumericDiffCostFunction, EigenRowMajorColMajorTest) {
|
||||
cost_function.reset(
|
||||
new NumericDiffCostFunction<SizeTestingCostFunction<2,2>, CENTRAL, 2, 2>(
|
||||
new SizeTestingCostFunction<2,2>, ceres::TAKE_OWNERSHIP));
|
||||
|
||||
cost_function.reset(
|
||||
new NumericDiffCostFunction<EasyFunctor, CENTRAL, ceres::DYNAMIC, 1, 1>(
|
||||
new EasyFunctor, TAKE_OWNERSHIP, 1));
|
||||
|
||||
cost_function.reset(
|
||||
new NumericDiffCostFunction<EasyFunctor, CENTRAL, ceres::DYNAMIC, 1, 1>(
|
||||
new EasyFunctor, TAKE_OWNERSHIP, 2));
|
||||
|
||||
cost_function.reset(
|
||||
new NumericDiffCostFunction<EasyFunctor, CENTRAL, ceres::DYNAMIC, 1, 2>(
|
||||
new EasyFunctor, TAKE_OWNERSHIP, 1));
|
||||
|
||||
cost_function.reset(
|
||||
new NumericDiffCostFunction<EasyFunctor, CENTRAL, ceres::DYNAMIC, 1, 2>(
|
||||
new EasyFunctor, TAKE_OWNERSHIP, 2));
|
||||
|
||||
cost_function.reset(
|
||||
new NumericDiffCostFunction<EasyFunctor, CENTRAL, ceres::DYNAMIC, 2, 1>(
|
||||
new EasyFunctor, TAKE_OWNERSHIP, 1));
|
||||
|
||||
cost_function.reset(
|
||||
new NumericDiffCostFunction<EasyFunctor, CENTRAL, ceres::DYNAMIC, 2, 1>(
|
||||
new EasyFunctor, TAKE_OWNERSHIP, 2));
|
||||
}
|
||||
|
||||
TEST(NumericDiffCostFunction, EasyCaseFunctorCentralDifferencesAndDynamicNumResiduals) {
|
||||
|
||||
Reference in New Issue
Block a user