Lint cleanup and a bug fix. Thanks to William Rucklidge. Change-Id: I963656be661020abacbff792cfc3025623503db8
diff --git a/docs/source/modeling.rst b/docs/source/modeling.rst index a5e875d..99c1e7c 100644 --- a/docs/source/modeling.rst +++ b/docs/source/modeling.rst
@@ -371,8 +371,8 @@ int N7 = 0, // Number of parameters in block 7. int N8 = 0, // Number of parameters in block 8. int N9 = 0> // Number of parameters in block 9. - class NumericDiffCostFunction - : public SizedCostFunction<kNumResiduals, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9> { + class NumericDiffCostFunction : public + SizedCostFunction<kNumResiduals, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9> { }; To get a numerically differentiated :class:`CostFunction`, you must @@ -458,15 +458,15 @@ CostFunction* cost_function = new NumericDiffCostFunction<MyScalarCostFunctor, CENTRAL, DYNAMIC, 2, 2>( - new CostFunctorWithDynamicNumResiduals(1.0), ^ ^ ^ - TAKE_OWNERSHIP, | | | - runtime_number_of_residuals); <----+ | | | - | | | | - | | | | - Actual number of residuals ------+ | | | - Indicate dynamic number of residuals --------+ | | - Dimension of x ------------------------------------+ | - Dimension of y ---------------------------------------+ + new CostFunctorWithDynamicNumResiduals(1.0), ^ ^ ^ + TAKE_OWNERSHIP, | | | + runtime_number_of_residuals); <----+ | | | + | | | | + | | | | + Actual number of residuals ------+ | | | + Indicate dynamic number of residuals --------------------+ | | + Dimension of x ------------------------------------------------+ | + Dimension of y ---------------------------------------------------+ The framework can currently accommodate cost functions of up to 10
diff --git a/include/ceres/autodiff_cost_function.h b/include/ceres/autodiff_cost_function.h index cb6801f..79f90c5 100644 --- a/include/ceres/autodiff_cost_function.h +++ b/include/ceres/autodiff_cost_function.h
@@ -186,7 +186,9 @@ CHECK_EQ(kNumResiduals, DYNAMIC) << "Can't run the dynamic-size constructor if the " << "number of residuals is not ceres::DYNAMIC."; - SizedCostFunction<kNumResiduals, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9> + SizedCostFunction<kNumResiduals, + N0, N1, N2, N3, N4, + N5, N6, N7, N8, N9> ::set_num_residuals(num_residuals); } @@ -209,7 +211,9 @@ N0, N1, N2, N3, N4, N5, N6, N7, N8, N9>::Differentiate( *functor_, parameters, - SizedCostFunction<kNumResiduals, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9> + SizedCostFunction<kNumResiduals, + N0, N1, N2, N3, N4, + N5, N6, N7, N8, N9> ::num_residuals(), residuals, jacobians);
diff --git a/include/ceres/dynamic_numeric_diff_cost_function.h b/include/ceres/dynamic_numeric_diff_cost_function.h index c30e0f1..9f70000 100644 --- a/include/ceres/dynamic_numeric_diff_cost_function.h +++ b/include/ceres/dynamic_numeric_diff_cost_function.h
@@ -108,8 +108,8 @@ << "You must call DynamicNumericDiffCostFunction::AddParameterBlock() " << "before DynamicNumericDiffCostFunction::Evaluate()."; - bool status = (*functor_)(parameters, residuals); - if (jacobians == NULL) { + const bool status = (*functor_)(parameters, residuals); + if (jacobians == NULL || !status) { return status; }
diff --git a/include/ceres/numeric_diff_cost_function.h b/include/ceres/numeric_diff_cost_function.h index 94573e5..de6b74a 100644 --- a/include/ceres/numeric_diff_cost_function.h +++ b/include/ceres/numeric_diff_cost_function.h
@@ -100,15 +100,15 @@ // // CostFunction* cost_function // = new NumericDiffCostFunction<MyScalarCostFunctor, CENTRAL, DYNAMIC, 2, 2>( -// new CostFunctorWithDynamicNumResiduals(1.0), ^ ^ ^ -// TAKE_OWNERSHIP, | | | -// runtime_number_of_residuals); <----+ | | | -// | | | | -// | | | | -// Actual number of residuals ------+ | | | -// Indicate dynamic number of residuals --------+ | | -// Dimension of x ------------------------------------+ | -// Dimension of y ---------------------------------------+ +// new CostFunctorWithDynamicNumResiduals(1.0), ^ ^ ^ +// TAKE_OWNERSHIP, | | | +// runtime_number_of_residuals); <----+ | | | +// | | | | +// | | | | +// Actual number of residuals ------+ | | | +// Indicate dynamic number of residuals --------------------+ | | +// Dimension of x ------------------------------------------------+ | +// Dimension of y ---------------------------------------------------+ // // The framework can currently accommodate cost functions of up to 10 // independent variables, and there is no limit on the dimensionality @@ -197,7 +197,9 @@ ownership_(ownership), relative_step_size_(relative_step_size) { if (kNumResiduals == DYNAMIC) { - SizedCostFunction<kNumResiduals, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9> + SizedCostFunction<kNumResiduals, + N0, N1, N2, N3, N4, + N5, N6, N7, N8, N9> ::set_num_residuals(num_residuals); } } @@ -277,7 +279,9 @@ functor_.get(), \ residuals, \ relative_step_size_, \ - SizedCostFunction<kNumResiduals, N0, N1, N2, N3, N4, N5, N6, N7, N8, N9>::num_residuals(), \ + SizedCostFunction<kNumResiduals, \ + N0, N1, N2, N3, N4, \ + N5, N6, N7, N8, N9>::num_residuals(), \ parameters_reference_copy.get(), \ jacobians[block])) { \ return false; \