From 05f96c190be07d620095a8c09d6e6b87a5b8c26f Mon Sep 17 00:00:00 2001 From: Jan-Willem Goossens Date: Sat, 11 Nov 2023 16:39:44 +0100 Subject: [PATCH] Sonnet stable 1.4 brings the latest changes from sonnet master back to Sonnet 1.3 based on Cbc 2.10.11. Thus, 1.4 starts from master and downgrades where necessary. --- .coin-or/Dependencies | 14 ++++----- CHANGELOG.txt | 9 ++++++ MSVisualStudio/v17/Sonnet.sln | 22 +++++++------- .../v17/SonnetWrapper/SonnetWrapper.vcxproj | 30 +++++++++---------- .../SonnetWrapperNET4.vcxproj | 30 +++++++++---------- appveyor.yml | 8 ++--- src/SonnetWrapper/CbcSolver.h | 17 ++++------- src/SonnetWrapper/NativeTests.h | 10 +++---- test/SonnetTest/Program.cs | 2 +- test/SonnetTest/Sonnet_CbcTests.cs | 8 ++--- test/SonnetTest/Sonnet_ExampleTests.cs | 3 +- test/SonnetTest/Sonnet_QuadraticTests.cs | 8 ++++- 12 files changed, 86 insertions(+), 75 deletions(-) diff --git a/.coin-or/Dependencies b/.coin-or/Dependencies index 7c78265..c168d96 100644 --- a/.coin-or/Dependencies +++ b/.coin-or/Dependencies @@ -1,7 +1,7 @@ -Data/Sample https://github.com/coin-or-tools/Data-Sample master -Data/miplib3 https://github.com/coin-or-tools/Data-miplib3 master -CoinUtils https://github.com/coin-or/CoinUtils master -Osi https://github.com/coin-or/Osi master -Clp https://github.com/coin-or/Clp master -Cgl https://github.com/coin-or/Cgl master -Cbc https://github.com/coin-or/Cbc master \ No newline at end of file +Data/Sample https://github.com/coin-or-tools/Data-Sample stable/1.2 +Data/miplib3 https://github.com/coin-or-tools/Data-miplib3 stable/1.2 +CoinUtils https://github.com/coin-or/CoinUtils stable/2.11 +Osi https://github.com/coin-or/Osi stable/0.108 +Clp https://github.com/coin-or/Clp stable/1.17 +Cgl https://github.com/coin-or/Cgl stable/0.60 +Cbc https://github.com/coin-or/Cbc stable/2.10 \ No newline at end of file diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8dd94cc..98a70bb 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -9,6 +9,15 @@ The File Version numbers change with every release. In contrast, the Assembly Ve - MIQP. Quadratic objective for MIP. Quadratic objective works with OsiClp (QP). Quadratic objectives via OsiCbc does not work well and is disabled. (Unconfirmed for Cbc 2.10.10) +[1.4.0] Nov 2023 +Minor release of Sonnet, using Cbc 2.10.11. +Sonnet stable 1.4 brings the latest changes from sonnet master back to Sonnet 1.3 based on Cbc 2.10.11, +including nested source folders (Cbc\Cbc etc.) +Thus, Sonnet 1.4 starts from master and downgrades where necessary. +TODO before release: +- investigate batch build fails, but manual builds work +- fix Sonnet_quadraticTests + [1.3.1.0] June 2023 Patch release of Sonnet, upgrading to Cbc 2.10.10 and support .NET 6.0 and .NET Framework 4.8. - Bump to Cbc 2.10.10 diff --git a/MSVisualStudio/v17/Sonnet.sln b/MSVisualStudio/v17/Sonnet.sln index bfadc09..6ed0db6 100644 --- a/MSVisualStudio/v17/Sonnet.sln +++ b/MSVisualStudio/v17/Sonnet.sln @@ -16,23 +16,23 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution ..\..\THIRD-PARTY-LICENSE.txt = ..\..\THIRD-PARTY-LICENSE.txt EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "COIN-OR v17", "COIN-OR v17", "{2969FE49-1110-4476-B8C0-F64CD5E84032}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "COIN-OR v17 Cbc 2.10", "COIN-OR v17 Cbc 2.10", "{2969FE49-1110-4476-B8C0-F64CD5E84032}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCbc", "..\..\..\Cbc\MSVisualStudio\v17\libCbc\libCbc.vcxproj", "{0B054D74-6082-452F-9744-5FBE12C7D476}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCbc", "..\..\..\Cbc\Cbc\MSVisualStudio\v17\libCbc\libCbc.vcxproj", "{0B054D74-6082-452F-9744-5FBE12C7D476}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCbcSolver", "..\..\..\Cbc\MSVisualStudio\v17\libCbcSolver\libCbcSolver.vcxproj", "{5A9043A5-CB87-4E2B-807C-74830BFFAE39}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCbcSolver", "..\..\..\Cbc\Cbc\MSVisualStudio\v17\libCbcSolver\libCbcSolver.vcxproj", "{5A9043A5-CB87-4E2B-807C-74830BFFAE39}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsiCbc", "..\..\..\Cbc\MSVisualStudio\v17\libOsiCbc\libOsiCbc.vcxproj", "{22911998-FEDD-44AC-902F-CFEFA060C36A}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsiCbc", "..\..\..\Cbc\Cbc\MSVisualStudio\v17\libOsiCbc\libOsiCbc.vcxproj", "{22911998-FEDD-44AC-902F-CFEFA060C36A}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCgl", "..\..\..\Cgl\MSVisualStudio\v17\libCgl\libCgl.vcxproj", "{1E645A44-00EF-4093-9F6A-1D082BD43BDB}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCgl", "..\..\..\Cgl\Cgl\MSVisualStudio\v17\libCgl\libCgl.vcxproj", "{1E645A44-00EF-4093-9F6A-1D082BD43BDB}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libClp", "..\..\..\Clp\MSVisualStudio\v17\libClp\libClp.vcxproj", "{768B67D6-E6D3-4A8F-AA61-511FDBCE7937}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libClp", "..\..\..\Clp\Clp\MSVisualStudio\v17\libClp\libClp.vcxproj", "{768B67D6-E6D3-4A8F-AA61-511FDBCE7937}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsiClp", "..\..\..\Clp\MSVisualStudio\v17\libOsiClp\libOsiClp.vcxproj", "{79433425-EC16-410F-9B91-8D31D2109C90}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsiClp", "..\..\..\Clp\Clp\MSVisualStudio\v17\libOsiClp\libOsiClp.vcxproj", "{79433425-EC16-410F-9B91-8D31D2109C90}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCoinUtils", "..\..\..\CoinUtils\MSVisualStudio\v17\libCoinUtils\libCoinUtils.vcxproj", "{6D2EF92A-D693-47E3-A325-A686E78C5FFD}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libCoinUtils", "..\..\..\CoinUtils\CoinUtils\MSVisualStudio\v17\libCoinUtils\libCoinUtils.vcxproj", "{6D2EF92A-D693-47E3-A325-A686E78C5FFD}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsi", "..\..\..\Osi\MSVisualStudio\v17\libOsi\libOsi.vcxproj", "{BF5C7532-EE0A-479B-9993-72134087D530}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsi", "..\..\..\Osi\Osi\MSVisualStudio\v17\libOsi\libOsi.vcxproj", "{BF5C7532-EE0A-479B-9993-72134087D530}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sonnet", "Sonnet\Sonnet.csproj", "{F551FD31-5349-419D-92F2-EA8AC9C9E423}" EndProject @@ -50,9 +50,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sonnet - NET", "Sonnet - NE EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sonnet - NET4", "Sonnet - NET4", "{8181F0AF-A855-4175-AC04-8C29A8A814F1}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsiCommonTest", "..\..\..\Osi\MSVisualStudio\v17\libOsiCommonTest\libOsiCommonTest.vcxproj", "{109D6E6F-6D91-460F-86AE-DF27400E09A9}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libOsiCommonTest", "..\..\..\Osi\Osi\MSVisualStudio\v17\libOsiCommonTest\libOsiCommonTest.vcxproj", "{109D6E6F-6D91-460F-86AE-DF27400E09A9}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cbc", "..\..\..\Cbc\MSVisualStudio\v17\cbc\cbc.vcxproj", "{EAF01AC1-8D19-4E37-9852-736DCFF67865}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cbc", "..\..\..\Cbc\Cbc\MSVisualStudio\v17\cbc\cbc.vcxproj", "{EAF01AC1-8D19-4E37-9852-736DCFF67865}" ProjectSection(ProjectDependencies) = postProject {79433425-EC16-410F-9B91-8D31D2109C90} = {79433425-EC16-410F-9B91-8D31D2109C90} {6D2EF92A-D693-47E3-A325-A686E78C5FFD} = {6D2EF92A-D693-47E3-A325-A686E78C5FFD} diff --git a/MSVisualStudio/v17/SonnetWrapper/SonnetWrapper.vcxproj b/MSVisualStudio/v17/SonnetWrapper/SonnetWrapper.vcxproj index 9002442..b12826c 100644 --- a/MSVisualStudio/v17/SonnetWrapper/SonnetWrapper.vcxproj +++ b/MSVisualStudio/v17/SonnetWrapper/SonnetWrapper.vcxproj @@ -137,7 +137,7 @@ NotUsing pch.h Level3 - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true true true @@ -157,7 +157,7 @@ pch.h Level3 NET6_0;_DEBUG;%(PreprocessorDefinitions) - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true true true @@ -176,7 +176,7 @@ pch.h Level3 NET6_0;WIN32;NDEBUG;%(PreprocessorDefinitions) - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true true true @@ -197,7 +197,7 @@ pch.h Level3 NET6_0;CBC_THREAD;WIN32;NDEBUG;%(PreprocessorDefinitions) - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true true true @@ -218,7 +218,7 @@ pch.h Level3 NET6_0;NDEBUG;%(PreprocessorDefinitions) - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true true true @@ -239,7 +239,7 @@ pch.h Level3 NET6_0;CBC_THREAD;NDEBUG;%(PreprocessorDefinitions) - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true true true @@ -307,31 +307,31 @@ - + {5a9043a5-cb87-4e2b-807c-74830bffae39} - + {0b054d74-6082-452f-9744-5fbe12c7d476} - + {22911998-fedd-44ac-902f-cfefa060c36a} - + {1e645a44-00ef-4093-9f6a-1d082bd43bdb} - + {768b67d6-e6d3-4a8f-aa61-511fdbce7937} - + {79433425-ec16-410f-9b91-8d31d2109c90} - + {6d2ef92a-d693-47e3-a325-a686e78c5ffd} - + {109d6e6f-6d91-460f-86ae-df27400e09a9} - + {bf5c7532-ee0a-479b-9993-72134087d530} diff --git a/MSVisualStudio/v17/SonnetWrapperNET4/SonnetWrapperNET4.vcxproj b/MSVisualStudio/v17/SonnetWrapperNET4/SonnetWrapperNET4.vcxproj index 5f2a333..c868c03 100644 --- a/MSVisualStudio/v17/SonnetWrapperNET4/SonnetWrapperNET4.vcxproj +++ b/MSVisualStudio/v17/SonnetWrapperNET4/SonnetWrapperNET4.vcxproj @@ -82,31 +82,31 @@ - + {5a9043a5-cb87-4e2b-807c-74830bffae39} - + {0b054d74-6082-452f-9744-5fbe12c7d476} - + {22911998-fedd-44ac-902f-cfefa060c36a} - + {1e645a44-00ef-4093-9f6a-1d082bd43bdb} - + {768b67d6-e6d3-4a8f-aa61-511fdbce7937} - + {79433425-ec16-410f-9b91-8d31d2109c90} - + {6d2ef92a-d693-47e3-a325-a686e78c5ffd} - + {109d6e6f-6d91-460f-86ae-df27400e09a9} - + {bf5c7532-ee0a-479b-9993-72134087d530} @@ -237,7 +237,7 @@ Level3 true false - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true 4635 NET48;WIN32;_DEBUG;%(PreprocessorDefinitions) @@ -254,7 +254,7 @@ Level3 true false - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf true 4635 NET48;_DEBUG;%(PreprocessorDefinitions) @@ -273,7 +273,7 @@ true true false - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf NET48;WIN32;NDEBUG;%(PreprocessorDefinitions) true 4635 @@ -294,7 +294,7 @@ true true false - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf NET48;CBC_THREAD;WIN32;NDEBUG;%(PreprocessorDefinitions) true 4635 @@ -316,7 +316,7 @@ true true false - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf NET48;NDEBUG;%(PreprocessorDefinitions) true 4635 @@ -337,7 +337,7 @@ true true false - ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\src;..\..\..\..\clp\src;..\..\..\..\clp\src\osiClp;..\..\..\..\cbc\src;..\..\..\..\cbc\src\osiCbc;..\..\..\..\osi\src\osi;..\..\..\..\osi\src\OsiCommonTest;..\..\..\..\osi\src\osiCpx;..\..\..\..\osi\src\osiVol;..\..\..\..\cgl\src;..\..\..\..\cgl\src\CglCommon;..\..\..\..\cgl\src\CglMixedIntegerRounding;..\..\..\..\cgl\src\CglMixedIntegerRounding2;..\..\..\..\cgl\src\CglFlowCover;..\..\..\..\cgl\src\CglClique;..\..\..\..\cgl\src\CglOddHole;..\..\..\..\cgl\src\CglKnapsackCover;..\..\..\..\cgl\src\CglGomory;..\..\..\..\cgl\src\CglDuplicateRow;..\..\..\..\cgl\src\CglProbing;..\..\..\..\cgl\src\CglPreProcess;..\..\..\..\cgl\src\CglTwomir;..\..\..\..\cgl\src\CglGMI;..\..\..\..\cgl\src\CglLandP;..\..\..\..\cgl\src\CglOddWheel;..\..\..\..\cgl\src\CglRedSplit;..\..\..\..\cgl\src\CglRedSplit2;..\..\..\..\cgl\src\CglResidualCapacity;..\..\..\..\cgl\src\CglZeroHalf + ..\..\..\..\..\pthreads;..\..\..\..;..\..\..\..\CoinUtils\CoinUtils\src;..\..\..\..\Osi\Osi\src\osi;..\..\..\..\Osi\Osi\src\OsiCommonTest;..\..\..\..\Osi\Osi\src\osiCpx;..\..\..\..\Osi\Osi\src\osiVol;..\..\..\..\Clp\Clp\src;..\..\..\..\Clp\Clp\src\osiClp;..\..\..\..\Cbc\Cbc\src;..\..\..\..\Cbc\Cbc\src\osiCbc;..\..\..\..\Cgl\Cgl\src;..\..\..\..\Cgl\Cgl\src\CglCommon;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding;..\..\..\..\Cgl\Cgl\src\CglMixedIntegerRounding2;..\..\..\..\Cgl\Cgl\src\CglFlowCover;..\..\..\..\Cgl\Cgl\src\CglClique;..\..\..\..\Cgl\Cgl\src\CglOddHole;..\..\..\..\Cgl\Cgl\src\CglKnapsackCover;..\..\..\..\Cgl\Cgl\src\CglGomory;..\..\..\..\Cgl\Cgl\src\CglDuplicateRow;..\..\..\..\Cgl\Cgl\src\CglProbing;..\..\..\..\Cgl\Cgl\src\CglPreProcess;..\..\..\..\Cgl\Cgl\src\CglTwomir;..\..\..\..\Cgl\Cgl\src\CglGMI;..\..\..\..\Cgl\Cgl\src\CglLandP;..\..\..\..\Cgl\Cgl\src\CglOddWheel;..\..\..\..\Cgl\Cgl\src\CglRedSplit;..\..\..\..\Cgl\Cgl\src\CglRedSplit2;..\..\..\..\Cgl\Cgl\src\CglResidualCapacity;..\..\..\..\Cgl\Cgl\src\CglZeroHalf NET48;CBC_THREAD;NDEBUG;%(PreprocessorDefinitions) true 4635 diff --git a/appveyor.yml b/appveyor.yml index af6456b..7f70b40 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,7 +9,7 @@ environment: secure: 7rM8AX6MnUMN7F8Ad9BTvgRci9lmy4i3LWHC5l9ZdVY3xtJg7RwIXNWAg95vXFmK # version format -version: 2.0.0.{build} +version: 1.4.0.{build} # you can use {branch} name in version format too # version: 1.0.{build}-{branch} @@ -83,9 +83,9 @@ install: assembly_info: patch: true file: AssemblyInfo.* - assembly_version: "2.0.0.0" - assembly_file_version: "2.0.0.{build}" -# assembly_informational_version: "2.0.0.{build}" + assembly_version: "1.4.0.0" + assembly_file_version: "1.4.0.{build}" +# assembly_informational_version: "1.4.0.{build}" #---------------------------------# # build configuration # diff --git a/src/SonnetWrapper/CbcSolver.h b/src/SonnetWrapper/CbcSolver.h index f150801..cffab78 100644 --- a/src/SonnetWrapper/CbcSolver.h +++ b/src/SonnetWrapper/CbcSolver.h @@ -5,7 +5,7 @@ #include #include -#include +//#include #include // for string ^ to char * via marshal_context #include // for string ^ to std::string via marshal_as @@ -55,7 +55,7 @@ namespace COIN /// /// The arguments for the solve /// The CbcModel instance - /// The time limit for the solver. Only used if lt 0.0 + /// The time limit for the solver. Only used if gt 0.0 /// The return code static int CbcMain(array ^args, CbcModel ^ cbcModel, double timeLimit) { @@ -68,16 +68,11 @@ namespace COIN { argv[i] = context->marshal_as(args[i]); } - CbcParameters cbcData; - if (timeLimit != 0.0) cbcData[CbcParam::TIMELIMIT]->setDblVal(timeLimit); - // We could pass parameters using CbcParam - // this is the only good way to pass timelimit etc. - // How about adding like AddSolverArgs but then AddCbcParameters or something? - // But that would require wrapping all CbcParameters, CbcParam etc. etc. - // Therefore, for now use the string array. - // Or maybe a few dedicated parameters like timelimit via method call. - cbcData.enablePrinting(); + CbcSolverUsefulData cbcData; + cbcData.noPrinting_ = false; + if (timeLimit != 0.0) cbcModel->Base->setMaximumSeconds(timeLimit); + ::CbcMain0(*(cbcModel->Base), cbcData); int result = ::CbcMain1(argc, argv, *(cbcModel->Base), NativeCallBackProxy, cbcData); delete context; diff --git a/src/SonnetWrapper/NativeTests.h b/src/SonnetWrapper/NativeTests.h index ed869cf..d5d5713 100644 --- a/src/SonnetWrapper/NativeTests.h +++ b/src/SonnetWrapper/NativeTests.h @@ -9,17 +9,17 @@ #undef main #define main mainGamsTest -#include +#include #undef main #define main mainOsiCbcUnitTest -#include -#include +#include +#include #undef main #define main mainOsiClpUnitTest -#include -#include +#include +#include #undef main diff --git a/test/SonnetTest/Program.cs b/test/SonnetTest/Program.cs index 2838f1b..7157fe5 100644 --- a/test/SonnetTest/Program.cs +++ b/test/SonnetTest/Program.cs @@ -45,7 +45,7 @@ public static void Main(string[] args) { // Use the following line to only run one TestClass //if (testType != typeof(Sonnet_CbcTests)) continue; - //if (testType != typeof(Sonnet_CoinNativeTests)) continue; + if (testType != typeof(Sonnet_QuadraticTests)) continue; object testInstance = null; var methods = testType.GetMethods() diff --git a/test/SonnetTest/Sonnet_CbcTests.cs b/test/SonnetTest/Sonnet_CbcTests.cs index 37e28a0..2d83a58 100644 --- a/test/SonnetTest/Sonnet_CbcTests.cs +++ b/test/SonnetTest/Sonnet_CbcTests.cs @@ -105,7 +105,7 @@ public void SonnetCbcTest4() OsiCbcSolverInterface osiCbc = solver.OsiSolver as OsiCbcSolverInterface; // Stop within 5 seconds. osiCbc.AddCbcSolverArgs("-sec", "5"); - //osiCbc.getModelPtr().setMaximumSeconds(5.0); // Doesnt work for now Cbc #567 + //osiCbc.getModelPtr().setMaximumSeconds(5.0); // Doesnt work for now Cbc #567 but works in Cbc 2.10.x (tested in CbcTest5) solver.Solve(); Assert.IsTrue(solver.IsFeasible(), "with solution and hence feasible"); @@ -115,7 +115,7 @@ public void SonnetCbcTest4() // The problem is minimization. // Allow also better solutions, but not worse. // If your machine is significantly slower, the solution value will be worse (higher) and this test will fail--but can be ignored. - Assert.IsTrue(model.Objective.Value >= 21801.18 && model.Objective.Value <= 22465, $"Best minimization solution of mas74 until now is ${model.Objective.Value} but should be between 21801.18 (opt) and 22465"); + Assert.IsTrue(model.Objective.Value >= 21801.18 && model.Objective.Value <= 22600, $"Best minimization solution of mas74 until now is ${model.Objective.Value} but should be between 21801.18 (opt) and 22600"); // bound is expected to be 20482 on the reference machine. // If your machine is slower, the bound will be worse (lower) @@ -166,8 +166,8 @@ public void SonnetCbcTest5() Solver solver = new Solver(model, typeof(OsiCbcSolverInterface)); OsiCbcSolverInterface osiCbc = solver.OsiSolver as OsiCbcSolverInterface; // Stop within 5 seconds. - osiCbc.AddCbcSolverArgs("-sec", "5"); - //osiCbc.getModelPtr().setMaximumSeconds(5.0); // Doesnt work for now Cbc #567 + //osiCbc.AddCbcSolverArgs("-sec", "5"); + osiCbc.getModelPtr().setMaximumSeconds(5.0); // Doesnt work for now Cbc #567 but works in Cbc 2.10.x CbcEventHandler handler = delegate (CbcModel m, CbcEvent cbcEvent) { return CbcAction.noAction; }; handler += new CbcEventHandler(SonnetCbcTest5EventHandler); // will stop after 2nd solution diff --git a/test/SonnetTest/Sonnet_ExampleTests.cs b/test/SonnetTest/Sonnet_ExampleTests.cs index 57e7f02..f91d9a0 100644 --- a/test/SonnetTest/Sonnet_ExampleTests.cs +++ b/test/SonnetTest/Sonnet_ExampleTests.cs @@ -29,8 +29,9 @@ public void SonnetExampleTest1() // the first expected solution occurs in .NET Core. string expectedSolutionString1 = "Model 'Investement_Planning'\r\nModel status: Optimal\r\nObjective: 3288.2370400000177\r\nVariables:\r\ncase_year6 : Continuous : [0, Inf] = 3288.2370400000177 ( 0 )\r\ncase_year1 : Continuous : [0, Inf] = 264.0000000001211 ( 0 )\r\nfraction_proj1 : Continuous : [0, Inf] = 1 ( 0 )\r\nfraction_proj2 : Continuous : [0, Inf] = 0 ( 0 )\r\nfraction_proj3 : Continuous : [0, Inf] = 0 ( 0 )\r\nfraction_proj4 : Continuous : [0, Inf] = 0.999999999999 ( 0 )\r\ncase_year2 : Continuous : [0, Inf] = 774.4000000001994 ( 0 )\r\nfraction_proj5 : Continuous : [0, Inf] = 1 ( 0 )\r\ncase_year3 : Continuous : [0, Inf] = 939.8400000001425 ( 0 )\r\ncase_year4 : Continuous : [0, Inf] = 1374.824000000014 ( 0 )\r\ncase_year5 : Continuous : [0, Inf] = 2359.3064000000154 ( 0 )\r\ninvest_proj1 : Integer : [0, 1] = 1 ( 0 )\r\ninvest_proj2 : Integer : [0, 1] = 0 ( 0 )\r\ninvest_proj3 : Integer : [0, 1] = 0 ( 0 )\r\ninvest_proj4 : Integer : [0, 1] = 1 ( 0 )\r\ninvest_proj5 : Integer : [0, 1] = 1 ( 0 )\r\n"; string expectedSolutionString2 = "Model 'Investement_Planning'\r\nModel status: Optimal\r\nObjective: 3288.23704000002\r\nVariables:\r\ncase_year6 : Continuous : [0, Inf] = 3288.23704000002 ( 0 )\r\ncase_year1 : Continuous : [0, Inf] = 264.000000000121 ( 0 )\r\nfraction_proj1 : Continuous : [0, Inf] = 1 ( 0 )\r\nfraction_proj2 : Continuous : [0, Inf] = 0 ( 0 )\r\nfraction_proj3 : Continuous : [0, Inf] = 0 ( 0 )\r\nfraction_proj4 : Continuous : [0, Inf] = 0.999999999999 ( 0 )\r\ncase_year2 : Continuous : [0, Inf] = 774.400000000199 ( 0 )\r\nfraction_proj5 : Continuous : [0, Inf] = 1 ( 0 )\r\ncase_year3 : Continuous : [0, Inf] = 939.840000000142 ( 0 )\r\ncase_year4 : Continuous : [0, Inf] = 1374.82400000001 ( 0 )\r\ncase_year5 : Continuous : [0, Inf] = 2359.30640000002 ( 0 )\r\ninvest_proj1 : Integer : [0, 1] = 1 ( 0 )\r\ninvest_proj2 : Integer : [0, 1] = 0 ( 0 )\r\ninvest_proj3 : Integer : [0, 1] = 0 ( 0 )\r\ninvest_proj4 : Integer : [0, 1] = 1 ( 0 )\r\ninvest_proj5 : Integer : [0, 1] = 1 ( 0 )\r\n"; + string expectedSolutionString3 = "Model 'Investement_Planning'\r\nModel status: Optimal\r\nObjective: 3288.237040000001\r\nVariables:\r\ncase_year6 : Continuous : [0, Inf] = 3288.237040000001 ( 0 )\r\ncase_year1 : Continuous : [0, Inf] = 264.00000000000006 ( 0 )\r\nfraction_proj1 : Continuous : [0, Inf] = 1 ( 0 )\r\nfraction_proj2 : Continuous : [0, Inf] = 0 ( 0 )\r\nfraction_proj3 : Continuous : [0, Inf] = 0 ( 0 )\r\nfraction_proj4 : Continuous : [0, Inf] = 1 ( 0 )\r\ncase_year2 : Continuous : [0, Inf] = 774.4000000000002 ( 0 )\r\nfraction_proj5 : Continuous : [0, Inf] = 1 ( 0 )\r\ncase_year3 : Continuous : [0, Inf] = 939.8400000000005 ( 0 )\r\ncase_year4 : Continuous : [0, Inf] = 1374.8240000000008 ( 0 )\r\ncase_year5 : Continuous : [0, Inf] = 2359.306400000001 ( 0 )\r\ninvest_proj1 : Integer : [0, 1] = 1 ( 0 )\r\ninvest_proj2 : Integer : [0, 1] = 0 ( 0 )\r\ninvest_proj3 : Integer : [0, 1] = 0 ( 0 )\r\ninvest_proj4 : Integer : [0, 1] = 1 ( 0 )\r\ninvest_proj5 : Integer : [0, 1] = 1 ( 0 )\r\n"; - Assert.IsTrue(Utils.EqualsString(solutionString, expectedSolutionString1) || Utils.EqualsString(solutionString, expectedSolutionString2)); + Assert.IsTrue(Utils.EqualsString(solutionString, expectedSolutionString1) || Utils.EqualsString(solutionString, expectedSolutionString2) || Utils.EqualsString(solutionString, expectedSolutionString3)); } [TestMethod, TestCategory("Example")] diff --git a/test/SonnetTest/Sonnet_QuadraticTests.cs b/test/SonnetTest/Sonnet_QuadraticTests.cs index 0782083..7845392 100644 --- a/test/SonnetTest/Sonnet_QuadraticTests.cs +++ b/test/SonnetTest/Sonnet_QuadraticTests.cs @@ -144,8 +144,14 @@ public void SonnetTestQuad3() model.Add(con3); model.Objective = obj; model.ObjectiveSense = ObjectiveSense.Minimise; - if (solver.OsiSolver is COIN.OsiCbcSolverInterface) ((COIN.OsiCbcSolverInterface)solver.OsiSolver).SetCbcSolverArgs("-branchAndBound"); + solver.Solve(); + // Test that we found the correct solution + Assert.IsTrue(Utils.EqualsDouble(model.Objective.Value, -7.5)); // fails in Cbc 2.10 because getObjValue is wrong + Assert.IsTrue(Utils.EqualsDouble(x1.Value, 1.0)); + Assert.IsTrue(Utils.EqualsDouble(x2.Value, 1.0)); + + //Test that exporting to mps and then importing results in the same model. solver.Export("testmiqp.mps"); Model model2 = Model.New("testmiqp.mps");