- Add support for
cp.exp
through the non-linear expressions added in Gurobi 12 (#86)
1.1.1 - 2025-02-01
This small release fixes a bug with manually set parameter values and adds testing for 3.13 now that Gurobi supports it.
- Reshaping a constant with a Python scalar value no longer errors due to
missing
reshape
method (#77). Thanks to Halil Sen for reporting the bug!
- Add support for Python 3.13 (#81)
1.1.0 - 2024-12-01
cp.quad_form
expressions are handled, both when the vector is a variable and when the PSD matrix is a variable (#60).cp.Parameter
s that have a value assigned are treated like constants (#67). Thanks to Halil Sen for contributing this feature!
Add support for CVXPY 1.6 and Gurobi 12.
1.0.0 - 2024-09-28
- CVXPY atoms that have an equivalent generalized expression in
gurobipy
are correctly translated. This is done by adding auxilliary variables constrained to the value of the arguments of the atom to the problem: reshape
atoms are handled during translation (#42).- The
hstack
andvstack
atoms are translated into theirgurobipy
counterparts, available from Gurobi 11 (#43, #44).
- The
axis
argument tocp.sum
is no longer ignored (#39). - If a scalar expression is given to
cp.sum
, it no longer raises an error (#48). - The dual values should be more correct in cases where the sign is reversed
between
cvxpy
andgurobipy
(#50).
The numpy
and scipy
dependencies have lower bounds, set willingly to fairly
old versions (#56).
- The library is tested in CI against the oldest supported versions and the latest releases (#56).
- All test problems must be feasible and bounded to ensure they have a unique solution (#50).
- Backfilling infeasible and unbounded problems is explicitly tested (#53).
The variable_map
argument used when filling a Model
was removed. Instead,
the variable map is handled by the Translater
internally
(#24). In the
future, there will be an official way to provide custom translations which is
not limited to variables.
0.1.0 - 2024-08-01
This is the first release of cvxpy-gurobi
!
The core idea of the package is in place and the solver API is not expected to
change. However, only basic expressions and constraints are easily manageable
and many internal changes will be required to add support for expressions which
cannot be translated in a straightforward way, such as cp.abs
that requires
gurobipy
's GenExpr
.
In this release, the following elements are already covered:
AddExpression
Constant
DivExpression
index
(indexing with integers)MulExpression
(multiplication by a constant)multiply
(element-wise multiplication)NegExpression
power
(only ifp
is 2)Promote
(broadcasting)quad_over_lin
(sum_squares
)special_index
(indexing with arrays)Sum
Variable
(duh)