[Clp] Correction to CoinMP.cpp

Larry A. Taylor ltaylor at seas.ucla.edu
Mon Feb 18 19:38:11 EST 2008


Hi Rod,

What you found appears identical to what I found and put into a ticket at
https://projects.coin-or.org/CoinMP/ticket/1

Check to see if it is exactly the same.

I can't check anything in, but if you can do it, I would be grateful.

LAT

At 09:33 PM 2/17/2008, Rod Frowd wrote:
>Hi:
>
>I found that the CoinMP.dll did not work when built from source, 
>though the downloaded binary dll did.
>
>Upon looking  at the source code I found the problem below, some of 
>the real tolerance were being set to zero as the CoinGetIntOption 
>was being called instead of the CoinGetRealOption? The built from 
>source dll works after this change.
>
>Index: CoinMP.cpp
>===================================================================
>--- CoinMP.cpp    (revision 53)
>+++ CoinMP.cpp    (working copy)
>@@ -646,10 +646,10 @@
>     pCoin->clp->setMaximumIterations(CoinGetIntOption(hProb, 
> COIN_INT_MAXITER));
>-    pCoin->clp->setPrimalObjectiveLimit(CoinGetIntOption(hProb, 
>COIN_REAL_PRIMALOBJLIM));
>-    pCoin->clp->setDualObjectiveLimit(CoinGetIntOption(hProb, 
>COIN_REAL_DUALOBJLIM));
>-    pCoin->clp->setPrimalTolerance(CoinGetIntOption(hProb, 
>COIN_REAL_PRIMALOBJTOL));
>-    pCoin->clp->setDualTolerance(CoinGetIntOption(hProb, 
>COIN_REAL_DUALOBJTOL));
>+    pCoin->clp->setPrimalObjectiveLimit(CoinGetRealOption(hProb, 
>COIN_REAL_PRIMALOBJLIM));
>+    pCoin->clp->setDualObjectiveLimit(CoinGetRealOption(hProb, 
>COIN_REAL_DUALOBJLIM));
>+    pCoin->clp->setPrimalTolerance(CoinGetRealOption(hProb, 
>COIN_REAL_PRIMALOBJTOL));
>+    pCoin->clp->setDualTolerance(CoinGetRealOption(hProb, 
>COIN_REAL_DUALOBJTOL));
>     /* check if it has been changed, leave alone otherwise */
>    ClpPrimalColumnSteepest primalSteepest(CoinGetIntOption(hProb, 
> COIN_INT_PRIMALPIVOTALG));
>@@ -659,7 +659,7 @@
>    pCoin->clp->setDualRowPivotAlgorithm(dualSteepest);
>     if (CoinGetIntOption(hProb, COIN_INT_CRASHIND)) {
>-        pCoin->clp->crash(CoinGetIntOption(hProb, COIN_REAL_CRASHGAP),
>+        pCoin->clp->crash(CoinGetRealOption(hProb, COIN_REAL_CRASHGAP),
>                                 CoinGetIntOption(hProb, 
> COIN_INT_CRASHPIVOT));
>     }
>     switch (CoinGetIntOption(hProb,COIN_INT_SOLVEMETHOD)) {
>
>Do you want me to check this in?
>Rod Frowd




More information about the Clp mailing list