Evaluate ResidualBlocks without LossFunction if needed. 1. Add the ability to evaluate the problem without loss function. 2. Remove static Evaluator::Evaluate 3. Refactor the common code from problem_test.cc and evaluator_test.cc into evaluator_test_utils.cc Change-Id: I1aa841580afe91d288fbb65288b0ffdd1e43e827
diff --git a/internal/ceres/problem_impl.cc b/internal/ceres/problem_impl.cc index 1fb9e39..21d1144 100644 --- a/internal/ceres/problem_impl.cc +++ b/internal/ceres/problem_impl.cc
@@ -651,7 +651,12 @@ program.ParameterBlocksToStateVector(parameters.data()); double tmp_cost = 0; - bool status = evaluator->Evaluate(parameters.data(), + + Evaluator::EvaluateOptions evaluator_evaluate_options; + evaluator_evaluate_options.apply_loss_function = + evaluate_options.apply_loss_function; + bool status = evaluator->Evaluate(evaluator_evaluate_options, + parameters.data(), &tmp_cost, residuals != NULL ? &(*residuals)[0] : NULL, gradient != NULL ? &(*gradient)[0] : NULL,