Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ Below is a list of commonly used parameters, their internal keys, and descriptio
| `OptimalityNorm` | `optimality_norm` | string | `"l2"` | Norm for optimality criteria. Use `"l2"` for L2 norm or `"linf"` for infinity norm. |
| `OptimalityTol` | `eps_optimal_relative` | float | `1e-4` | Relative tolerance for optimality gap. Solver stops if the relative primal-dual gap ≤ this value. |
| `FeasibilityTol` | `eps_feasible_relative` | float | `1e-4` | Relative feasibility tolerance for primal/dual residuals. |
| `InfeasibleTol` | `eps_infeasible_relative` | float | `1e-14` | Relative tolerance on the ray certificate for declaring primal/dual infeasibility. |
| `InfeasibleTol` | `eps_infeasible_relative` | float | `1e-10` | Relative tolerance on the ray certificate for declaring primal/dual infeasibility. |
| `GeoMeanIters` | `geometric_mean_iterations` | int | `12` | Number of iterations of geometric-mean scaling. Improves numerical conditioning. |
| `RuizIters` | `l_inf_ruiz_iterations` | int | `10` | Number of iterations of L∞ Ruiz scaling. Improves numerical conditioning. |
| `UsePCAlpha` | `has_pock_chambolle_alpha` | bool | `True` | Whether to use the Pock–Chambolle α step size adjustment. |
Expand Down
7 changes: 4 additions & 3 deletions src/utils.cu
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ void set_default_parameters(pdhg_parameters_t *params)
params->termination_criteria.time_sec_limit = 3600.0;
params->termination_criteria.iteration_limit = INT32_MAX;
params->termination_criteria.eps_feas_polish_relative = 1e-6;
params->termination_criteria.eps_infeasible_relative = 1e-14;
params->termination_criteria.eps_infeasible_relative = 1e-10;

params->restart_params.artificial_restart_threshold = 0.36;
params->restart_params.sufficient_reduction_for_restart = 0.2;
Expand Down Expand Up @@ -1049,9 +1049,10 @@ void compute_infeasibility_information(pdhg_solver_state_t *state)
state->variable_rescaling);

state->max_primal_ray_infeasibility =
get_vector_inf_norm(state->blas_handle, state->num_constraints, state->primal_slack);
get_vector_inf_norm(state->blas_handle, state->num_constraints, state->primal_slack) /
state->constraint_bound_rescaling;
double dual_slack_norm = get_vector_inf_norm(state->blas_handle, state->num_variables, state->dual_slack);
state->max_dual_ray_infeasibility = dual_slack_norm;
state->max_dual_ray_infeasibility = dual_slack_norm / state->objective_vector_rescaling;

double scaling_factor = fmax(dual_ray_inf_norm, dual_slack_norm);
if (scaling_factor > 0.0)
Expand Down
Loading