Skip to content

Commit aa23cb8

Browse files
committed
Added small beta explicit optimization termination
1 parent 07ea778 commit aa23cb8

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/optimization/explicit_optimization.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,13 @@ std::unique_ptr<DifferentiableConeMetric> backtracking_domain_line_search(
418418
(step_gradient.dot(descent_direction) > 0)) {
419419
if (beta < 1e-16) {
420420
spdlog::get("optimize_metric")->warn("Terminating line step as beta too small");
421-
return m.clone_cone_metric();
421+
return compute_domain_coordinate_metric(
422+
m,
423+
constraint_domain_matrix,
424+
constraint_codomain_matrix,
425+
domain_coords,
426+
init_codomain_coords,
427+
proj_params);
422428
}
423429

424430
// Reduce beta
@@ -607,6 +613,11 @@ VectorX optimize_domain_coordinates(
607613
beta);
608614
}
609615

616+
if (beta < 1e-16) {
617+
spdlog::get("optimize_metric")->warn("Terminating optimization as beta too small");
618+
break;
619+
}
620+
610621
// Update for next iteration
611622
prev_domain_coords = domain_coords;
612623
domain_coords = optimized_domain_coords;

0 commit comments

Comments
 (0)