Internals
These symbols are not part of the public API, their behavior may change without warning between releases.
CoolPDLP.ConstraintMatrix — Type
ConstraintMatrixFields
A::SparseArrays.AbstractSparseMatrix{T, Ti} where {T<:Number, Ti<:Integer}At::SparseArrays.AbstractSparseMatrix{T, Ti} where {T<:Number, Ti<:Integer}
CoolPDLP.ConvergenceStats — Type
ConvergenceStatsFields
err::CoolPDLP.KKTErrors: current KKT errorstarting_time::Float64: time at which the algorithm started, in secondstime_elapsed::Float64: time elapsed since the algorithm started, in secondskkt_passes::Int64: number of multiplications by both the KKT matrix and its transposetermination_status::CoolPDLP.TerminationStatus: termination stats (should beSTILL_RUNNINGuntil the algorithm actually terminates)error_history::Array{Tuple{Int64, CoolPDLP.KKTErrors{T}}, 1} where T<:Number
CoolPDLP.ConversionParameters — Type
ConversionParameters{T,Ti,M}Type parameters
T: floating point type to convert values toTi: integer type to convert indices toM: matrix constructor to use on the constraints
Fields
backend::KernelAbstractions.Backend: CPU or GPU backend used for computations
CoolPDLP.GenericParameters — Type
GenericParametersFields
show_progress::Bool: whether to show a progress barcheck_every::Int64: frequency of restart or termination checksrecord_error_history::Bool: whether or not to record error evolution
CoolPDLP.KKTErrors — Type
KKTErrorsFields
primal::Number: primal feasibility errorprimal_scale::Number: characteristic scale of the primal constraint RHSdual::Number: dual feasibility errordual_scale::Number: characteristic scale of the dual constraint RHSgap::Number: primal-dual gapgap_scale::Number: characteristic scale of the gap
CoolPDLP.PDHGState — Type
PDHGStateFields
sol::PrimalDualSolution: current solutionsol_last::PrimalDualSolution: last solutionstep_sizes::CoolPDLP.StepSizes: step sizesscratch::CoolPDLP.Scratch: scratch spacestats::CoolPDLP.ConvergenceStats: convergence stats
CoolPDLP.PDLPState — Type
PDHGStateFields
sol::PrimalDualSolution: current solutionsol_last::PrimalDualSolution: last solutionsol_avg::PrimalDualSolution: current average solutionsol_avg_last::PrimalDualSolution: last average solutionsol_restart::PrimalDualSolution: solution from last restartstep_sizes::CoolPDLP.StepSizes: step sizesscratch::CoolPDLP.Scratch: scratch spaceiteration::CoolPDLP.IterationCounter: iteration counterrestart_stats::CoolPDLP.RestartStats: restart statsstats::CoolPDLP.ConvergenceStats: convergence stats
CoolPDLP.Preconditioner — Type
PreconditionerFields
D1::LinearAlgebra.Diagonal{T, V} where {T<:Number, V<:DenseVector{T}}: left preconditionerD2::LinearAlgebra.Diagonal{T, V} where {T<:Number, V<:DenseVector{T}}: right preconditioner
CoolPDLP.PreconditioningParameters — Type
PreconditioningParametersFields
chambolle_pock_alpha::Any: norm parameter in the Chambolle-pock preconditionerruiz_iter::Int64: iteration parameter in the Ruiz preconditioner
CoolPDLP.RestartParameters — Type
RestartParametersFields
sufficient_decay::Number: restart criterion: sufficient decay in normalized duality gapnecessary_decay::Number: restart criterion: necessary decayartificial_decay::Number: restart criterion: long inner loop
CoolPDLP.RestartStats — Type
RestartStatsFields
restart_from_avg::Boolerr_candidate::CoolPDLP.KKTErrorserr_candidate_last::CoolPDLP.KKTErrorserr_restart::CoolPDLP.KKTErrors
CoolPDLP.StepSizeParameters — Type
StepSizeParametersFields
invnorm_scaling::Number: scaling of the inverse spectral norm ofAwhen defining the non-adaptive step sizeprimal_weight_damping::Number: primal weight update dampingzero_tol::Number: tolerance in absolute comparisons to zero
CoolPDLP.StepSizes — Type
StepSizesFields
η::Number: step sizeη_sum::Number: cumulated step size since last restartω::Number: primal weight
CoolPDLP.Symmetrized — Type
SymmetrizedRepresent a symmetric matrix Kᵀ * K lazily.
CoolPDLP.TerminationParameters — Type
TerminationParametersFields
termination_reltol::Number: tolerance on KKT relative errors to decide terminationmax_kkt_passes::Int64: maximum number of multiplications by both the KKT matrixKand its transposeKᵀtime_limit::Float64: time limit in seconds
CoolPDLP.TerminationStatus — Type
TerminationStatusEnum for the various ways that an algorithm can terminate.
Possible values:
OPTIMALTIME_LIMITITERATION_LIMITSTILL_RUNNING
CoolPDLP.##MILP_simulator#406 — Method
MILP(qps::QPSData; kwargs...)Construct a MILP from a QPSData object generated by QPSReader.jl.
CoolPDLP.##PDHG_simulator#605 — Method
PDHG(args...; kwargs...)Shortcut for Algorithm{:PDHG} with some defaults disabled.
CoolPDLP.##PDLP_simulator#615 — Method
PDLP(args...; kwargs...)Shortcut for Algorithm{:PDLP}.
CoolPDLP.##combine_simulator#374 — Method
combine(l, u)Return the largest finite absolute value between the two bounds, or zero if neither is finite.
CoolPDLP.##common_backend_simulator#278 — Method
common_backend(args...)Return the common GPU backend of several arguments, if it exists, and throw an error otherwise.
CoolPDLP.##is_feasible_simulator#433 — Method
is_feasible(x, milp[; cons_tol=1e-6, int_tol=1e-5, verbose=true])Check whether solution vector x is feasible for milp.
Keyword arguments
cons_tol: tolerance for constraint satisfactionint_tol: tolerance for integrality requirementsverbose: whether to display warnings
CoolPDLP.##nbcons_eq_simulator#425 — Method
nbcons_eq(milp)Return the number of equality constraints in milp.
CoolPDLP.##nbcons_ineq_simulator#428 — Method
nbcons_ineq(milp)Return the number of inequality constraints in milp, not including variable bounds.
CoolPDLP.##nbcons_simulator#422 — Method
nbcons(milp)Return the number of constraints in milp, not including variable bounds or integrality requirements.
CoolPDLP.##nbvar_cont_simulator#419 — Method
nbvar_cont(milp)Return the number of integer variables in milp.
CoolPDLP.##nbvar_int_simulator#416 — Method
nbvar_int(milp)Return the number of integer variables in milp.
CoolPDLP.##nbvar_simulator#413 — Method
nbvar(milp)Return the number of variables in milp.
CoolPDLP.##objective_value_simulator#436 — Method
objective_value(x, milp)Compute the value of the linear objective of milp at solution vector x.
CoolPDLP.##preprocess_simulator#591 — Method
preprocess(milp_init, sol_init, algo)Apply preconditioning, type conversion and device transfer to milp_init and sol_init for the algorithm defined by algo.
Return a tuple (milp, sol).
CoolPDLP.##proj_multiplier_simulator#371 — Method
proj_multiplier(λ, l, u)Project λ onto the feasible space of the (double) Lagrange multiplier λ⁺ - λ⁻ associated with the constraint l ≤ x ≤ u, where l and/or u might be infinite.
CoolPDLP.##set_eltype_simulator#456 — Method
set_eltype(T, milp)Change the element type of floating-point containers inside milp to T.
CoolPDLP.##set_indtype_simulator#466 — Method
set_indtype(Ti, milp)Change the element type of integer containers inside milp to Ti.
CoolPDLP.##set_matrix_type_simulator#476 — Method
set_matrix_type(::Type{M}, milp)Convert the sparse matrices inside milp using constructor M.
CoolPDLP.##solve_simulator#595 — Method
solve(milp, sol, algo)
solve(milp, algo)Solve the continuous relaxation of milp starting from solution sol using the algorithm defined by algo.
Return a couple (sol, stats) where sol is the last solution and stats contains convergence information.
CoolPDLP.##sort_rows_columns_simulator#530 — Method
sort_rows_columns(milp)Return a new MILP where the constraint matrix has been permuted by order of increasing column and row density.
CoolPDLP.##spectral_norm_simulator#387 — Method
spectral_norm(K, Kᵀ)Compute the spectral norm of K with the power method from IterativeSolvers.jl.
CoolPDLP.combine — Method
combine(l, u)Return the largest finite absolute value between the two bounds, or zero if neither is finite.
CoolPDLP.common_backend — Method
common_backend(args...)Return the common GPU backend of several arguments, if it exists, and throw an error otherwise.
CoolPDLP.proj_multiplier — Method
proj_multiplier(λ, l, u)Project λ onto the feasible space of the (double) Lagrange multiplier λ⁺ - λ⁻ associated with the constraint l ≤ x ≤ u, where l and/or u might be infinite.
CoolPDLP.set_eltype — Method
set_eltype(T, milp)Change the element type of floating-point containers inside milp to T.
CoolPDLP.set_indtype — Method
set_indtype(Ti, milp)Change the element type of integer containers inside milp to Ti.
CoolPDLP.set_matrix_type — Method
set_matrix_type(::Type{M}, milp)Convert the sparse matrices inside milp using constructor M.
CoolPDLP.sort_rows_columns — Method
sort_rows_columns(milp)Return a new MILP where the constraint matrix has been permuted by order of increasing column and row density.
CoolPDLP.spectral_norm — Method
spectral_norm(K, Kᵀ)Compute the spectral norm of K with the power method from IterativeSolvers.jl.