<div dir="ltr"><div>Thanks for clarification.</div><div><br></div>BTW if OS is building Couenne data structures directly via some API, I guess one could use the same API directly and bypass OS altogether.<div><br></div><div>Regards,</div><div>Victor<br><div><br><div class="gmail_quote">On Sat Feb 21 2015 at 5:37:13 PM Ted Ralphs <<a href="mailto:ted@lehigh.edu">ted@lehigh.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Feb 21, 2015 at 6:37 PM, <a href="mailto:victor.zverovich@gmail.com" target="_blank">victor.zverovich@gmail.com</a> <span dir="ltr"><<a href="mailto:victor.zverovich@gmail.com" target="_blank">victor.zverovich@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Ted, by "OS passing the model directly to Couenne" you mean via some Couenne APIs or via intermediate XML files?</div></blockquote></div><div><br></div></div></div></div><div dir="ltr"><div><div class="gmail_extra"><div><div>I mean via an API, which I guess is probably more part of OS than Couenne. I'm not really too familiar with the implementation details, but the basic workflow is to first create an OSInstance object using a solver-agnostic API (similar in spirit to Osi, except with support for nonlinear modeling). The API is here:</div><div><br></div><div><a href="https://projects.coin-or.org/OS/browser/trunk/OS/src/OSCommonInterfaces/OSInstance.h" target="_blank">https://projects.coin-or.org/OS/browser/trunk/OS/src/OSCommonInterfaces/OSInstance.h</a><br></div><div><br></div><div>After creating the model, to pass it to Couenne, you call buildSolverInstance() here: </div><div><br></div><div><a href="https://projects.coin-or.org/OS/browser/trunk/OS/src/OSSolverInterfaces/OSCouenneSolver.cpp#L141" target="_blank">https://projects.coin-or.org/OS/browser/trunk/OS/src/OSSolverInterfaces/OSCouenneSolver.cpp#L141</a><br></div></div><div><br></div><div>which translates the model into Couenne's native data structures. Finally, you can call solve().</div><div><br></div><div>A detailed example is here:</div><div><br></div><div><a href="https://projects.coin-or.org/CoinBazaar/browser/projects/ApplicationTemplates/trunk/instanceGenerator/OSInstanceGenerator.cpp" target="_blank">https://projects.coin-or.org/CoinBazaar/browser/projects/ApplicationTemplates/trunk/instanceGenerator/OSInstanceGenerator.cpp</a><br></div><div><br></div><div>This functionality is what is planned to be the basis for "Osi 2" if that project ever comes to fruition. I don't think many people realize how much useful stuff is in the OS project.</div><div><br></div><div>Cheers,</div><div><br></div><div>Ted</div></div></div></div><div dir="ltr"><div><div class="gmail_extra"><div><br></div><div><br></div><div><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div>-- <br><div><div dir="ltr">Dr. Ted Ralphs<br>Professor, Lehigh University<br>(610) 628-1280<br>ted 'at' lehigh 'dot' edu<br><a href="http://coral.ie.lehigh.edu/~ted" target="_blank">coral.ie.lehigh.edu/~ted</a><br></div></div>
</div></div></div></blockquote></div></div></div></div>