Lines Matching refs:Options
69 "Options are: levenberg_marquardt, dogleg.");
70 DEFINE_string(dogleg, "traditional_dogleg", "Options are: traditional_dogleg,"
76 DEFINE_string(blocks_for_inner_iterations, "automatic", "Options are: "
79 DEFINE_string(linear_solver, "sparse_schur", "Options are: "
82 DEFINE_string(preconditioner, "jacobi", "Options are: "
89 "Options are: suite_sparse and cx_sparse.");
91 "Options are: eigen and lapack.");
92 DEFINE_string(ordering, "automatic", "Options are: automatic, user.");
125 void SetLinearSolver(Solver::Options* options) {
127 &options->linear_solver_type));
129 &options->preconditioner_type));
131 &options->visibility_clustering_type));
134 &options->sparse_linear_algebra_library_type));
137 &options->dense_linear_algebra_library_type));
138 options->num_linear_solver_threads = FLAGS_num_threads;
141 void SetOrdering(BALProblem* bal_problem, Solver::Options* options) {
150 if (options->use_inner_iterations) {
153 options->inner_iteration_ordering.reset(new ParameterBlockOrdering);
155 options->inner_iteration_ordering->AddElementToGroup(cameras + camera_block_size * i, 0);
159 options->inner_iteration_ordering.reset(new ParameterBlockOrdering);
161 options->inner_iteration_ordering->AddElementToGroup(points + point_block_size * i, 0);
165 options->inner_iteration_ordering.reset(new ParameterBlockOrdering);
167 options->inner_iteration_ordering->AddElementToGroup(cameras + camera_block_size * i, 0);
170 options->inner_iteration_ordering->AddElementToGroup(points + point_block_size * i, 1);
174 options->inner_iteration_ordering.reset(new ParameterBlockOrdering);
176 options->inner_iteration_ordering->AddElementToGroup(cameras + camera_block_size * i, 1);
179 options->inner_iteration_ordering->AddElementToGroup(points + point_block_size * i, 0);
195 // This can either be done by specifying Options::ordering_type =
199 // Options::num_eliminate_blocks.
223 options->linear_solver_ordering.reset(ordering);
226 void SetMinimizerOptions(Solver::Options* options) {
227 options->max_num_iterations = FLAGS_num_iterations;
228 options->minimizer_progress_to_stdout = true;
229 options->num_threads = FLAGS_num_threads;
230 options->eta = FLAGS_eta;
231 options->max_solver_time_in_seconds = FLAGS_max_solver_time;
232 options->use_nonmonotonic_steps = FLAGS_nonmonotonic_steps;
234 options->minimizer_type = ceres::LINE_SEARCH;
238 &options->trust_region_strategy_type));
239 CHECK(StringToDoglegType(FLAGS_dogleg, &options->dogleg_type));
240 options->use_inner_iterations = FLAGS_inner_iterations;
244 Solver::Options* options) {
245 SetMinimizerOptions(options);
246 SetLinearSolver(options);
247 SetOrdering(bal_problem, options);
320 Solver::Options options;
321 SetSolverOptionsFromFlags(&bal_problem, &options);
322 options.gradient_tolerance = 1e-16;
323 options.function_tolerance = 1e-16;
325 Solve(options, &problem, &summary);