Nothing
#####
## DO NOT EDIT THIS FILE!! EDIT THE SOURCE INSTEAD: rsrc_tree/settings.R
#####
## CVXPY SOURCE: cvxpy/settings.py
## Global settings and constants for CVXR
# -- Solver names ------------------------------------------------------
#' Solver Name Constants
#'
#' Character string constants identifying the available solvers.
#'
#' @name solver-constants
#' @returns A character string.
NULL
#' @rdname solver-constants
#' @export
SCS_SOLVER <- "SCS"
#' @rdname solver-constants
#' @export
OSQP_SOLVER <- "OSQP"
#' @rdname solver-constants
#' @export
CLARABEL_SOLVER <- "CLARABEL"
#' @rdname solver-constants
#' @export
HIGHS_SOLVER <- "HIGHS"
#' @rdname solver-constants
#' @export
MOSEK_SOLVER <- "MOSEK"
#' @rdname solver-constants
#' @export
GUROBI_SOLVER <- "GUROBI"
#' @rdname solver-constants
#' @export
GLPK_SOLVER <- "GLPK"
#' @rdname solver-constants
#' @export
GLPK_MI_SOLVER <- "GLPK_MI"
#' @rdname solver-constants
#' @export
ECOS_SOLVER <- "ECOS"
#' @rdname solver-constants
#' @export
ECOS_BB_SOLVER <- "ECOS_BB"
#' @rdname solver-constants
#' @export
CPLEX_SOLVER <- "CPLEX"
#' @rdname solver-constants
#' @export
CVXOPT_SOLVER <- "CVXOPT"
#' @rdname solver-constants
#' @export
PIQP_SOLVER <- "PIQP"
# -- DCP curvature strings --------------------------------------------
AFFINE <- "AFFINE"
CONVEX <- "CONVEX"
CONCAVE <- "CONCAVE"
UNKNOWN_CURVATURE <- "UNKNOWN"
# -- Sign strings -----------------------------------------------------
ZERO_SIGN <- "ZERO"
NONNEG_SIGN <- "NONNEGATIVE"
NONPOS_SIGN <- "NONPOSITIVE"
UNKNOWN_SIGN <- "UNKNOWN"
# -- Status strings ---------------------------------------------------
#' Solution Status Constants
#'
#' Character string constants representing the possible solution statuses
#' returned by \code{\link{problem_status}}.
#'
#' @name status-constants
#' @returns A character string.
#' @seealso \code{\link{status}}, \code{\link{psolve}}
NULL
#' @rdname status-constants
#' @export
OPTIMAL <- "optimal"
#' @rdname status-constants
#' @export
INFEASIBLE <- "infeasible"
#' @rdname status-constants
#' @export
UNBOUNDED <- "unbounded"
#' @rdname status-constants
#' @export
SOLVER_ERROR <- "solver_error"
#' @rdname status-constants
#' @export
OPTIMAL_INACCURATE <- "optimal_inaccurate"
#' @rdname status-constants
#' @export
INFEASIBLE_INACCURATE <- "infeasible_inaccurate"
#' @rdname status-constants
#' @export
UNBOUNDED_INACCURATE <- "unbounded_inaccurate"
# -- Numerical tolerances ---------------------------------------------
EIGVAL_TOL <- 1e-10
PSD_NSD_PROJECTION_TOL <- 1e-8
SPARSE_NNZFRAC <- 0.1 # below this fraction, treat as sparse
ATOM_EVAL_TOL <- 1e-4 # tolerance for atom numeric evaluation (CVXPY settings.py)
# -- Naming prefixes ------------------------------------------------
## CVXPY SOURCE: settings.py lines 37-38
VAR_PREFIX <- "var"
PARAM_PREFIX <- "param"
# -- Curvature string (extra) ---------------------------------------
## CVXPY SOURCE: settings.py line 173
CONSTANT_CURV <- "CONSTANT"
# -- Projection tolerances ------------------------------------------
## CVXPY SOURCE: settings.py lines 204-206
GENERAL_PROJECTION_TOL <- 1e-10
SPARSE_PROJECTION_TOL <- 1e-10
# -- Constraint type IDs ------------------------------------------
## CVXPY SOURCE: settings.py line 125
## EQ, LEQ, SOC, SOC_EW, PSD, EXP, BOOL, INT = range(8)
CONSTR_ID_EQ <- 0L
CONSTR_ID_LEQ <- 1L
CONSTR_ID_SOC <- 2L
CONSTR_ID_SOC_EW <- 3L
CONSTR_ID_PSD <- 4L
CONSTR_ID_EXP <- 5L
CONSTR_ID_BOOL <- 6L
CONSTR_ID_INT <- 7L
# -- Cone dimension keys ------------------------------------------
## CVXPY SOURCE: settings.py lines 133-137
EQ_DIM <- "f"
LEQ_DIM <- "l"
SOC_DIM <- "q"
PSD_DIM <- "s"
EXP_DIM <- "ep"
# -- Status groups ------------------------------------------------
## CVXPY SOURCE: settings.py lines 58-68
#' @rdname status-constants
#' @export
USER_LIMIT <- "user_limit"
#' @rdname status-constants
#' @export
INFEASIBLE_OR_UNBOUNDED <- "infeasible_or_unbounded"
SOLUTION_PRESENT <- c(OPTIMAL, OPTIMAL_INACCURATE, USER_LIMIT)
INF_OR_UNB <- c(INFEASIBLE, INFEASIBLE_INACCURATE,
UNBOUNDED, UNBOUNDED_INACCURATE,
INFEASIBLE_OR_UNBOUNDED)
INACCURATE_STATUS <- c(OPTIMAL_INACCURATE, INFEASIBLE_INACCURATE,
UNBOUNDED_INACCURATE, USER_LIMIT)
ERROR_STATUS <- c(SOLVER_ERROR)
# -- ECOS exit code -> CVXR status --------------------------------
## CVXPY SOURCE: ecos_conif.py lines 45-57
ECOS_STATUS_MAP <- list(
"0" = OPTIMAL,
"1" = INFEASIBLE,
"2" = UNBOUNDED,
"10" = OPTIMAL_INACCURATE,
"11" = INFEASIBLE_INACCURATE,
"12" = UNBOUNDED_INACCURATE,
"-1" = USER_LIMIT,
"-2" = SOLVER_ERROR,
"-3" = SOLVER_ERROR,
"-4" = SOLVER_ERROR,
"-7" = SOLVER_ERROR
)
# -- Solver data keys --------------------------------------------
## CVXPY SOURCE: settings.py lines 159-168
## Use SD_ prefix to avoid R namespace collisions (bare A, B, C shadow base R)
SD_C <- "c" # objective vector
SD_OFFSET <- "offset" # objective constant
SD_P <- "P" # quadratic objective matrix
SD_A <- "A" # constraint matrix
SD_B <- "b" # constraint vector
SD_DIMS <- "dims" # cone dimensions
SD_PARAM_PROB <- "param_prob" # parameterized problem
SD_BOOL_IDX <- "bool_idx" # boolean variable indices
SD_INT_IDX <- "int_idx" # integer variable indices
# -- Result keys -------------------------------------------------
## CVXPY SOURCE: settings.py lines 147-156
RK_STATUS <- "status"
RK_VALUE <- "value"
RK_OBJ_OFFSET <- "obj_offset"
RK_PRIMAL <- "primal"
RK_EQ_DUAL <- "eq_dual"
RK_INEQ_DUAL <- "ineq_dual"
RK_SOLVE_TIME <- "solve_time"
RK_SETUP_TIME <- "setup_time"
RK_NUM_ITERS <- "num_iters"
RK_EXTRA_STATS <- "solver_specific_stats"
# -- Bounds keys -------------------------------------------------
## CVXPY SOURCE: settings.py lines 143-144
LOWER_BOUNDS <- "lower_bounds"
UPPER_BOUNDS <- "upper_bounds"
# -- Standard solver parameter mappings ----------------------------
## Maps standard CVXR parameter names (reltol, abstol, feastol, num_iter)
## to solver-specific parameter names and default values.
## Used by .apply_std_params() in psolve() for solver-agnostic code.
## Private store -- exposed via solver_default_param() (read-only).
.SOLVER_DEFAULT_PARAM <- list(
CLARABEL = list(
reltol = list(name = "tol_gap_rel", value = 1e-8),
abstol = list(name = "tol_gap_abs", value = 1e-8),
feastol = list(name = "tol_feas", value = 1e-8),
num_iter = list(name = "max_iter", value = 200L)
),
OSQP = list(
reltol = list(name = "eps_rel", value = 1e-5),
abstol = list(name = "eps_abs", value = 1e-5),
feastol = list(name = "eps_prim_inf", value = 1e-4),
num_iter = list(name = "max_iter", value = 10000L)
),
SCS = list(
reltol = list(name = "eps_rel", value = 1e-5),
abstol = list(name = "eps_abs", value = 1e-5),
num_iter = list(name = "max_iters", value = 2500L)
),
HIGHS = list(
num_iter = list(name = "simplex_iteration_limit", value = 2147483647L)
),
MOSEK = list(
num_iter = list(name = "num_iter", value = 10000L)
),
GUROBI = list(
feastol = list(name = "FeasibilityTol", value = 1e-6),
num_iter = list(name = "IterationLimit", value = 10000L)
),
ECOS = list(
reltol = list(name = "RELTOL", value = 1e-8),
abstol = list(name = "ABSTOL", value = 1e-8),
feastol = list(name = "FEASTOL", value = 1e-8),
num_iter = list(name = "MAXIT", value = 100L)
),
ECOS_BB = list(
reltol = list(name = "RELTOL", value = 1e-3),
abstol = list(name = "ABSTOL", value = 1e-6),
feastol = list(name = "FEASTOL", value = 1e-6),
num_iter = list(name = "MI_MAX_ITERS", value = 1000L)
),
CPLEX = list(
num_iter = list(name = "itlim", value = 10000L)
),
CVXOPT = list(
abstol = list(name = "abstol", value = 1e-6),
reltol = list(name = "reltol", value = 1e-6),
feastol = list(name = "feastol", value = 1e-6),
num_iter = list(name = "maxiters", value = 100L)
),
PIQP = list(
reltol = list(name = "eps_rel", value = 1e-9),
abstol = list(name = "eps_abs", value = 1e-8),
num_iter = list(name = "max_iter", value = 250L)
)
## GLPK, GLPK_MI: no standard parameter mappings
)
#' Standard Solver Parameter Mappings
#'
#' Returns a named list mapping standard CVXR parameter names (\code{reltol},
#' \code{abstol}, \code{feastol}, \code{num_iter}) to solver-specific
#' parameter names and their default values. Used internally by
#' \code{\link{psolve}} to translate standard parameters into
#' solver-native names.
#'
#' @return A named list keyed by solver name (e.g. \code{"CLARABEL"},
#' \code{"OSQP"}). Each element is a list of standard parameter mappings,
#' where each mapping has \code{name} (solver-native parameter name) and
#' \code{value} (default value).
#' @seealso \code{\link{psolve}}
#' @export
solver_default_param <- function() .SOLVER_DEFAULT_PARAM
## Translate standard params (feastol, reltol, abstol, num_iter) into
## solver-native names. Standard params do NOT override solver-native
## names already present in solver_opts.
.apply_std_params <- function(solver_name, solver_opts,
feastol, reltol, abstol, num_iter) {
mapping <- .SOLVER_DEFAULT_PARAM[[solver_name]]
if (is.null(mapping)) return(solver_opts)
std_vals <- list(feastol = feastol, reltol = reltol,
abstol = abstol, num_iter = num_iter)
for (std_name in names(std_vals)) {
val <- std_vals[[std_name]]
if (is.null(val)) next
info <- mapping[[std_name]]
if (is.null(info)) next
## Standard param only applies if user hasn't set the native name directly
if (is.null(solver_opts[[info$name]])) {
## Coerce num_iter to integer (some solvers require integer type)
if (std_name == "num_iter") val <- as.integer(val)
solver_opts[[info$name]] <- val
}
}
solver_opts
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.