[Clp] Correction to CoinMP.cpp

Larry A. Taylor ltaylor at seas.ucla.edu
Mon Feb 18 20:55:20 EST 2008


At 04:37 PM 2/18/2008, Rod Frowd wrote:
>Larry:
>
>I don't have any privileges either, I am relatively new to this list.
>Your changes look the same as mine. Perhaps John Forrest can help us 
>organize to get this checked in.

I hope so. However, no one seems to be working on CoinMP.dll.


>Did the dll work after you made these changes?

Yes. By "working" I mean it fixed the problems I had spotted -- that some
feasible problems that had been marked as infeasible. They now are working
correctly so far as I can see.

I have not found other problems.

If you have a differently problem, you should say what was not "working" --
tell in detail if the program is crashing, or giving wrong or strange results.


>I also found the parameter settings important, cut the solve time by 
>a factor of 10. Also I have this running from a Java callable interface too.
>
>Rod

Which parameter settings? What values?

I have CoinMP.dll running from a Visual Basic interface. I wrote a 
wrapper routine,
WrapCoinMP.dll, which I would check in if I could

LAT




>Larry A. Taylor wrote:
>>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