id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc,merged,author,reviewer,upstream,work_issues,branch,commit,dependencies,stopgaps
10043,Complete rewrite of LP solver interfaces,ncohen,ncohen,"This (large) patch creates a `backends` directory in the `numerical/` folder.
It adds the following files :
* glpk_backend.pyx/pxd
* coin_backend.pyx/pxd
* cplex_backend.pyx/pxd
* generic_backend.pyx/pxd
It removes the following files from `numerical`
* mip_glpk.pyx/pxd
* mip_coin.pyx/pxd
* mip_cplex.pyx/pxd
* osi_interface.pyx/pxd
What for ? There is no a real interface between Sage and all these solvers. Not just a ""solve""function that does everything at the same time. It is now much clearer, much more efficient, and it will be faaaaaaaar easier to use solver-specific features. It can now be used directly in Cython, and we can now deal with constraint generation (see patches XXX and XXX), which is a great news.
I know this patch is huge, and I swear I tried to avoid it by considering step-by-step patches, which slowly became a nightmare... The good point in all this is that all the LP-related methods are extensively tested through all the graph methods, which are very likely to detect the important mistakes. I do not doubt there are many left, and I expect this patch to be followed by several ""fixes"" as these new features are being used, but.... I hope this review will get us rid of most of them !
Thankssssssssss !!!
Nathann
(With this patch, there is no need anymore to install CBC in order to use CPLEX. Just adding the cplex files to include/ and lib/, as indicated at the end of http://www.sagemath.org/doc/constructions/linear_programming.html#solvers and running ``sage -b`` is enough)
",enhancement,closed,major,sage-4.6.1,linear programming,fixed,,malb mvngu schilly leif,sage-4.6.1.alpha0,Nathann Cohen,"Martin Albrecht, Nathann Cohen",N/A,,,,,