JuMP 0.21.7 is released
releases ·We are happy to announce the release of JuMP 0.21.7. This should be a non-breaking release, please let us know if this isn’t the case by opening a GitHub issue or joining the developer chatroom.
A key feature of interest is that we have continued to significantly revise our documentation. The Nonlinear Modeling section is now much clearer, and there are now integrated tutorials. If you have suggestions for how things could be further improved, please reach out.
A summary of changes are as follows:
- New features:
- Added
primal_feasibility_report
, which can be used to check whether a primal point satisfies primal feasibility. - Added
coefficient
, which returns the coefficient associated with a variable in affine and quadratic expressions. - Added
copy_conflict
, which returns the IIS of an infeasible model. - Added
solution_summary
, which returns (and prints) a struct containing a summary of the solution. - Allow
AbstractVector
in vector constraints instead of justVector
. - Added
latex_formulation(model)
which returns an object representing the latex formulation of a model. Useprint(latex_formulation(model))
to print the formulation as a string. - User-defined functions in nonlinear expressions are now automatically registered to aid quick model prototyping. However, a warning is printed to encourage the manual registration.
- DenseAxisArray’s now support broadcasting over multiple arrays.
- Container indices can now be iterators of
Base.SizeUnknown
.
- Added
- Bug fixes:
- Fixed bug in
rad2deg
anddeg2rad
in nonlinear expressions. - Fixed a MethodError bug in
Containers
when forcing container type. - Allow partial slicing of a DenseAxisArray, resolving an issue from 2014!
- Fixed a bug printing variable names in IJulia.
- Ending an IJulia cell with
model
now prints a summary of the model (like in the REPL) not the latex formulation. Useprint(model)
to print the latex formulation. - Fixed a bug when copying models containing nested arrays.
- Fixed bug in
- Documentation, performance improvements, and general maintenance:
- Tutorials are now part of the documentation, and more refactoring has taken place.
- Added JuliaFormatter added as a code formatter.
- Added some precompilation statements to reduce initial latency.
- Various improvements to error messages to make them more helpful.
- Improved performance of
value(::NonlinearExpression)
. - Improved performance of
fix(::VariableRef)
.
We also have a number of community contributors to thank, including @AtsushiSakai, @davidanthoff, @dourouc05, @ferrolho, @frapac, @guilhermebodin, @jz2903, @junglegobs, @linde-fr, @MatthewStuber, @remi-garcia, @waldyrious, and @wimmerer.
For a full list of the merged pull requests and closed issues that contributed to this release, see the tag notes for JuMP v0.21.7.
This release knocks out a number of major items on our roadmap for JuMP 1.0. (We’re getting close!)
Stay tuned for more progress!