8 #include "Coin_C_defines.h"
50 COINLIBAPI
void COINLINKAGE
Clp_loadProblem (Clp_Simplex * model,
const int numcols,
const int numrows,
51 const CoinBigIndex * start,
const int* index,
53 const double* collb,
const double* colub,
55 const double* rowlb,
const double* rowub);
58 COINLIBAPI
void COINLINKAGE
60 const int numberColumns,
61 const CoinBigIndex * start,
63 const double * element);
65 COINLIBAPI
int COINLINKAGE
Clp_readMps(Clp_Simplex * model,
const char *filename,
73 COINLIBAPI
void COINLINKAGE
Clp_resize (Clp_Simplex * model,
int newNumberRows,
int newNumberColumns);
75 COINLIBAPI
void COINLINKAGE
Clp_deleteRows(Clp_Simplex * model,
int number,
const int * which);
77 COINLIBAPI
void COINLINKAGE
Clp_addRows(Clp_Simplex * model,
int number,
const double * rowLower,
78 const double * rowUpper,
79 const int * rowStarts,
const int * columns,
80 const double * elements);
83 COINLIBAPI
void COINLINKAGE
Clp_deleteColumns(Clp_Simplex * model,
int number,
const int * which);
85 COINLIBAPI
void COINLINKAGE
Clp_addColumns(Clp_Simplex * model,
int number,
const double * columnLower,
86 const double * columnUpper,
87 const double * objective,
88 const int * columnStarts,
const int * rows,
89 const double * elements);
91 COINLIBAPI
void COINLINKAGE
Clp_chgRowLower(Clp_Simplex * model,
const double * rowLower);
93 COINLIBAPI
void COINLINKAGE
Clp_chgRowUpper(Clp_Simplex * model,
const double * rowUpper);
95 COINLIBAPI
void COINLINKAGE
Clp_chgColumnLower(Clp_Simplex * model,
const double * columnLower);
97 COINLIBAPI
void COINLINKAGE
Clp_chgColumnUpper(Clp_Simplex * model,
const double * columnUpper);
101 COINLIBAPI
void COINLINKAGE
Clp_dropNames(Clp_Simplex * model);
103 COINLIBAPI
void COINLINKAGE
Clp_copyNames(Clp_Simplex * model,
const char *
const * rowNames,
104 const char *
const * columnNames);
126 COINLIBAPI
void COINLINKAGE
Clp_problemName(Clp_Simplex * model,
int maxNumberCharacters,
char * array);
128 COINLIBAPI
int COINLINKAGE
148 COINLIBAPI
int COINLINKAGE
Clp_status(Clp_Simplex * model);
172 COINLIBAPI
double* COINLINKAGE
Clp_rowLower(Clp_Simplex * model);
174 COINLIBAPI
double* COINLINKAGE
Clp_rowUpper(Clp_Simplex * model);
176 COINLIBAPI
double * COINLINKAGE
Clp_objective(Clp_Simplex * model);
186 COINLIBAPI
const int * COINLINKAGE
Clp_getIndices(Clp_Simplex * model);
190 COINLIBAPI
const double * COINLINKAGE
Clp_getElements(Clp_Simplex * model);
202 COINLIBAPI
unsigned char * COINLINKAGE
Clp_statusArray(Clp_Simplex * model);
204 COINLIBAPI
void COINLINKAGE
Clp_copyinStatus(Clp_Simplex * model,
const unsigned char * statusArray);
210 COINLIBAPI
int COINLINKAGE
Clp_getRowStatus(Clp_Simplex * model,
int sequence);
213 int sequence,
int value);
216 int sequence,
int value);
227 clp_callback userCallBack);
238 COINLIBAPI
void COINLINKAGE
Clp_setLogLevel(Clp_Simplex * model,
int value);
239 COINLIBAPI
int COINLINKAGE
Clp_logLevel(Clp_Simplex * model);
243 COINLIBAPI
void COINLINKAGE
Clp_rowName(Clp_Simplex * model,
int iRow,
char * name);
245 COINLIBAPI
void COINLINKAGE
Clp_columnName(Clp_Simplex * model,
int iColumn,
char * name);
265 COINLIBAPI
int COINLINKAGE
Clp_dual(Clp_Simplex * model,
int ifValuesPass);
267 COINLIBAPI
int COINLINKAGE
Clp_primal(Clp_Simplex * model,
int ifValuesPass);
270 COINLIBAPI
void COINLINKAGE
Clp_idiot(Clp_Simplex * model,
int tryhard);
273 COINLIBAPI
void COINLINKAGE
Clp_scaling(Clp_Simplex * model,
int mode);
290 COINLIBAPI
int COINLINKAGE
Clp_crash(Clp_Simplex * model,
double gap,
int pivot);
301 COINLIBAPI
double COINLINKAGE
Clp_dualBound(Clp_Simplex * model);
302 COINLIBAPI
void COINLINKAGE
Clp_setDualBound(Clp_Simplex * model,
double value);
317 COINLIBAPI
int COINLINKAGE
Clp_algorithm(Clp_Simplex * model);
319 COINLIBAPI
void COINLINKAGE
Clp_setAlgorithm(Clp_Simplex * model,
int value);
334 COINLIBAPI
int COINLINKAGE
Clp_saveModel(Clp_Simplex * model,
const char * fileName);
337 COINLIBAPI
int COINLINKAGE
Clp_restoreModel(Clp_Simplex * model,
const char * fileName);
370 COINLIBAPI
void COINLINKAGE
Clp_setObjSense(Clp_Simplex * model,
double objsen);
375 COINLIBAPI
void COINLINKAGE
Clp_setColSolution(Clp_Simplex * model,
const double * input);
377 COINLIBAPI
const double * COINLINKAGE
Clp_getRowPrice(Clp_Simplex * model);
381 COINLIBAPI
const double* COINLINKAGE
Clp_getRowLower(Clp_Simplex * model);
383 COINLIBAPI
const double* COINLINKAGE
Clp_getRowUpper(Clp_Simplex * model);
387 COINLIBAPI
const double * COINLINKAGE
Clp_getColLower(Clp_Simplex * model);
389 COINLIBAPI
const double * COINLINKAGE
Clp_getColUpper(Clp_Simplex * model);
393 COINLIBAPI
void COINLINKAGE
Clp_printModel(Clp_Simplex * model,
const char * prefix);
COINLIBAPI const int *COINLINKAGE Clp_getIndices(Clp_Simplex *model)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_setProblemName(Clp_Simplex *model, int maxNumberCharacters, char *array)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_statusExists(Clp_Simplex *model)
See if status array exists (partly for OsiClp)
COINLIBAPI Clp_Simplex *COINLINKAGE Clp_newModel(void)
Default constructor.
COINLIBAPI void COINLINKAGE Clp_loadProblem(Clp_Simplex *model, const int numcols, const int numrows, const CoinBigIndex *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub)
Loads a problem (the constraints on the rows are given by lower and upper bounds).
COINLIBAPI double COINLINKAGE Clp_infeasibilityCost(Clp_Simplex *model)
Infeasibility cost.
COINLIBAPI void COINLINKAGE Clp_clearCallBack(Clp_Simplex *model)
Unset Callback function.
COINLIBAPI double COINLINKAGE Clp_optimizationDirection(Clp_Simplex *model)
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
COINLIBAPI int COINLINKAGE Clp_primalFeasible(Clp_Simplex *model)
If problem is primal feasible.
COINLIBAPI int COINLINKAGE Clp_dualFeasible(Clp_Simplex *model)
If problem is dual feasible.
COINLIBAPI void COINLINKAGE Clp_setSmallElementValue(Clp_Simplex *model, double value)
Number of rows.
COINLIBAPI void COINLINKAGE Clp_copyNames(Clp_Simplex *model, const char *const *rowNames, const char *const *columnNames)
Copies in names.
COINLIBAPI double *COINLINKAGE Clp_dualRowSolution(Clp_Simplex *model)
Dual row solution.
COINLIBAPI void COINLINKAGE Clp_chgRowLower(Clp_Simplex *model, const double *rowLower)
Change row lower bounds.
COINLIBAPI void COINLINKAGE Clp_deleteColumns(Clp_Simplex *model, int number, const int *which)
Deletes columns.
COINLIBAPI int COINLINKAGE Clp_numberPrimalInfeasibilities(Clp_Simplex *model)
Number of primal infeasibilities.
COINLIBAPI void COINLINKAGE Clp_setOptimizationDirection(Clp_Simplex *model, double value)
Number of rows.
COINLIBAPI const double *COINLINKAGE Clp_getColLower(Clp_Simplex *model)
Column Lower.
COINLIBAPI double *COINLINKAGE Clp_unboundedRay(Clp_Simplex *model)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_initialSolve(Clp_Simplex *model)
General solve algorithm which can do presolve.
COINLIBAPI void COINLINKAGE Clp_setUserPointer(Clp_Simplex *model, void *pointer)
User pointer for whatever reason.
COINLIBAPI void COINLINKAGE Clp_setPrimalTolerance(Clp_Simplex *model, double value)
Number of rows.
COINLIBAPI const double *COINLINKAGE Clp_getColUpper(Clp_Simplex *model)
Column Upper.
COINLIBAPI void COINLINKAGE Clp_setMaximumSeconds(Clp_Simplex *model, double value)
Number of rows.
COINLIBAPI double COINLINKAGE Clp_primalTolerance(Clp_Simplex *model)
Primal tolerance to use.
COINLIBAPI double *COINLINKAGE Clp_primalRowSolution(Clp_Simplex *model)
Primal row solution.
COINLIBAPI int COINLINKAGE Clp_initialDualSolve(Clp_Simplex *model)
Dual initial solve.
COINLIBAPI double *COINLINKAGE Clp_infeasibilityRay(Clp_Simplex *model)
Infeasibility/unbounded ray (NULL returned if none/wrong) Up to user to use delete [] on these arrays...
COINLIBAPI double COINLINKAGE Clp_objectiveValue(Clp_Simplex *model)
Objective value.
COINLIBAPI void COINLINKAGE Clp_setAlgorithm(Clp_Simplex *model, int value)
Set algorithm.
COINLIBAPI void COINLINKAGE Clp_copyinStatus(Clp_Simplex *model, const unsigned char *statusArray)
Copy in status vector.
COINLIBAPI void COINLINKAGE Clp_chgObjCoefficients(Clp_Simplex *model, const double *objIn)
Change objective coefficients.
COINLIBAPI void COINLINKAGE Clp_chgColumnUpper(Clp_Simplex *model, const double *columnUpper)
Change column upper bounds.
COINLIBAPI int COINLINKAGE Clp_crash(Clp_Simplex *model, double gap, int pivot)
Crash - at present just aimed at dual, returns -2 if dual preferred and crash basis created -1 if dua...
COINLIBAPI double COINLINKAGE Clp_dualObjectiveLimit(Clp_Simplex *model)
Dual objective limit.
COINLIBAPI int COINLINKAGE Clp_initialBarrierSolve(Clp_Simplex *model)
Barrier initial solve.
COINLIBAPI const double *COINLINKAGE Clp_getRowPrice(Clp_Simplex *model)
Dual row solution.
COINLIBAPI int COINLINKAGE Clp_numberRows(Clp_Simplex *model)
Number of rows.
COINLIBAPI const CoinBigIndex *COINLINKAGE Clp_getVectorStarts(Clp_Simplex *model)
Number of rows.
COINLIBAPI double *COINLINKAGE Clp_primalColumnSolution(Clp_Simplex *model)
Primal column solution.
COINLIBAPI double *COINLINKAGE Clp_rowUpper(Clp_Simplex *model)
Row upper.
COINLIBAPI double COINLINKAGE Clp_dualTolerance(Clp_Simplex *model)
Dual tolerance to use.
COINLIBAPI void COINLINKAGE Clp_chgColumnLower(Clp_Simplex *model, const double *columnLower)
Change column lower bounds.
COINLIBAPI int COINLINKAGE Clp_lengthNames(Clp_Simplex *model)
length of names (0 means no names0
COINLIBAPI double *COINLINKAGE Clp_objective(Clp_Simplex *model)
Objective.
COINLIBAPI double COINLINKAGE Clp_sumDualInfeasibilities(Clp_Simplex *model)
Sum of dual infeasibilities.
COINLIBAPI void COINLINKAGE Clp_setInfeasibilityCost(Clp_Simplex *model, double value)
If problem is primal feasible.
COINLIBAPI char *COINLINKAGE Clp_integerInformation(Clp_Simplex *model)
Integer information.
COINLIBAPI double COINLINKAGE Clp_getSmallElementValue(Clp_Simplex *model)
Number of rows.
COINLIBAPI void COINLINKAGE Clp_columnName(Clp_Simplex *model, int iColumn, char *name)
Fill in array (at least lengthNames+1 long) with a column name.
COINLIBAPI const double *COINLINKAGE Clp_getObjCoefficients(Clp_Simplex *model)
Objective.
COINLIBAPI int COINLINKAGE Clp_restoreModel(Clp_Simplex *model, const char *fileName)
Restore model from file, returns 0 if success, deletes current model.
COINLIBAPI void COINLINKAGE Clp_scaling(Clp_Simplex *model, int mode)
Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic(later) ...
COINLIBAPI int COINLINKAGE Clp_hitMaximumIterations(Clp_Simplex *model)
Returns true if hit maximum iterations (or time)
COINLIBAPI int COINLINKAGE Clp_numberDualInfeasibilities(Clp_Simplex *model)
Number of dual infeasibilities.
COINLIBAPI int COINLINKAGE Clp_isProvenPrimalInfeasible(Clp_Simplex *model)
Is primal infeasiblity proven?
COINLIBAPI int COINLINKAGE Clp_numberColumns(Clp_Simplex *model)
Number of columns.
COINLIBAPI double *COINLINKAGE Clp_columnLower(Clp_Simplex *model)
Column Lower.
COINLIBAPI void COINLINKAGE Clp_setObjSense(Clp_Simplex *model, double objsen)
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
COINLIBAPI double COINLINKAGE Clp_sumPrimalInfeasibilities(Clp_Simplex *model)
Sum of primal infeasibilities.
COINLIBAPI int COINLINKAGE Clp_primal(Clp_Simplex *model, int ifValuesPass)
Primal algorithm - see ClpSimplexPrimal.hpp for method.
COINLIBAPI double COINLINKAGE Clp_getObjSense(Clp_Simplex *model)
Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore.
COINLIBAPI const double *COINLINKAGE Clp_getRowUpper(Clp_Simplex *model)
Row upper.
COINLIBAPI void COINLINKAGE Clp_resize(Clp_Simplex *model, int newNumberRows, int newNumberColumns)
Resizes rim part of model.
COINLIBAPI int COINLINKAGE Clp_isProvenDualInfeasible(Clp_Simplex *model)
Is dual infeasiblity proven?
COINLIBAPI void COINLINKAGE Clp_setDualTolerance(Clp_Simplex *model, double value)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_getIterationCount(Clp_Simplex *model)
Number of iterations.
COINLIBAPI int COINLINKAGE Clp_dual(Clp_Simplex *model, int ifValuesPass)
Dual algorithm - see ClpSimplexDual.hpp for method.
COINLIBAPI void COINLINKAGE Clp_deleteIntegerInformation(Clp_Simplex *model)
Drop integer informations.
COINLIBAPI void COINLINKAGE Clp_idiot(Clp_Simplex *model, int tryhard)
Solve the problem with the idiot code.
COINLIBAPI void COINLINKAGE Clp_addColumns(Clp_Simplex *model, int number, const double *columnLower, const double *columnUpper, const double *objective, const int *columnStarts, const int *rows, const double *elements)
Add columns.
COINLIBAPI void COINLINKAGE Clp_deleteModel(Clp_Simplex *model)
Destructor.
COINLIBAPI const double *COINLINKAGE Clp_getRowLower(Clp_Simplex *model)
Row lower.
COINLIBAPI void COINLINKAGE Clp_setDualObjectiveLimit(Clp_Simplex *model, double value)
Number of rows.
COINLIBAPI void COINLINKAGE Clp_setColSolution(Clp_Simplex *model, const double *input)
Number of rows.
COINLIBAPI void COINLINKAGE Clp_setMaximumIterations(Clp_Simplex *model, int value)
Number of rows.
COINLIBAPI double *COINLINKAGE Clp_dualColumnSolution(Clp_Simplex *model)
Reduced costs.
COINLIBAPI double *COINLINKAGE Clp_rowLower(Clp_Simplex *model)
Row lower.
COINLIBAPI int COINLINKAGE Clp_logLevel(Clp_Simplex *model)
Pass in Callback function.
COINLIBAPI int COINLINKAGE Clp_saveModel(Clp_Simplex *model, const char *fileName)
Save model to file, returns 0 if success.
COINLIBAPI void COINLINKAGE Clp_setPerturbation(Clp_Simplex *model, int value)
If problem is primal feasible.
COINLIBAPI void COINLINKAGE Clp_setRowStatus(Clp_Simplex *model, int sequence, int value)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_isDualObjectiveLimitReached(Clp_Simplex *model)
Is the given dual objective limit reached?
COINLIBAPI void COINLINKAGE Clp_loadQuadraticObjective(Clp_Simplex *model, const int numberColumns, const CoinBigIndex *start, const int *column, const double *element)
Loads a problem (the constraints on the rows are given by lower and upper bounds).
COINLIBAPI void COINLINKAGE Clp_chgRowUpper(Clp_Simplex *model, const double *rowUpper)
Change row upper bounds.
COINLIBAPI const double *COINLINKAGE Clp_getColSolution(Clp_Simplex *model)
Primal column solution.
COINLIBAPI int COINLINKAGE Clp_isPrimalObjectiveLimitReached(Clp_Simplex *model)
Is the given primal objective limit reached?
COINLIBAPI int COINLINKAGE Clp_numberIterations(Clp_Simplex *model)
Number of iterations.
COINLIBAPI void COINLINKAGE Clp_setProblemStatus(Clp_Simplex *model, int problemStatus)
Set problem status.
COINLIBAPI int COINLINKAGE Clp_algorithm(Clp_Simplex *model)
Current (or last) algorithm.
COINLIBAPI int COINLINKAGE Clp_initialBarrierNoCrossSolve(Clp_Simplex *model)
Barrier initial solve, no crossover.
COINLIBAPI void COINLINKAGE Clp_printModel(Clp_Simplex *model, const char *prefix)
Print model for debugging purposes.
COINLIBAPI int COINLINKAGE Clp_scalingFlag(Clp_Simplex *model)
Gets scalingFlag.
COINLIBAPI int COINLINKAGE Clp_isAbandoned(Clp_Simplex *model)
Are there a numerical difficulties?
COINLIBAPI const double *COINLINKAGE Clp_getReducedCost(Clp_Simplex *model)
Reduced costs.
COINLIBAPI void COINLINKAGE Clp_deleteRows(Clp_Simplex *model, int number, const int *which)
Deletes rows.
COINLIBAPI void COINLINKAGE Clp_setDualBound(Clp_Simplex *model, double value)
If problem is primal feasible.
COINLIBAPI void COINLINKAGE Clp_problemName(Clp_Simplex *model, int maxNumberCharacters, char *array)
Fills in array with problem name.
COINLIBAPI int COINLINKAGE Clp_secondaryStatus(Clp_Simplex *model)
Secondary status of problem - may get extended 0 - none 1 - primal infeasible because dual limit reac...
COINLIBAPI unsigned char *COINLINKAGE Clp_statusArray(Clp_Simplex *model)
Return address of status array (char[numberRows+numberColumns])
COINLIBAPI void *COINLINKAGE Clp_getUserPointer(Clp_Simplex *model)
Number of rows.
COINLIBAPI double COINLINKAGE Clp_maximumSeconds(Clp_Simplex *model)
Maximum time in seconds (from when set called)
COINLIBAPI void COINLINKAGE Clp_copyInIntegerInformation(Clp_Simplex *model, const char *information)
Copy in integer informations.
COINLIBAPI void COINLINKAGE Clp_registerCallBack(Clp_Simplex *model, clp_callback userCallBack)
Pass in Callback function.
COINLIBAPI double *COINLINKAGE Clp_columnUpper(Clp_Simplex *model)
Column Upper.
COINLIBAPI void COINLINKAGE Clp_addRows(Clp_Simplex *model, int number, const double *rowLower, const double *rowUpper, const int *rowStarts, const int *columns, const double *elements)
Add rows.
COINLIBAPI const double *COINLINKAGE Clp_getElements(Clp_Simplex *model)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_readMps(Clp_Simplex *model, const char *filename, int keepNames, int ignoreErrors)
Read an mps file from the given filename.
COINLIBAPI int COINLINKAGE Clp_isIterationLimitReached(Clp_Simplex *model)
Iteration limit reached?
COINLIBAPI int COINLINKAGE Clp_isProvenOptimal(Clp_Simplex *model)
Is optimality proven?
COINLIBAPI const int *COINLINKAGE Clp_getVectorLengths(Clp_Simplex *model)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_getRowStatus(Clp_Simplex *model, int sequence)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_getNumElements(Clp_Simplex *model)
Number of elements in matrix.
COINLIBAPI void COINLINKAGE Clp_setLogLevel(Clp_Simplex *model, int value)
Amount of print out: 0 - none 1 - just final 2 - just factorizations 3 - as 2 plus a bit more 4 - ver...
COINLIBAPI int COINLINKAGE Clp_initialPrimalSolve(Clp_Simplex *model)
Primal initial solve.
COINLIBAPI void COINLINKAGE Clp_setObjectiveOffset(Clp_Simplex *model, double value)
Number of rows.
COINLIBAPI void COINLINKAGE Clp_setColumnStatus(Clp_Simplex *model, int sequence, int value)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_status(Clp_Simplex *model)
Status of problem: 0 - optimal 1 - primal infeasible 2 - dual infeasible 3 - stopped on iterations et...
COINLIBAPI void COINLINKAGE Clp_rowName(Clp_Simplex *model, int iRow, char *name)
Fill in array (at least lengthNames+1 long) with a row name.
COINLIBAPI void COINLINKAGE Clp_setSecondaryStatus(Clp_Simplex *model, int status)
Number of rows.
COINLIBAPI double COINLINKAGE Clp_getObjValue(Clp_Simplex *model)
Objective value.
COINLIBAPI int COINLINKAGE Clp_getNumCols(Clp_Simplex *model)
Number of columns.
COINLIBAPI void COINLINKAGE Clp_dropNames(Clp_Simplex *model)
Drops names - makes lengthnames 0 and names empty.
COINLIBAPI int COINLINKAGE Clp_getNumRows(Clp_Simplex *model)
Number of rows.
COINLIBAPI int COINLINKAGE Clp_perturbation(Clp_Simplex *model)
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.
COINLIBAPI const double *COINLINKAGE Clp_getRowActivity(Clp_Simplex *model)
Primal row solution.
COINLIBAPI int COINLINKAGE Clp_getColumnStatus(Clp_Simplex *model, int sequence)
Number of rows.
COINLIBAPI double COINLINKAGE Clp_dualBound(Clp_Simplex *model)
Dual bound.
COINLIBAPI void COINLINKAGE Clp_setNumberIterations(Clp_Simplex *model, int numberIterations)
Number of rows.
COINLIBAPI void COINLINKAGE Clp_checkSolution(Clp_Simplex *model)
Just check solution (for external use) - sets sum of infeasibilities etc.
COINLIBAPI double COINLINKAGE Clp_objectiveOffset(Clp_Simplex *model)
Objective offset.
COINLIBAPI int maximumIterations(Clp_Simplex *model)
Maximum number of iterations.