ANN: seeking feedback on experimental support for vector-valued user-defined functions

Dear all, a fairly common feature request is for vector-valued user defined functions.

Ipopt.jl v1.8.0 adds experimental support for Ipopt._VectorNonlinearOracle. Please see this issue for example usage and future plans:

Note that the API is purposefully less user-friendly than the current @operator syntax in JuMP. This is because we have chosen to support vector-valued constraints of the form l <= f(x) <= u. To represent f(x) == y, you must do 0 <= f(x) - y <= 0. This complicates the implementation, but allows constraints other than vector-equality.

If there is positive feedback, we may move this to MOI and provide proper support for it going forward. If it proves too cumbersome or a bad approach, we may delete it from Ipopt.jl entirely.

6 Likes