diff options
Diffstat (limited to 'extern/ceres/include/ceres/numeric_diff_options.h')
-rw-r--r-- | extern/ceres/include/ceres/numeric_diff_options.h | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/extern/ceres/include/ceres/numeric_diff_options.h b/extern/ceres/include/ceres/numeric_diff_options.h index 119c8a86596..64919ed5ab1 100644 --- a/extern/ceres/include/ceres/numeric_diff_options.h +++ b/extern/ceres/include/ceres/numeric_diff_options.h @@ -1,5 +1,5 @@ // Ceres Solver - A fast non-linear least squares minimizer -// Copyright 2015 Google Inc. All rights reserved. +// Copyright 2019 Google Inc. All rights reserved. // http://ceres-solver.org/ // // Redistribution and use in source and binary forms, with or without @@ -32,23 +32,17 @@ #ifndef CERES_PUBLIC_NUMERIC_DIFF_OPTIONS_H_ #define CERES_PUBLIC_NUMERIC_DIFF_OPTIONS_H_ +#include "ceres/internal/port.h" + namespace ceres { // Options pertaining to numeric differentiation (e.g., convergence criteria, // step sizes). struct CERES_EXPORT NumericDiffOptions { - NumericDiffOptions() { - relative_step_size = 1e-6; - ridders_relative_initial_step_size = 1e-2; - max_num_ridders_extrapolations = 10; - ridders_epsilon = 1e-12; - ridders_step_shrink_factor = 2.0; - } - // Numeric differentiation step size (multiplied by parameter block's // order of magnitude). If parameters are close to zero, the step size // is set to sqrt(machine_epsilon). - double relative_step_size; + double relative_step_size = 1e-6; // Initial step size for Ridders adaptive numeric differentiation (multiplied // by parameter block's order of magnitude). @@ -59,19 +53,19 @@ struct CERES_EXPORT NumericDiffOptions { // Note: For Ridders' method to converge, the step size should be initialized // to a value that is large enough to produce a significant change in the // function. As the derivative is estimated, the step size decreases. - double ridders_relative_initial_step_size; + double ridders_relative_initial_step_size = 1e-2; // Maximal number of adaptive extrapolations (sampling) in Ridders' method. - int max_num_ridders_extrapolations; + int max_num_ridders_extrapolations = 10; // Convergence criterion on extrapolation error for Ridders adaptive // differentiation. The available error estimation methods are defined in // NumericDiffErrorType and set in the "ridders_error_method" field. - double ridders_epsilon; + double ridders_epsilon = 1e-12; // The factor in which to shrink the step size with each extrapolation in // Ridders' method. - double ridders_step_shrink_factor; + double ridders_step_shrink_factor = 2.0; }; } // namespace ceres |