- Timestamp:
- Jul 24, 2007 4:15:25 PM (14 years ago)
- Location:
- trunk/Cbc
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cbc/MSVisualStudio/v8/Cbc.sln
r658 r703 3 3 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cbcExamplesSample2", "cbcExamplesSample2\cbcExamplesSample2.vcproj", "{4C0B8243-2876-4C92-B6CB-2472B0571CC3}" 4 4 ProjectSection(ProjectDependencies) = postProject 5 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149} 6 {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} = {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} 7 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10} 8 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785} 9 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} 10 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C} 5 11 {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} = {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} 6 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C}7 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994}8 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785}9 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10}10 {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} = {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56}11 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149}12 12 EndProjectSection 13 13 EndProject 14 14 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cbcSolve", "cbcSolve\cbcSolve.vcproj", "{E2294708-C5BA-460A-B0A7-060A4023684A}" 15 15 ProjectSection(ProjectDependencies) = postProject 16 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149} 17 {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} = {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} 18 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10} 19 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785} 20 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} 21 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C} 16 22 {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} = {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} 17 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C}18 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994}19 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785}20 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10}21 {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} = {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56}22 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149}23 23 EndProjectSection 24 24 EndProject 25 25 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "clp", "..\..\..\Clp\MSVisualStudio\v8\clp\clp.vcproj", "{0E9135A7-CB30-48D9-A83D-0F49EC3B601B}" 26 26 ProjectSection(ProjectDependencies) = postProject 27 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149} 28 {D8879B84-4497-48E6-96A5-49B154FB0422} = {D8879B84-4497-48E6-96A5-49B154FB0422} 29 {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} = {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} 30 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10} 31 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785} 32 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} 27 33 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C} 28 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994}29 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785}30 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10}31 {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56} = {A4D8DB82-7DC6-45EE-AF08-2A6DD7E7AB56}32 {D8879B84-4497-48E6-96A5-49B154FB0422} = {D8879B84-4497-48E6-96A5-49B154FB0422}33 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149}34 34 EndProjectSection 35 35 EndProject … … 59 59 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cbcGeneric", "cbcGeneric\cbcGeneric.vcproj", "{3524E6A8-8644-41E8-A6AB-F0B1607A7C89}" 60 60 ProjectSection(ProjectDependencies) = postProject 61 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C} 62 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} 63 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785} 64 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149} 65 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10} 61 66 {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} = {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} 62 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10}63 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149}64 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785}65 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994}66 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C}67 67 EndProjectSection 68 68 EndProject 69 69 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cbcCInterfaceDll", "cbcCInterfaceDll\cbcCInterfaceDll.vcproj", "{F1E9E3F0-6639-4A84-8E0F-A2D5F11978FB}" 70 70 ProjectSection(ProjectDependencies) = postProject 71 {7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149} 72 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10} 73 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785} 74 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} 75 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C} 71 76 {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} = {DBEA3904-F0B8-408A-9E1A-6497FEBE8C42} 72 {C4867F15-438D-4FF8-8388-62FBAAA9786C} = {C4867F15-438D-4FF8-8388-62FBAAA9786C}73 {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} = {4F8F7D1C-3A9E-444D-8EE9-77F33FA05994} 74 {363BA154-FEC9-4E1E-BC23-93CEC58AB785} = {363BA154-FEC9-4E1E-BC23-93CEC58AB785} 75 {02D45875-A8CF-41B9-990B-3699C0ECFE10} = {02D45875-A8CF-41B9-990B-3699C0ECFE10}76 { 7D98E2CB-876E-4F75-9F71-77D3FE87E149} = {7D98E2CB-876E-4F75-9F71-77D3FE87E149}77 EndProjectSection 78 EndProject 79 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cbcCSosDllSample", "cbcCSosDllSample\cbcCSosDllSample.vcproj", "{8AFDEA7E-BC40-4F31-80A8-8D05485E0A1E}" 80 ProjectSection(ProjectDependencies) = postProject 81 {F1E9E3F0-6639-4A84-8E0F-A2D5F11978FB} = {F1E9E3F0-6639-4A84-8E0F-A2D5F11978FB} 77 82 EndProjectSection 78 83 EndProject … … 143 148 {F1E9E3F0-6639-4A84-8E0F-A2D5F11978FB}.Release|Win32.ActiveCfg = Release|Win32 144 149 {F1E9E3F0-6639-4A84-8E0F-A2D5F11978FB}.Release|Win32.Build.0 = Release|Win32 150 {8AFDEA7E-BC40-4F31-80A8-8D05485E0A1E}.Debug|Win32.ActiveCfg = Debug|Win32 151 {8AFDEA7E-BC40-4F31-80A8-8D05485E0A1E}.Debug|Win32.Build.0 = Debug|Win32 152 {8AFDEA7E-BC40-4F31-80A8-8D05485E0A1E}.Release|Win32.ActiveCfg = Release|Win32 153 {8AFDEA7E-BC40-4F31-80A8-8D05485E0A1E}.Release|Win32.Build.0 = Release|Win32 145 154 EndGlobalSection 146 155 GlobalSection(SolutionProperties) = preSolution -
trunk/Cbc/MSVisualStudio/v8/cbcCInterfaceDll/cbcCInterfaceDll.vcproj
r658 r703 63 63 <Tool 64 64 Name="VCLinkerTool" 65 OutputFile="$( OutDir)/cbcCInterfaceDll.dll"65 OutputFile="$(ProjectDir)../../cbcCInterfacegDll.dll" 66 66 LinkIncremental="2" 67 67 GenerateDebugInformation="true" … … 140 140 <Tool 141 141 Name="VCLinkerTool" 142 OutputFile="$( OutDir)/cbcCInterfaceDll.dll"142 OutputFile="$(ProjectDir)../../cbcCInterfaceDll.dll" 143 143 LinkIncremental="1" 144 144 GenerateDebugInformation="true" … … 198 198 </File> 199 199 </Filter> 200 <Filter201 Name="Resource Files"202 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"203 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"204 >205 </Filter>206 200 </Files> 207 201 <Globals> -
trunk/Cbc/MSVisualStudio/v8/libCbc/libCbc.vcproj
r659 r703 566 566 </File> 567 567 <File 568 RelativePath="..\..\..\src\CbcLinked.cpp" 569 > 570 </File> 571 <File 568 572 RelativePath="..\..\..\..\Cbc\src\CbcMessage.cpp" 569 573 > … … 855 859 </File> 856 860 <File 861 RelativePath="..\..\..\src\CbcLinked.hpp" 862 > 863 </File> 864 <File 857 865 RelativePath="..\..\..\..\Cbc\src\CbcMessage.hpp" 858 866 > -
trunk/Cbc/src/Cbc_C_Interface.cpp
r643 r703 746 746 } 747 747 /* Maximum number of iterations */ 748 COINLIBAPI int 748 COINLIBAPI int COINLINKAGE 749 749 Cbc_maximumIterations(Cbc_Model * model) 750 750 { … … 775 775 } 776 776 /* Maximum number of nodes */ 777 COINLIBAPI int 777 COINLIBAPI int COINLINKAGE 778 778 Cbc_maxNumNode(Cbc_Model * model) 779 779 { … … 800 800 } 801 801 /* Maximum number of solutions */ 802 COINLIBAPI int 802 COINLIBAPI int COINLINKAGE 803 803 Cbc_maxNumSol(Cbc_Model * model) 804 804 { … … 1030 1030 } 1031 1031 /* Row lower */ 1032 COINLIBAPI double * COINLINKAGE1032 COINLIBAPI double * COINLINKAGE 1033 1033 Cbc_rowLower(Cbc_Model * model) 1034 1034 { … … 1047 1047 } 1048 1048 /* Row upper */ 1049 COINLIBAPI double * COINLINKAGE1049 COINLIBAPI double * COINLINKAGE 1050 1050 Cbc_rowUpper(Cbc_Model * model) 1051 1051 { … … 1130 1130 1131 1131 // Column starts in matrix 1132 COINLIBAPI const CoinBigIndex * COINLINKAGE Cbc_getVectorStarts(Cbc_Model * model) 1132 COINLIBAPI const CoinBigIndex * COINLINKAGE 1133 Cbc_getVectorStarts(Cbc_Model * model) 1133 1134 { 1134 1135 const CoinPackedMatrix * matrix = NULL; … … 1273 1274 /* Copy in status vector */ 1274 1275 COINLIBAPI void COINLINKAGE 1275 setBasisStatus(Cbc_Model * model, int * cstat, int * rstat)1276 { 1277 const char prefix[] = "Cbc_C_Interface:: setBasisStatus(): ";1276 Cbc_setBasisStatus(Cbc_Model * model, int * cstat, int * rstat) 1277 { 1278 const char prefix[] = "Cbc_C_Interface::Cbc_setBasisStatus(): "; 1278 1279 // const int VERBOSE = 1; 1279 1280 if (VERBOSE>0) printf("%s begin\n",prefix); … … 1325 1326 if (VERBOSE>0) printf("%s begin\n",prefix); 1326 1327 1328 // reuse existing log level 1329 int oldLogLevel = model->model_->messageHandler()->logLevel(); 1327 1330 // Will be copy of users one 1328 1331 delete model->handler_; … … 1331 1334 model->handler_->setModel(model); 1332 1335 model->model_->passInMessageHandler(model->handler_); 1336 model->model_->messageHandler()->setLogLevel(oldLogLevel); 1333 1337 1334 1338 if (VERBOSE>0) printf("%s return\n",prefix); … … 1477 1481 1478 1482 OsiSolverInterface * solver = model->model_->solver(); 1479 solver->setHintParam(OsiDoScale,mode); 1483 bool modeBool = (mode == 0); 1484 solver->setHintParam(OsiDoScale, modeBool); 1480 1485 1481 1486 if (VERBOSE>0) printf("%s return\n",prefix); … … 2207 2212 } 2208 2213 /** Number of nodes explored in B&B tree */ 2209 COINLIBAPI int COINLINKAGE Cbc_getNodeCount(Cbc_Model * model) 2214 COINLIBAPI int COINLINKAGE 2215 Cbc_getNodeCount(Cbc_Model * model) 2210 2216 { 2211 2217 const char prefix[] = "Cbc_C_Interface::Cbc_getNodeCount(): "; … … 2220 2226 } 2221 2227 /** Return a copy of this model */ 2222 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_clone(Cbc_Model * model) 2228 COINLIBAPI Cbc_Model * COINLINKAGE 2229 Cbc_clone(Cbc_Model * model) 2223 2230 { 2224 2231 const char prefix[] = "Cbc_C_Interface::Cbc_clone(): "; 2225 const int VERBOSE = 1;2232 // const int VERBOSE = 1; 2226 2233 if (VERBOSE>0) printf("%s begin\n",prefix); 2227 2234 … … 2235 2242 } 2236 2243 /** Set this the variable to be continuous */ 2237 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_setContinuous(Cbc_Model * model, int iColumn) 2244 COINLIBAPI Cbc_Model * COINLINKAGE 2245 Cbc_setContinuous(Cbc_Model * model, int iColumn) 2238 2246 { 2239 2247 const char prefix[] = "Cbc_C_Interface::Cbc_setContinuous(): "; … … 2245 2253 if (VERBOSE>0) printf("%s return\n",prefix); 2246 2254 return model; 2247 }2248 /* Delete all object information */2249 COINLIBAPI void COINLINKAGE2250 Cbc_deleteObjects(Cbc_Model * model)2251 {2252 const char prefix[] = "Cbc_C_Interface::Cbc_deleteObjects(): ";2253 // const int VERBOSE = 2;2254 if (VERBOSE>0) printf("%s begin\n",prefix);2255 2256 model->model_->deleteObjects();2257 2258 if (VERBOSE>0) printf("%s return\n",prefix);2259 return;2260 2255 } 2261 2256 /* Add an SOS constraint to the model */ … … 2265 2260 { 2266 2261 const char prefix[] = "Cbc_C_Interface::Cbc_addSOS_Dense(): "; 2267 const int VERBOSE = 2;2262 // const int VERBOSE = 2; 2268 2263 if (VERBOSE>0) printf("%sbegin\n",prefix); 2269 2264 … … 2292 2287 2293 2288 // Make a CbcSOS and assign it to objects 2294 printf("%s len[%i] = %i\n",prefix, i, len[i]);2289 if (VERBOSE>1) printf("%s len[%i] = %i\n",prefix, i, len[i]); 2295 2290 l = len[i]; 2296 2291 w = which[i]; … … 2316 2311 return; 2317 2312 } 2318 /* Add SOS constraints to the model using row-order matrix */2313 /** Add SOS constraints to the model using row-order matrix */ 2319 2314 COINLIBAPI void COINLINKAGE 2320 2315 Cbc_addSOS_Sparse(Cbc_Model * model, const int * rowStarts, … … 2403 2398 } 2404 2399 2405 /* Print the solution */ 2400 /** Delete all object information */ 2401 COINLIBAPI void COINLINKAGE 2402 Cbc_deleteObjects(Cbc_Model * model) 2403 { 2404 const char prefix[] = "Cbc_C_Interface::Cbc_deleteObjects(): "; 2405 // const int VERBOSE = 2; 2406 if (VERBOSE>0) printf("%s begin\n",prefix); 2407 2408 model->model_->deleteObjects(); 2409 2410 if (VERBOSE>0) printf("%s return\n",prefix); 2411 return; 2412 } 2413 2414 /** Print the solution */ 2406 2415 COINLIBAPI void COINLINKAGE 2407 2416 Cbc_printSolution(Cbc_Model * model) … … 2507 2516 return; 2508 2517 } 2518 /** Dual initial solve */ 2519 COINLIBAPI int COINLINKAGE 2520 Cbc_initialDualSolve(Cbc_Model * model) 2521 { 2522 return 0; 2523 } 2524 /** Primal initial solve */ 2525 COINLIBAPI int COINLINKAGE 2526 Cbc_initialPrimalSolve(Cbc_Model * model) 2527 { 2528 return 0; 2529 } 2530 /** Dual algorithm - see ClpSimplexDual.hpp for method */ 2531 COINLIBAPI int COINLINKAGE 2532 Cbc_dual(Cbc_Model * model, int ifValuesPass) 2533 { 2534 return 0; 2535 } 2536 /** Primal algorithm - see ClpSimplexPrimal.hpp for method */ 2537 COINLIBAPI int COINLINKAGE 2538 Cbc_primal(Cbc_Model * model, int ifValuesPass) 2539 { 2540 return 0; 2541 } 2509 2542 #if defined(__MWERKS__) 2510 2543 #pragma export off -
trunk/Cbc/src/Cbc_C_Interface.h
r487 r703 13 13 14 14 #ifdef __cplusplus 15 extern "C"{15 extern "C"{ 16 16 #endif 17 17 … … 26 26 /*@{*/ 27 27 28 /** Default constructor */ 29 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_newModel(void); 30 /** Destructor */ 31 COINLIBAPI void COINLINKAGE Cbc_deleteModel(Cbc_Model * model); 28 /** Version */ 29 COINLIBAPI double COINLINKAGE Cbc_getVersion() 30 ; 31 /** Default Cbc_Model constructor */ 32 COINLIBAPI Cbc_Model * COINLINKAGE 33 Cbc_newModel() 34 ; 35 /** Cbc_Model Destructor */ 36 COINLIBAPI void COINLINKAGE 37 Cbc_deleteModel(Cbc_Model * model) 38 ; 32 39 /*@}*/ 33 40 34 41 /**@name Load model - loads some stuff and initializes others */ 35 42 /*@{*/ 36 /* *Loads a problem (the constraints on the43 /* Loads a problem (the constraints on the 37 44 rows are given by lower and upper bounds). If a pointer is NULL then the 38 45 following values are the default: … … 44 51 <li> <code>obj</code>: all variables have 0 objective coefficient 45 52 </ul> 46 */ 47 /** Just like the other loadProblem() method except that the matrix is 48 given in a standard column major ordered format (without gaps). */ 49 COINLIBAPI void COINLINKAGE Cbc_loadProblem (Cbc_Model * model, const int numcols, const int numrows, 50 const CoinBigIndex * start, const int* index, 51 const double* value, 52 const double* collb, const double* colub, 53 const double* obj, 54 const double* rowlb, const double* rowub); 53 54 Just like the other loadProblem() method except that the matrix is 55 given in a standard column major ordered format (without gaps). 56 */ 57 COINLIBAPI void COINLINKAGE 58 Cbc_loadProblem (Cbc_Model * model, const int numcols, const int numrows, 59 const CoinBigIndex * start, const int* index, 60 const double* value, 61 const double* collb, const double* colub, 62 const double* obj, 63 const double* rowlb, const double* rowub) 64 ; 55 65 /** Read an mps file from the given filename */ 56 COINLIBAPI int COINLINKAGE Cbc_readMps(Cbc_Model * model,const char *filename); 66 COINLIBAPI int COINLINKAGE 67 Cbc_readMps(Cbc_Model * model,const char *filename) 68 ; 57 69 /** Write an mps file from the given filename */ 58 COINLIBAPI void COINLINKAGE Cbc_writeMps(Cbc_Model * model,const char *filename); /** Copy in integer informations */ 59 /** Copy in integer informations */ 60 COINLIBAPI void COINLINKAGE Cbc_copyInIntegerInformation(Cbc_Model * model,const char * information); 70 COINLIBAPI void COINLINKAGE 71 Cbc_writeMps(Cbc_Model * model,const char *filename) 72 ; 73 /** Integer information */ 74 COINLIBAPI char * COINLINKAGE 75 Cbc_integerInformation(Cbc_Model * model) 76 ; 77 /** Copy in integer information */ 78 COINLIBAPI void COINLINKAGE 79 Cbc_copyInIntegerInformation(Cbc_Model * model,const char * information) 80 ; 61 81 /** Drop integer informations */ 62 COINLIBAPI void COINLINKAGE Cbc_deleteIntegerInformation(Cbc_Model * model); 82 COINLIBAPI void COINLINKAGE 83 Cbc_deleteIntegerInformation(Cbc_Model * model) 84 ; 63 85 /** Resizes rim part of model */ 64 COINLIBAPI void COINLINKAGE Cbc_resize (Cbc_Model * model, int newNumberRows, int newNumberColumns); 86 COINLIBAPI void COINLINKAGE 87 Cbc_resize (Cbc_Model * model, int newNumberRows, int newNumberColumns) 88 ; 65 89 /** Deletes rows */ 66 COINLIBAPI void COINLINKAGE Cbc_deleteRows(Cbc_Model * model, int number, const int * which); 90 COINLIBAPI void COINLINKAGE 91 Cbc_deleteRows(Cbc_Model * model, int number, const int * which) 92 ; 67 93 /** Add rows */ 68 COINLIBAPI void COINLINKAGE Cbc_addRows(Cbc_Model * model, int number, const double * rowLower, 69 const double * rowUpper, 70 const int * rowStarts, const int * columns, 71 const double * elements); 94 COINLIBAPI void COINLINKAGE 95 Cbc_addRows(Cbc_Model * model, const int number, const double * rowLower, 96 const double * rowUpper, 97 const int * rowStarts, const int * columns, 98 const double * elements) 99 ; 72 100 73 101 /** Deletes columns */ 74 COINLIBAPI void COINLINKAGE Cbc_deleteColumns(Cbc_Model * model, int number, const int * which); 102 COINLIBAPI void COINLINKAGE 103 Cbc_deleteColumns(Cbc_Model * model, int number, const int * which) 104 ; 75 105 /** Add columns */ 76 COINLIBAPI void COINLINKAGE Cbc_addColumns(Cbc_Model * model, int number, const double * columnLower, 77 const double * columnUpper, 78 const double * objective, 79 const int * columnStarts, const int * rows, 80 const double * elements); 106 COINLIBAPI void COINLINKAGE 107 Cbc_addColumns(Cbc_Model * model, int number, const double * columnLower, 108 const double * columnUpper, 109 const double * objective, 110 const int * columnStarts, const int * rows, 111 const double * elements); 81 112 /** Drops names - makes lengthnames 0 and names empty */ 82 COINLIBAPI void COINLINKAGE Cbc_dropNames(Cbc_Model * model); 113 COINLIBAPI void COINLINKAGE 114 Cbc_dropNames(Cbc_Model * model) 115 ; 83 116 /** Copies in names */ 84 COINLIBAPI void COINLINKAGE Cbc_copyNames(Cbc_Model * model, const char * const * rowNames, 85 const char * const * columnNames); 117 COINLIBAPI void COINLINKAGE 118 Cbc_copyNames(Cbc_Model * model, const char * const * rowNamesIn, 119 const char * const * columnNamesIn) 120 ; 86 121 87 122 /*@}*/ … … 89 124 /*@{*/ 90 125 /** Number of rows */ 91 COINLIBAPI int COINLINKAGE Cbc_numberRows(Cbc_Model * model); 126 COINLIBAPI int COINLINKAGE 127 Cbc_numberRows(Cbc_Model * model) 128 ; 92 129 /** Number of columns */ 93 COINLIBAPI int COINLINKAGE Cbc_numberColumns(Cbc_Model * model); 130 COINLIBAPI int COINLINKAGE 131 Cbc_numberColumns(Cbc_Model * model) 132 ; 94 133 /** Primal tolerance to use */ 95 COINLIBAPI double COINLINKAGE Cbc_primalTolerance(Cbc_Model * model); 96 COINLIBAPI void COINLINKAGE Cbc_setPrimalTolerance(Cbc_Model * model, double value) ; 134 COINLIBAPI double COINLINKAGE 135 Cbc_primalTolerance(Cbc_Model * model) 136 ; 137 COINLIBAPI void COINLINKAGE 138 Cbc_setPrimalTolerance(Cbc_Model * model, double value) 139 ; 97 140 /** Dual tolerance to use */ 98 COINLIBAPI double COINLINKAGE Cbc_dualTolerance(Cbc_Model * model); 99 COINLIBAPI void COINLINKAGE Cbc_setDualTolerance(Cbc_Model * model, double value) ; 141 COINLIBAPI double COINLINKAGE 142 Cbc_dualTolerance(Cbc_Model * model) 143 ; 144 COINLIBAPI void COINLINKAGE 145 Cbc_setDualTolerance(Cbc_Model * model, double value) 146 ; 100 147 /* Integer tolerance to use */ 101 COINLIBAPI double COINLINKAGE Cbc_integerTolerance(Cbc_Model * model); 102 COINLIBAPI void COINLINKAGE Cbc_setIntegerTolerance(Cbc_Model * model, double value); 148 COINLIBAPI double COINLINKAGE 149 Cbc_integerTolerance(Cbc_Model * model) 150 ; 151 COINLIBAPI void COINLINKAGE 152 Cbc_setIntegerTolerance(Cbc_Model * model, double value) 153 ; 103 154 /** Dual objective limit */ 104 COINLIBAPI double COINLINKAGE Cbc_dualObjectiveLimit(Cbc_Model * model); 105 COINLIBAPI void COINLINKAGE Cbc_setDualObjectiveLimit(Cbc_Model * model, double value); 155 COINLIBAPI double COINLINKAGE 156 Cbc_dualObjectiveLimit(Cbc_Model * model) 157 ; 158 COINLIBAPI void COINLINKAGE 159 Cbc_setDualObjectiveLimit(Cbc_Model * model, double value) 160 ; 106 161 /** Objective offset */ 107 COINLIBAPI double COINLINKAGE Cbc_objectiveOffset(Cbc_Model * model); 108 COINLIBAPI void COINLINKAGE Cbc_setObjectiveOffset(Cbc_Model * model, double value); 162 COINLIBAPI double COINLINKAGE 163 Cbc_objectiveOffset(Cbc_Model * model) 164 ; 165 COINLIBAPI void COINLINKAGE 166 Cbc_setObjectiveOffset(Cbc_Model * model, double value) 167 ; 109 168 /** Fills in array with problem name */ 110 COINLIBAPI void COINLINKAGE Cbc_problemName(Cbc_Model * model, int maxNumberCharacters, char * array); 169 COINLIBAPI void COINLINKAGE 170 Cbc_problemName(Cbc_Model * model, int maxNumberCharacters, char * array) 171 ; 111 172 /** Sets problem name. Must have \0 at end. */ 112 173 COINLIBAPI int COINLINKAGE 113 Cbc_setProblemName(Cbc_Model * model, int maxNumberCharacters, char * array); 174 Cbc_setProblemName(Cbc_Model * model, int maxNumberCharacters, char * array) 175 ; 114 176 /** Number of iterations */ 115 COINLIBAPI int COINLINKAGE Cbc_numberIterations(Cbc_Model * model); 116 COINLIBAPI void COINLINKAGE Cbc_setNumberIterations(Cbc_Model * model, int numberIterations); 117 /** Maximum number of iterations (only useful in initial solve) */ 118 COINLIBAPI int Cbc_maximumIterations(Cbc_Model * model); 119 COINLIBAPI void COINLINKAGE Cbc_setMaximumIterations(Cbc_Model * model, int value); 177 COINLIBAPI int COINLINKAGE 178 Cbc_numberIterations(Cbc_Model * model) 179 ; 180 COINLIBAPI void COINLINKAGE 181 Cbc_setNumberIterations(Cbc_Model * model, int numberIterations) 182 ; 183 /** Maximum number of iterations */ 184 COINLIBAPI int COINLINKAGE 185 Cbc_maximumIterations(Cbc_Model * model) 186 ; 187 COINLIBAPI void COINLINKAGE 188 Cbc_setMaximumIterations(Cbc_Model * model, int value) 189 ; 190 /** Maximum number of nodes */ 191 COINLIBAPI int COINLINKAGE 192 Cbc_maxNumNode(Cbc_Model * model) 193 ; 194 COINLIBAPI void COINLINKAGE 195 Cbc_setMaxNumNode(Cbc_Model * model, int value) 196 ; 197 /* Maximum number of solutions */ 198 COINLIBAPI int COINLINKAGE 199 Cbc_maxNumSol(Cbc_Model * model) 200 ; 201 COINLIBAPI void COINLINKAGE 202 Cbc_setMaxNumSol(Cbc_Model * model, int value) 203 ; 120 204 /** Maximum time in seconds (from when set called) */ 121 COINLIBAPI double COINLINKAGE Cbc_maximumSeconds(Cbc_Model * model); 122 COINLIBAPI void COINLINKAGE Cbc_setMaximumSeconds(Cbc_Model * model, double value); 205 COINLIBAPI double COINLINKAGE 206 Cbc_maximumSeconds(Cbc_Model * model) 207 ; 208 COINLIBAPI void COINLINKAGE 209 Cbc_setMaximumSeconds(Cbc_Model * model, double value) 210 ; 123 211 /** Returns true if hit maximum iterations (or time) */ 124 COINLIBAPI int COINLINKAGE Cbc_hitMaximumIterations(Cbc_Model * model); 212 COINLIBAPI int COINLINKAGE 213 Cbc_hitMaximumIterations(Cbc_Model * model) 214 ; 125 215 /** Status of problem: 126 216 0 - optimal … … 130 220 4 - stopped due to errors 131 221 */ 132 COINLIBAPI int COINLINKAGE Cbc_LPstatus(Cbc_Model * model); 222 COINLIBAPI int COINLINKAGE 223 Cbc_status(Cbc_Model * model) 224 ; 133 225 /** Set problem status */ 134 COINLIBAPI void COINLINKAGE Cbc_setProblemLPStatus(Cbc_Model * model, int problemStatus); 226 COINLIBAPI void COINLINKAGE 227 Cbc_setProblemStatus(Cbc_Model * model, int problemStatus) 228 ; 135 229 /** Secondary status of problem - may get extended 136 230 0 - none … … 140 234 4 - scaled problem optimal - unscaled has both dual and primal infeasibilities 141 235 */ 142 COINLIBAPI int COINLINKAGE Cbc_secondaryLPStatus(Cbc_Model * model); 143 COINLIBAPI void COINLINKAGE Cbc_setSecondaryLPStatus(Cbc_Model * model, int status); 144 /** Final status of BAB problem 145 Some of these can be found out by is...... functions 146 -1 before branchAndBound 147 0 finished - check isProvenOptimal or isProvenInfeasible to see if solution found 148 (or check value of best solution) 149 1 stopped - on maxnodes, maxsols, maxtime 150 2 difficulties so run was abandoned 151 (5 event user programmed event occurred) 152 */ 153 COINLIBAPI int COINLINKAGE Cbc_status(Cbc_Model * model); 154 /** Set problem status */ 155 COINLIBAPI void COINLINKAGE Cbc_setProblemStatus(Cbc_Model * model, int problemStatus); 156 /** Secondary status of BAB problem 157 -1 unset (status_ will also be -1) 158 0 search completed with solution 159 1 linear relaxation not feasible (or worse than cutoff) 160 2 stopped on gap 161 3 stopped on nodes 162 4 stopped on time 163 5 stopped on user event 164 6 stopped on solutions 165 7 linear relaxation unbounded 166 */ 167 COINLIBAPI int COINLINKAGE Cbc_secondaryStatus(Cbc_Model * model); 168 COINLIBAPI void COINLINKAGE Cbc_setSecondaryStatus(Cbc_Model * model, int status); 236 COINLIBAPI int COINLINKAGE 237 Cbc_secondaryStatus(Cbc_Model * model) 238 ; 239 COINLIBAPI void COINLINKAGE 240 Cbc_setSecondaryStatus(Cbc_Model * model, int status) 241 ; 169 242 /** Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore */ 170 COINLIBAPI double COINLINKAGE Cbc_optimizationDirection(Cbc_Model * model); 171 COINLIBAPI void COINLINKAGE Cbc_setOptimizationDirection(Cbc_Model * model, double value); 243 COINLIBAPI double COINLINKAGE 244 Cbc_optimizationDirection(Cbc_Model * model) 245 ; 246 COINLIBAPI void COINLINKAGE 247 Cbc_setOptimizationDirection(Cbc_Model * model, double value) 248 ; 172 249 /** Primal row solution */ 173 COINLIBAPI double * COINLINKAGE Cbc_primalRowSolution(Cbc_Model * model); 250 COINLIBAPI double * COINLINKAGE 251 Cbc_primalRowSolution(Cbc_Model * model) 252 ; 174 253 /** Primal column solution */ 175 COINLIBAPI double * COINLINKAGE Cbc_primalColumnSolution(Cbc_Model * model); 254 COINLIBAPI double * COINLINKAGE 255 Cbc_primalColumnSolution(Cbc_Model * model) 256 ; 176 257 /** Dual row solution */ 177 COINLIBAPI double * COINLINKAGE Cbc_dualRowSolution(Cbc_Model * model); 258 COINLIBAPI double * COINLINKAGE 259 Cbc_dualRowSolution(Cbc_Model * model) 260 ; 178 261 /** Reduced costs */ 179 COINLIBAPI double * COINLINKAGE Cbc_dualColumnSolution(Cbc_Model * model); 262 COINLIBAPI double * COINLINKAGE 263 Cbc_dualColumnSolution(Cbc_Model * model) 264 ; 180 265 /** Row lower */ 181 COINLIBAPI double* COINLINKAGE Cbc_rowLower(Cbc_Model * model); 266 COINLIBAPI double* COINLINKAGE 267 Cbc_rowLower(Cbc_Model * model) 268 ; 182 269 /** Row upper */ 183 COINLIBAPI double* COINLINKAGE Cbc_rowUpper(Cbc_Model * model); 270 COINLIBAPI double* COINLINKAGE 271 Cbc_rowUpper(Cbc_Model * model) 272 ; 184 273 /** Objective */ 185 COINLIBAPI double * COINLINKAGE Cbc_objective(Cbc_Model * model); 274 COINLIBAPI double * COINLINKAGE 275 Cbc_objective(Cbc_Model * model) 276 ; 186 277 /** Column Lower */ 187 COINLIBAPI double * COINLINKAGE Cbc_columnLower(Cbc_Model * model); 278 COINLIBAPI double * COINLINKAGE 279 Cbc_columnLower(Cbc_Model * model) 280 ; 188 281 /** Column Upper */ 189 COINLIBAPI double * COINLINKAGE Cbc_columnUpper(Cbc_Model * model); 282 COINLIBAPI double * COINLINKAGE 283 Cbc_columnUpper(Cbc_Model * model) 284 ; 190 285 /** Number of elements in matrix */ 191 COINLIBAPI int COINLINKAGE Cbc_getNumElements(Cbc_Model * model); 286 COINLIBAPI int COINLINKAGE 287 Cbc_getNumElements(Cbc_Model * model) 288 ; 192 289 /** Column starts in matrix */ 193 COINLIBAPI const CoinBigIndex * COINLINKAGE Cbc_getVectorStarts(Cbc_Model * model); 290 COINLIBAPI const CoinBigIndex * COINLINKAGE 291 Cbc_getVectorStarts(Cbc_Model * model) 292 ; 194 293 /** Row indices in matrix */ 195 COINLIBAPI const int * COINLINKAGE Cbc_getIndices(Cbc_Model * model); 294 COINLIBAPI const int * COINLINKAGE 295 Cbc_getIndices(Cbc_Model * model) 296 ; 196 297 /** Column vector lengths in matrix */ 197 COINLIBAPI const int * COINLINKAGE Cbc_getVectorLengths(Cbc_Model * model); 298 COINLIBAPI const int * COINLINKAGE 299 Cbc_getVectorLengths(Cbc_Model * model) 300 ; 198 301 /** Element values in matrix */ 199 COINLIBAPI const double * COINLINKAGE Cbc_getElements(Cbc_Model * model); 302 COINLIBAPI const double * COINLINKAGE 303 Cbc_getElements(Cbc_Model * model) 304 ; 200 305 /** Objective value */ 201 COINLIBAPI double COINLINKAGE Cbc_objectiveValue(Cbc_Model * model);202 /** Integer information */203 COINLIBAPI char * COINLINKAGE Cbc_integerInformation(Cbc_Model * model);306 COINLIBAPI double COINLINKAGE 307 Cbc_objectiveValue(Cbc_Model * model) 308 ; 204 309 /** Infeasibility/unbounded ray (NULL returned if none/wrong) 205 310 Up to user to use delete [] on these arrays. */ 206 COINLIBAPI double * COINLINKAGE Cbc_infeasibilityRay(Cbc_Model * model); 207 COINLIBAPI double * COINLINKAGE Cbc_unboundedRay(Cbc_Model * model); 311 COINLIBAPI double * COINLINKAGE 312 Cbc_infeasibilityRay(Cbc_Model * model) 313 ; 314 COINLIBAPI double * COINLINKAGE 315 Cbc_unboundedRay(Cbc_Model * model) 316 ; 208 317 /** See if status array exists (partly for OsiClp) */ 209 COINLIBAPI int COINLINKAGE Cbc_statusExists(Cbc_Model * model); 318 COINLIBAPI int COINLINKAGE 319 Cbc_statusExists(Cbc_Model * model) 320 ; 210 321 /** Return address of status array (char[numberRows+numberColumns]) */ 211 COINLIBAPI void COINLINKAGE Cbc_getBasisStatus(Cbc_Model * model, int * cstat, int * rstat); 322 COINLIBAPI void COINLINKAGE 323 Cbc_getBasisStatus(Cbc_Model * model, int * cstat, int * rstat) 324 ; 212 325 /** Copy in status vector */ 213 COINLIBAPI void COINLINKAGE setBasisStatus(Cbc_Model * model, int * cstat, int * rstat); 326 COINLIBAPI void COINLINKAGE 327 Cbc_setBasisStatus(Cbc_Model * model, int * cstat, int * rstat) 328 ; 214 329 215 330 /** User pointer for whatever reason */ 216 COINLIBAPI void COINLINKAGE Cbc_setUserPointer (Cbc_Model * model, void * pointer); 217 COINLIBAPI void * COINLINKAGE Cbc_getUserPointer (Cbc_Model * model); 331 COINLIBAPI void COINLINKAGE 332 Cbc_setUserPointer (Cbc_Model * model, void * pointer) 333 ; 334 COINLIBAPI void * COINLINKAGE 335 Cbc_getUserPointer (Cbc_Model * model) 336 ; 218 337 /*@}*/ 219 338 /**@name Message handling. Call backs are handled by ONE function */ … … 221 340 /** Pass in Callback function. 222 341 Message numbers up to 1000000 are Clp, Coin ones have 1000000 added */ 223 COINLIBAPI void COINLINKAGE Cbc_registerCallBack(Cbc_Model * model, 224 cbc_callback userCallBack); 342 COINLIBAPI void COINLINKAGE 343 Cbc_registerCallBack(Cbc_Model * model, 344 cbc_callback userCallBack) 345 ; 225 346 /** Unset Callback function */ 226 COINLIBAPI void COINLINKAGE Cbc_clearCallBack(Cbc_Model * model); 347 COINLIBAPI void COINLINKAGE 348 Cbc_clearCallBack(Cbc_Model * model) 349 ; 227 350 /** Amount of print out: 228 351 0 - none … … 233 356 above that 8,16,32 etc just for selective debug 234 357 */ 235 COINLIBAPI void COINLINKAGE Cbc_setLogLevel(Cbc_Model * model, int value); 236 COINLIBAPI int COINLINKAGE Cbc_logLevel(Cbc_Model * model); 358 COINLIBAPI void COINLINKAGE 359 Cbc_setLogLevel(Cbc_Model * model, int value) 360 ; 361 COINLIBAPI int COINLINKAGE 362 Cbc_logLevel(Cbc_Model * model) 363 ; 237 364 /** length of names (0 means no names0 */ 238 COINLIBAPI int COINLINKAGE Cbc_lengthNames(Cbc_Model * model); 365 COINLIBAPI int COINLINKAGE 366 Cbc_lengthNames(Cbc_Model * model) 367 ; 239 368 /** Fill in array (at least lengthNames+1 long) with a row name */ 240 COINLIBAPI void COINLINKAGE Cbc_rowName(Cbc_Model * model, int iRow, char * name); 369 COINLIBAPI void COINLINKAGE 370 Cbc_rowName(Cbc_Model * model, int iRow, char * name) 371 ; 241 372 /** Fill in array (at least lengthNames+1 long) with a column name */ 242 COINLIBAPI void COINLINKAGE Cbc_columnName(Cbc_Model * model, int iColumn, char * name); 373 COINLIBAPI void COINLINKAGE 374 Cbc_columnName(Cbc_Model * model, int iColumn, char * name) 375 ; 243 376 244 377 /*@}*/ … … 250 383 See ClpSolve.hpp for options 251 384 */ 252 COINLIBAPI int COINLINKAGE Cbc_initialSolve(Cbc_Model * model); 385 COINLIBAPI int COINLINKAGE 386 Cbc_initialSolve(Cbc_Model * model) 387 ; 253 388 /* General solve algorithm which can do presolve. 254 389 See CbcModel.hpp for options 255 390 */ 256 COINLIBAPI int COINLINKAGE Cbc_branchAndBound(Cbc_Model * model); 257 /** Dual initial solve */ 258 COINLIBAPI int COINLINKAGE Cbc_initialDualSolve(Cbc_Model * model); 259 /** Primal initial solve */ 260 COINLIBAPI int COINLINKAGE Cbc_initialPrimalSolve(Cbc_Model * model); 261 /** Dual algorithm - see ClpSimplexDual.hpp for method */ 262 COINLIBAPI int COINLINKAGE Cbc_dual(Cbc_Model * model, int ifValuesPass); 263 /** Primal algorithm - see ClpSimplexPrimal.hpp for method */ 264 COINLIBAPI int COINLINKAGE Cbc_primal(Cbc_Model * model, int ifValuesPass); 391 COINLIBAPI int COINLINKAGE 392 Cbc_branchAndBound(Cbc_Model * model) 393 ; 265 394 /** Sets or unsets scaling, 0 -off, 1 equilibrium, 2 geometric, 3, auto, 4 dynamic(later) */ 266 COINLIBAPI void COINLINKAGE Cbc_scaling(Cbc_Model * model, int mode); 395 COINLIBAPI void COINLINKAGE 396 Cbc_scaling(Cbc_Model * model, int mode) 397 ; 267 398 /** Gets scalingFlag */ 268 COINLIBAPI int COINLINKAGE Cbc_scalingFlag(Cbc_Model * model); 399 COINLIBAPI int COINLINKAGE 400 Cbc_scalingFlag(Cbc_Model * model) 401 ; 269 402 /** Crash - at present just aimed at dual, returns 270 403 -2 if dual preferred and crash basis created … … 281 414 2 Mini iterations 282 415 */ 283 COINLIBAPI int COINLINKAGE Cbc_crash(Cbc_Model * model, double gap,int pivot); 416 COINLIBAPI int COINLINKAGE 417 Cbc_crash(Cbc_Model * model, double gap,int pivot) 418 ; 284 419 /*@}*/ 285 420 … … 288 423 /*@{*/ 289 424 /** If problem is primal feasible */ 290 COINLIBAPI int COINLINKAGE Cbc_primalFeasible(Cbc_Model * model); 425 COINLIBAPI int COINLINKAGE 426 Cbc_primalFeasible(Cbc_Model * model) 427 ; 291 428 /** If problem is dual feasible */ 292 COINLIBAPI int COINLINKAGE Cbc_dualFeasible(Cbc_Model * model); 429 COINLIBAPI int COINLINKAGE 430 Cbc_dualFeasible(Cbc_Model * model) 431 ; 293 432 /** Dual bound */ 294 COINLIBAPI double COINLINKAGE Cbc_dualBound(Cbc_Model * model); 295 COINLIBAPI void COINLINKAGE Cbc_setDualBound(Cbc_Model * model, double value); 433 COINLIBAPI double COINLINKAGE 434 Cbc_dualBound(Cbc_Model * model) 435 ; 436 COINLIBAPI void COINLINKAGE 437 Cbc_setDualBound(Cbc_Model * model, double value) 438 ; 296 439 /** Infeasibility cost */ 297 COINLIBAPI double COINLINKAGE Cbc_infeasibilityCost(Cbc_Model * model); 298 COINLIBAPI void COINLINKAGE Cbc_setInfeasibilityCost(Cbc_Model * model, double value); 440 COINLIBAPI double COINLINKAGE 441 Cbc_infeasibilityCost(Cbc_Model * model) 442 ; 443 COINLIBAPI void COINLINKAGE 444 Cbc_setInfeasibilityCost(Cbc_Model * model, double value) 445 ; 299 446 /** Perturbation: 300 447 50 - switch on perturbation … … 305 452 others are for playing 306 453 */ 307 COINLIBAPI int COINLINKAGE Cbc_perturbation(Cbc_Model * model); 308 COINLIBAPI void COINLINKAGE Cbc_setPerturbation(Cbc_Model * model, int value); 454 COINLIBAPI int COINLINKAGE 455 Cbc_perturbation(Cbc_Model * model) 456 ; 457 COINLIBAPI void COINLINKAGE 458 Cbc_setPerturbation(Cbc_Model * model, int value) 459 ; 309 460 /** Current (or last) algorithm */ 310 COINLIBAPI int COINLINKAGE Cbc_algorithm(Cbc_Model * model); 461 COINLIBAPI int COINLINKAGE 462 Cbc_algorithm(Cbc_Model * model) 463 ; 311 464 /** Set algorithm */ 312 COINLIBAPI void COINLINKAGE Cbc_setAlgorithm(Cbc_Model * model, int value); 465 COINLIBAPI void COINLINKAGE 466 Cbc_setAlgorithm(Cbc_Model * model, int value) 467 ; 313 468 /** Sum of dual infeasibilities */ 314 COINLIBAPI double COINLINKAGE Cbc_sumDualInfeasibilities(Cbc_Model * model); 469 COINLIBAPI double COINLINKAGE 470 Cbc_sumDualInfeasibilities(Cbc_Model * model) 471 ; 315 472 /** Number of dual infeasibilities */ 316 COINLIBAPI int COINLINKAGE Cbc_numberDualInfeasibilities(Cbc_Model * model); 473 COINLIBAPI int COINLINKAGE 474 Cbc_numberDualInfeasibilities(Cbc_Model * model) 475 ; 317 476 /** Sum of primal infeasibilities */ 318 COINLIBAPI double COINLINKAGE Cbc_sumPrimalInfeasibilities(Cbc_Model * model); 477 COINLIBAPI double COINLINKAGE 478 Cbc_sumPrimalInfeasibilities(Cbc_Model * model) 479 ; 319 480 /** Number of primal infeasibilities */ 320 COINLIBAPI int COINLINKAGE Cbc_numberPrimalInfeasibilities(Cbc_Model * model); 481 COINLIBAPI int COINLINKAGE 482 Cbc_numberPrimalInfeasibilities(Cbc_Model * model) 483 ; 321 484 /** Save model to file, returns 0 if success. This is designed for 322 485 use outside algorithms so does not save iterating arrays etc. … … 325 488 It does not know about all types of virtual functions. 326 489 */ 327 COINLIBAPI int COINLINKAGE Cbc_saveModel(Cbc_Model * model, const char * fileName); 490 COINLIBAPI int COINLINKAGE 491 Cbc_saveModel(Cbc_Model * model, const char * fileName) 492 ; 328 493 /** Restore model from file, returns 0 if success, 329 494 deletes current model */ 330 COINLIBAPI int COINLINKAGE Cbc_restoreModel(Cbc_Model * model, const char * fileName); 495 COINLIBAPI int COINLINKAGE 496 Cbc_restoreModel(Cbc_Model * model, const char * fileName) 497 ; 331 498 332 499 /** Just check solution (for external use) - sets sum of 333 500 infeasibilities etc */ 334 COINLIBAPI void COINLINKAGE Cbc_checkSolution(Cbc_Model * model); 501 COINLIBAPI void COINLINKAGE 502 Cbc_checkSolution(Cbc_Model * model) 503 ; 335 504 /*@}*/ 336 505 … … 339 508 /*@{*/ 340 509 /** Number of rows */ 341 COINLIBAPI int COINLINKAGE Cbc_getNumRows(Cbc_Model * model); 510 COINLIBAPI int COINLINKAGE 511 Cbc_getNumRows(Cbc_Model * model) 512 ; 342 513 /** Number of columns */ 343 COINLIBAPI int COINLINKAGE Cbc_getNumCols(Cbc_Model * model); 514 COINLIBAPI int COINLINKAGE 515 Cbc_getNumCols(Cbc_Model * model) 516 ; 344 517 /** Number of iterations */ 345 COINLIBAPI int COINLINKAGE Cbc_getIterationCount(Cbc_Model * model); 518 COINLIBAPI int COINLINKAGE 519 Cbc_getIterationCount(Cbc_Model * model) 520 ; 346 521 /** Are there a numerical difficulties? */ 347 COINLIBAPI int COINLINKAGE Cbc_isAbandoned(Cbc_Model * model); 522 COINLIBAPI int COINLINKAGE 523 Cbc_isAbandoned(Cbc_Model * model) 524 ; 348 525 /** Is optimality proven? */ 349 COINLIBAPI int COINLINKAGE Cbc_isProvenOptimal(Cbc_Model * model); 526 COINLIBAPI int COINLINKAGE 527 Cbc_isProvenOptimal(Cbc_Model * model) 528 ; 350 529 /** Is primal infeasiblity proven? */ 351 COINLIBAPI int COINLINKAGE Cbc_isProvenPrimalInfeasible(Cbc_Model * model); 530 COINLIBAPI int COINLINKAGE 531 Cbc_isProvenPrimalInfeasible(Cbc_Model * model) 532 ; 352 533 /** Is dual infeasiblity proven? */ 353 COINLIBAPI int COINLINKAGE Cbc_isProvenDualInfeasible(Cbc_Model * model); 534 COINLIBAPI int COINLINKAGE 535 Cbc_isProvenDualInfeasible(Cbc_Model * model) 536 ; 354 537 /** Is the given primal objective limit reached? */ 355 COINLIBAPI int COINLINKAGE Cbc_isPrimalObjectiveLimitReached(Cbc_Model * model) ; 538 COINLIBAPI int COINLINKAGE 539 Cbc_isPrimalObjectiveLimitReached(Cbc_Model * model) 540 ; 356 541 /** Is the given dual objective limit reached? */ 357 COINLIBAPI int COINLINKAGE Cbc_isDualObjectiveLimitReached(Cbc_Model * model) ; 542 COINLIBAPI int COINLINKAGE 543 Cbc_isDualObjectiveLimitReached(Cbc_Model * model) 544 ; 358 545 /** Iteration limit reached? */ 359 COINLIBAPI int COINLINKAGE Cbc_isIterationLimitReached(Cbc_Model * model); 546 COINLIBAPI int COINLINKAGE 547 Cbc_isIterationLimitReached(Cbc_Model * model) 548 ; 360 549 /** Direction of optimization (1 - minimize, -1 - maximize, 0 - ignore */ 361 COINLIBAPI double COINLINKAGE Cbc_getObjSense(Cbc_Model * model); 550 COINLIBAPI double COINLINKAGE 551 Cbc_getObjSense(Cbc_Model * model) 552 ; 362 553 /** Primal row solution */ 363 COINLIBAPI const double * COINLINKAGE Cbc_getRowActivity(Cbc_Model * model); 554 COINLIBAPI const double * COINLINKAGE 555 Cbc_getRowActivity(Cbc_Model * model) 556 ; 364 557 /** Primal column solution */ 365 COINLIBAPI const double * COINLINKAGE Cbc_getColSolution(Cbc_Model * model); 366 COINLIBAPI void COINLINKAGE Cbc_setColSolution(Cbc_Model * model, const double * input); 558 COINLIBAPI const double * COINLINKAGE 559 Cbc_getColSolution(Cbc_Model * model) 560 ; 561 COINLIBAPI void COINLINKAGE 562 Cbc_setColSolution(Cbc_Model * model, const double * input) 563 ; 367 564 /** Dual row solution */ 368 COINLIBAPI const double * COINLINKAGE Cbc_getRowPrice(Cbc_Model * model); 565 COINLIBAPI const double * COINLINKAGE 566 Cbc_getRowPrice(Cbc_Model * model) 567 ; 369 568 /** Reduced costs */ 370 COINLIBAPI const double * COINLINKAGE Cbc_getReducedCost(Cbc_Model * model); 569 COINLIBAPI const double * COINLINKAGE 570 Cbc_getReducedCost(Cbc_Model * model) 571 ; 371 572 /** Row lower */ 372 COINLIBAPI const double* COINLINKAGE Cbc_getRowLower(Cbc_Model * model); 573 COINLIBAPI const double* COINLINKAGE 574 Cbc_getRowLower(Cbc_Model * model) 575 ; 373 576 /** Row upper */ 374 COINLIBAPI const double* COINLINKAGE Cbc_getRowUpper(Cbc_Model * model); 577 COINLIBAPI const double* COINLINKAGE 578 Cbc_getRowUpper(Cbc_Model * model) 579 ; 375 580 /** Objective */ 376 COINLIBAPI const double * COINLINKAGE Cbc_getObjCoefficients(Cbc_Model * model); 581 COINLIBAPI const double * COINLINKAGE 582 Cbc_getObjCoefficients(Cbc_Model * model) 583 ; 377 584 /** Column Lower */ 378 COINLIBAPI const double * COINLINKAGE Cbc_getColLower(Cbc_Model * model); 585 COINLIBAPI const double * COINLINKAGE 586 Cbc_getColLower(Cbc_Model * model) 587 ; 379 588 /** Column Upper */ 380 COINLIBAPI const double * COINLINKAGE Cbc_getColUpper(Cbc_Model * model); 589 COINLIBAPI const double * COINLINKAGE 590 Cbc_getColUpper(Cbc_Model * model) 591 ; 381 592 /** Objective value */ 382 COINLIBAPI double COINLINKAGE Cbc_getObjValue(Cbc_Model * model); 593 COINLIBAPI double COINLINKAGE 594 Cbc_getObjValue(Cbc_Model * model) 595 ; 383 596 /** Print the model */ 384 COINLIBAPI void COINLINKAGE Cbc_printModel(Cbc_Model * model, const char * prefix); 597 COINLIBAPI void COINLINKAGE 598 Cbc_printModel(Cbc_Model * model, const char * argPrefix) 599 ; 385 600 /** Determine whether the variable at location i is integer restricted */ 386 COINLIBAPI int COINLINKAGE Cbc_isInteger(Cbc_Model * model, int i); 601 COINLIBAPI int COINLINKAGE 602 Cbc_isInteger(Cbc_Model * model, int i) 603 ; 387 604 /** Return CPU time */ 388 COINLIBAPI double COINLINKAGE Cbc_cpuTime(Cbc_Model * model); 605 COINLIBAPI double COINLINKAGE 606 Cbc_cpuTime(Cbc_Model * model) 607 ; 389 608 /** Number of nodes explored in B&B tree */ 390 COINLIBAPI int COINLINKAGE Cbc_getNodeCount(Cbc_Model * model); 609 COINLIBAPI int COINLINKAGE 610 Cbc_getNodeCount(Cbc_Model * model) 611 ; 391 612 /** Return a copy of this model */ 392 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_clone(Cbc_Model * model); 613 COINLIBAPI Cbc_Model * COINLINKAGE 614 Cbc_clone(Cbc_Model * model) 615 ; 393 616 /** Set this the variable to be continuous */ 394 COINLIBAPI Cbc_Model * COINLINKAGE Cbc_setContinuous(Cbc_Model * model, int iColumn); 395 /* Add an SOS constraint to the model */ 396 COINLIBAPI void COINLINKAGE Cbc_addSOS(Cbc_Model * model, int numberMembers, 397 const int * which, const double * weights, int identifier, int type); 398 /* Delete all object information */ 399 COINLIBAPI void COINLINKAGE Cbc_deleteObjects(Cbc_Model * model); 400 /* Print the solution */ 401 COINLIBAPI void COINLINKAGE Cbc_printSolution(Cbc_Model * model); 617 COINLIBAPI Cbc_Model * COINLINKAGE 618 Cbc_setContinuous(Cbc_Model * model, int iColumn) 619 ; 620 /** Add SOS constraints to the model using dense matrix */ 621 COINLIBAPI void COINLINKAGE 622 Cbc_addSOS_Dense(Cbc_Model * model, int numObjects, const int * len, 623 const int ** which, const double * weights, const int type) 624 ; 625 /** Add SOS constraints to the model using row-order matrix */ 626 COINLIBAPI void COINLINKAGE 627 Cbc_addSOS_Sparse(Cbc_Model * model, const int * rowStarts, 628 const int * rowIndices, const double * weights, const int type) 629 ; 630 /** Delete all object information */ 631 COINLIBAPI void COINLINKAGE 632 Cbc_deleteObjects(Cbc_Model * model) 633 ; 634 /** Print the solution */ 635 COINLIBAPI void COINLINKAGE 636 Cbc_printSolution(Cbc_Model * model) 637 ; 638 /** Dual initial solve */ 639 COINLIBAPI int COINLINKAGE 640 Cbc_initialDualSolve(Cbc_Model * model) 641 ; 642 /** Primal initial solve */ 643 COINLIBAPI int COINLINKAGE 644 Cbc_initialPrimalSolve(Cbc_Model * model) 645 ; 646 /** Dual algorithm - see ClpSimplexDual.hpp for method */ 647 COINLIBAPI int COINLINKAGE 648 Cbc_dual(Cbc_Model * model, int ifValuesPass) 649 ; 650 /** Primal algorithm - see ClpSimplexPrimal.hpp for method */ 651 COINLIBAPI int COINLINKAGE 652 Cbc_primal(Cbc_Model * model, int ifValuesPass) 653 ; 402 654 /*@}*/ 403 655 #ifdef __cplusplus 404 656 } 405 657 #endif 406 658 #endif
Note: See TracChangeset
for help on using the changeset viewer.