Today, we’re pleased to announce a new major release of Optizelle v1.2.0. It’s been some time since we had a stable release, so we hope the wait has been worth it. What’s new?
Precompiled libraries and installers for all major 64-bit platforms
More efficient algorithms
More stable algorithms
Better problem diagnostics
Consolidated licensing information for all dependencies
More in-depth documentation on setting up, tuning, and implementing optimization for large-scale problems
More robust error handling including properly passing through exceptions thrown by the client codes
Simplified file IO
Expanded infrastructure and algorithm testing and verification
That said, there are a couple of reasons for such a long gap between releases. In short, we believe strongly in provided free open-source software because it enables everyone, in all industries, regardless if they’re academic, industrial, or hobbyist, to use better computational tools. At the end of the day, we want to enable people to build things and computational tools like optimization solvers are a key component to that. At the same time, in order to fund this development, we undertake a collection of consulting contracts for clients in a variety of industries. Most of the time, we use Optizelle on these contracts, so we’re constantly fixing bugs, tuning algorithms, and testing how our algorithms respond to a variety of different applications. However, that also means that general Optizelle development slows when on contract.
Certainly, there’s a number of ways to accelerate Optizelle’s development. If you or your company want to sponsor Optizelle specific development, please contact us. Essentially, that allows us to buy time to explicitly focus on Optizelle. Alternatively, we love code contributions and the easiest place to do so is to initiate a pull request on our Github development page. High on our priority list are improvements to our infrastructure. It turns out, supporting multiple platforms and languages adds a significant cost to development, which means that it’s much more difficult and expensive to add additional diagnostics and algorithms. We’re working on streamlining this process, but anyone who’s worked on similar problems in the past know that this is a difficult problem and we’d love code or ideas on how to do this better. Finally, we’re not necessarily committed to any particular algorithm within Optizelle. If you have a new algorithm that you believe is better than what we currently use, please contact directly or post a note to our user forum. Certainly, not all algorithms fit within our approach or infrastructure, but if one does and it works better, we’ll switch immediately.
On this topic, special thanks to all the recent contributors. You should all be listed in
AUTHORS.txt now. Feel free to tell your friends.