Expand description
§CoinClp-sys
coinclp-sys crate is a *-sys crate. The package provides Low-level bindings to the Clp library.
By this package, you don’t need to worry about installing Clp in the system, and it’s a package for all platforms.
Clp (Coin-or linear programming) is an open-source linear programming solver. It is primarily meant to be used as a callable library, but a basic, stand-alone executable version is also available.
§Usage
Just add the following to your Cargo.toml:
[dependencies]
coinclp-sys = "0.2"§Library Linking
if you want to know the detail about how it compile or link the Clp, please see Clp-src.
§Contribution
Your contribution is highly appreciated. Do not hesitate to open an issue or a pull request. Note that any contribution submitted for inclusion in the project will be licensed according to the terms given in LICENSE.
Constants§
Functions§
- ClpSolve_
delete ⚠ - Destructor
- ClpSolve_
doDoubleton ⚠ - ClpSolve_
doDual ⚠ - ClpSolve_
doDupcol ⚠ - ClpSolve_
doDuprow ⚠ - ClpSolve_
doForcing ⚠ - ClpSolve_
doImplied ⚠Free - ClpSolve_
doSingleton ⚠ - ClpSolve_
doSingleton ⚠Column - ClpSolve_
doTighten ⚠ - ClpSolve_
doTripleton ⚠ - ClpSolve_
getExtra ⚠Info - ClpSolve_
getPresolve ⚠Passes - ClpSolve_
getPresolve ⚠Type - ClpSolve_
getSolve ⚠Type - ClpSolve_
getSpecial ⚠Option - ClpSolve_
infeasible ⚠Return - ClpSolve_
new ⚠ - Default constructor
- ClpSolve_
presolve ⚠Actions - ClpSolve_
setDo ⚠Doubleton - ClpSolve_
setDo ⚠Dual - ClpSolve_
setDo ⚠Dupcol - ClpSolve_
setDo ⚠Duprow - ClpSolve_
setDo ⚠Forcing - ClpSolve_
setDo ⚠Implied Free - ClpSolve_
setDo ⚠Singleton - ClpSolve_
setDo ⚠Singleton Column - ClpSolve_
setDo ⚠Tighten - ClpSolve_
setDo ⚠Tripleton - ClpSolve_
setInfeasible ⚠Return - ClpSolve_
setPresolve ⚠Actions - ClpSolve_
setPresolve ⚠Type - amount: (see ClpSolve::PresolveType) 0 - presolve on 1 - presolve off 2 - presolve number 3 - presolve number cost – pass extraInfo == -1 for default behavior
- ClpSolve_
setSolve ⚠Type - method: (see ClpSolve::SolveType) 0 - dual simplex 1 - primal simplex 2 - primal or sprint 3 - barrier 4 - barrier no crossover 5 - automatic 6 - not implemented – pass extraInfo == -1 for default behavior
- ClpSolve_
setSpecial ⚠Option - ClpSolve_
setSubstitution ⚠ - ClpSolve_
substitution ⚠ - Clp_
Version ⚠ - Clp library version number as string.
- Clp_
Version ⚠Major - Major number of Clp library version.
- Clp_
Version ⚠Minor - Minor number of Clp library version.
- Clp_
Version ⚠Release - Release number of Clp library version.
- Clp_
addColumns ⚠ - Add columns
- Clp_
addRows ⚠ - Add rows
- Clp_
algorithm ⚠ - Current (or last) algorithm
- Clp_
check ⚠Solution - Just check solution (for external use) - sets sum of infeasibilities etc
- Clp_
chgColumn ⚠Lower - Change column lower bounds
- Clp_
chgColumn ⚠Upper - Change column upper bounds
- Clp_
chgObj ⚠Coefficients - Change objective coefficients
- Clp_
chgRow ⚠Lower - Change row lower bounds
- Clp_
chgRow ⚠Upper - Change row upper bounds
- Clp_
clear ⚠Call Back - Unset Callback function
- Clp_
column ⚠Lower - Column Lower
- Clp_
column ⚠Name - Fill in array (at least lengthNames+1 long) with a column name
- Clp_
column ⚠Upper - Column Upper
- Clp_
copy ⚠InInteger Information - Copy in integer informations
- Clp_
copy ⚠Names - Copies in names
- Clp_
copyin ⚠Status - Copy in status vector
- Clp_
crash ⚠ - Crash - at present just aimed at dual, returns -2 if dual preferred and crash basis created -1 if dual preferred and all slack basis preferred 0 if basis going in was not all slack 1 if primal preferred and all slack basis preferred 2 if primal preferred and crash basis created.
- Clp_
delete ⚠Columns - Deletes columns
- Clp_
delete ⚠Integer Information - Drop integer informations
- Clp_
delete ⚠Model - Destructor
- Clp_
delete ⚠Rows - Deletes rows
- Clp_
drop ⚠Names - Drops names - makes lengthnames 0 and names empty
- Clp_
dual ⚠ - Dual algorithm - see ClpSimplexDual.hpp for method
- Clp_
dual ⚠Bound - Dual bound
- Clp_
dual ⚠Column Solution - Reduced costs
- Clp_
dual ⚠Feasible - If problem is dual feasible
- Clp_
dual ⚠Objective Limit - Dual objective limit
- Clp_
dual ⚠RowSolution - Dual row solution
- Clp_
dual ⚠Tolerance - Dual tolerance to use
- Clp_
free ⚠Ray - Frees a infeasibility or unbounded ray.
- Clp_
getCol ⚠Lower - Column Lower
- Clp_
getCol ⚠Solution - Primal column solution
- Clp_
getCol ⚠Upper - Column Upper
- Clp_
getColumn ⚠Status - Clp_
getElements ⚠ - Clp_
getIndices ⚠ - Clp_
getIteration ⚠Count - Number of iterations
- Clp_
getNum ⚠Cols - Number of columns
- Clp_
getNum ⚠Elements - Number of elements in matrix
- Clp_
getNum ⚠Rows - Number of rows
- Clp_
getObj ⚠Coefficients - Objective
- Clp_
getObj ⚠Sense - Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore
- Clp_
getObj ⚠Value - Objective value
- Clp_
getReduced ⚠Cost - Reduced costs
- Clp_
getRow ⚠Activity - Primal row solution
- Clp_
getRow ⚠Lower - Row lower
- Clp_
getRow ⚠Price - Dual row solution
- Clp_
getRow ⚠Status - Clp_
getRow ⚠Upper - Row upper
- Clp_
getSmall ⚠Element Value - Clp_
getUser ⚠Pointer - Clp_
getVector ⚠Lengths - Clp_
getVector ⚠Starts - Clp_
hitMaximum ⚠Iterations - Returns true if hit maximum iterations (or time)
- Clp_
idiot ⚠ - Solve the problem with the idiot code
- Clp_
infeasibility ⚠Cost - Infeasibility cost
- Clp_
infeasibility ⚠Ray - Gives Infeasibility ray.
- Clp_
initial ⚠Barrier NoCross Solve - Barrier initial solve, no crossover
- Clp_
initial ⚠Barrier Solve - Barrier initial solve
- Clp_
initial ⚠Dual Solve - Dual initial solve
- Clp_
initial ⚠Primal Solve - Primal initial solve
- Clp_
initial ⚠Solve - General solve algorithm which can do presolve. See ClpSolve.hpp for options
- Clp_
initial ⚠Solve With Options - Pass solve options. (Exception to direct analogue rule)
- Clp_
integer ⚠Information - Integer information
- Clp_
isAbandoned ⚠ - Are there a numerical difficulties?
- Clp_
isDual ⚠Objective Limit Reached - Is the given dual objective limit reached?
- Clp_
isIteration ⚠Limit Reached - Iteration limit reached?
- Clp_
isPrimal ⚠Objective Limit Reached - Is the given primal objective limit reached?
- Clp_
isProven ⚠Dual Infeasible - Is dual infeasiblity proven?
- Clp_
isProven ⚠Optimal - Is optimality proven?
- Clp_
isProven ⚠Primal Infeasible - Is primal infeasiblity proven?
- Clp_
length ⚠Names - length of names (0 means no names0
- Clp_
load ⚠Problem - Loads a problem (the constraints on the rows are given by lower and upper bounds). If a pointer is NULL then the following values are the default:
- Clp_
load ⚠Quadratic Objective - Clp_
logLevel ⚠ - Clp_
maximum ⚠Seconds - Maximum time in seconds (from when set called)
- Clp_
modify ⚠Coefficient - Clp_
newModel ⚠ - Default constructor
- Clp_
number ⚠Columns - Number of columns
- Clp_
number ⚠Dual Infeasibilities - Number of dual infeasibilities
- Clp_
number ⚠Iterations - Number of iterations
- Clp_
number ⚠Primal Infeasibilities - Number of primal infeasibilities
- Clp_
number ⚠Rows - Number of rows
- Clp_
objective ⚠ - Objective
- Clp_
objective ⚠Offset - Objective offset
- Clp_
objective ⚠Value - Objective value
- Clp_
optimization ⚠Direction - Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore
- Clp_
perturbation ⚠ - Perturbation: 50 - switch on perturbation 100 - auto perturb if takes too long (1.0e-6 largest nonzero) 101 - we are perturbed 102 - don’t try perturbing again default is 100 others are for playing
- Clp_
primal ⚠ - Primal algorithm - see ClpSimplexPrimal.hpp for method
- Clp_
primal ⚠Column Solution - Primal column solution
- Clp_
primal ⚠Feasible - If problem is primal feasible
- Clp_
primal ⚠RowSolution - Primal row solution
- Clp_
primal ⚠Tolerance - Primal tolerance to use
- Clp_
print ⚠Model - Print model for debugging purposes
- Clp_
problem ⚠Name - Fills in array with problem name
- Clp_
read ⚠Mps - Read an mps file from the given filename
- Clp_
register ⚠Call Back - Pass in Callback function. Message numbers up to 1000000 are Clp, Coin ones have 1000000 added
- Clp_
resize ⚠ - Resizes rim part of model
- Clp_
restore ⚠Model - Restore model from file, returns 0 if success, deletes current model
- Clp_
rowLower ⚠ - Row lower
- Clp_
rowName ⚠ - Fill in array (at least lengthNames+1 long) with a row name
- Clp_
rowUpper ⚠ - Row upper
- Clp_
save ⚠Model - Save model to file, returns 0 if success. This is designed for use outside algorithms so does not save iterating arrays etc. It does not save any messaging information. Does not save scaling values. It does not know about all types of virtual functions.
- Clp_
scaling ⚠ - Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic(later)
- Clp_
scaling ⚠Flag - Gets scalingFlag
- Clp_
secondary ⚠Status - Secondary status of problem - may get extended 0 - none 1 - primal infeasible because dual limit reached 2 - scaled problem optimal - unscaled has primal infeasibilities 3 - scaled problem optimal - unscaled has dual infeasibilities 4 - scaled problem optimal - unscaled has both dual and primal infeasibilities
- Clp_
setAlgorithm ⚠ - Set algorithm
- Clp_
setCol ⚠Solution - Clp_
setColumn ⚠Name - Set column name - Nice if they are short - 8 chars or less I think
- Clp_
setColumn ⚠Status - Clp_
setDual ⚠Bound - Clp_
setDual ⚠Objective Limit - Clp_
setDual ⚠Tolerance - Clp_
setInfeasibility ⚠Cost - Clp_
setLog ⚠Level - Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - verbose above that 8,16,32 etc just for selective debug
- Clp_
setMaximum ⚠Iterations - Clp_
setMaximum ⚠Seconds - Clp_
setNumber ⚠Iterations - Clp_
setObj ⚠Sense - Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore
- Clp_
setObjective ⚠Offset - Clp_
setOptimization ⚠Direction - Clp_
setPerturbation ⚠ - Clp_
setPrimal ⚠Tolerance - Clp_
setProblem ⚠Name - Clp_
setProblem ⚠Status - Set problem status
- Clp_
setRow ⚠Name - Set row name - Nice if they are short - 8 chars or less I think
- Clp_
setRow ⚠Status - Clp_
setSecondary ⚠Status - Clp_
setSmall ⚠Element Value - Clp_
setUser ⚠Pointer - User pointer for whatever reason
- Clp_
status ⚠ - Status of problem: 0 - optimal 1 - primal infeasible 2 - dual infeasible 3 - stopped on iterations etc 4 - stopped due to errors
- Clp_
status ⚠Array - Return address of status array (char[numberRows+numberColumns])
- Clp_
status ⚠Exists - See if status array exists (partly for OsiClp)
- Clp_
sumDual ⚠Infeasibilities - Sum of dual infeasibilities
- Clp_
sumPrimal ⚠Infeasibilities - Sum of primal infeasibilities
- Clp_
unbounded ⚠Ray - Gives ray in which the problem is unbounded.
- Clp_
write ⚠Mps - Write an mps file to the given filename / /* Format type is 0 = normal, 1 = extra or 2 = hex. Number across is 1 or 2. Use objSense = -1D to flip the objective function around.
- maximum
Iterations ⚠ - Maximum number of iterations
Type Aliases§
- Cbc_
Model - Clp_
Simplex - Clp_
Solve - Coin
BigIndex - Sbb_
Model - cbc_
callback - cbc_
cut_ callback - typedef for cbc cut callback osiSolver needs to be an OsiSolverInterface object, osiCuts is an OsiCuts object and appdata is a pointer that will be passed to the cut generation, you can use it to point to a data structure with information about the original problem, for instance
- clp_
callback - sbb_
callback - typedef for user call back. The cvec are constructed so don’t need to be const