The JuMP team is happy to announce the release of JuMP 0.14. The release should clear most, if not all, deprecation warnings on Julia 0.5 and is compatible with ForwardDiff 0.2. The full release notes are
here, and I'd just like to highlight a few points:
-
All JuMP users read this: As
previously announced, we will be deprecating the sum{}, prod{}, and norm{} syntax in favor of using Julia 0.5's new syntax for generator statements, e.g.,
sum(x[i] for i in 1:N) instead of
sum{x[i], i in 1:N}. In this release, the new syntax is available for testing if using Julia 0.5. No deprecation warnings are printed yet. In JuMP 0.15, which will drop support for Julia 0.4, we will begin printing deprecation warnings for the old syntax.
- Advanced JuMP users read this: We have introduced a new syntax for "anonymous" objects, which means that when declaring an optimization variable, constraint, expression, or parameter, you may omit the name of the object within the macro. The macro will instead return the object itself which you can assign to a variable if you'd like. Example:
# instead of @variable(m, l[i] <= x[i=1:N] <= u[i]):
x = @variable(m, [i=1:N], lowerbound=l[i], upperbound=u[i])
This syntax should be comfortable for advanced use cases of JuMP (e.g., within a library) and should obviate some confusions about JuMP's variable scoping rules.
- We also have a new input form for nonlinear expressions that has the potential to extend JuMP's scope as an AD tool. Previously all nonlinear expressions needed to be input via macros, which isn't convenient if the expression is generated programmatically. You can now set nonlinear objectives and add nonlinear constraints by providing a Julia
Expr object directly with JuMP variables spliced in. This means that you can now generate expressions via symbolic manipulation and add them directly to a JuMP model. See the example in the
documentation.
Finally, I'd like to thank Joaquim Dias Garcia, Oscar Dowson, Mehdi Madani, and Jarrett Revels for contributions to this release which are cited in the release notes.
Miles, Iain, and Joey