Changelog

This file documents major changes to PICOS. The format is based on Keep a Changelog.

1.1.3 - 2018-10-05

Added

Changed

  • The main repository has moved to GitLab.
  • Releases of packages and documentation changes are automated and thus more frequent. In particular, post release versions are available.
  • Test bench execution is automated for greater code stability.
  • Improved test bench output.
  • Improved support for the SDPA solver.
  • partial_trace can handle rectangular subsystems.
  • The documentation was restructured; examples were converted to Python 3.

Fixed

  • Upper bounding the norm of a complex scalar.
  • Multiplication with a complex scalar.
  • A couple of Python 3 specific errors, in particular when deleting constraints.
  • All documentation examples are reproducible with the current state of PICOS.

1.1.2 - 2016-07-04

Added

Changed

  • Improved efficiency when processing large expressions.
  • Improved support for the SDPA solver.
  • add_constraint returns a handle to the constraint when the option return_constraints is set.
  • New signature for the function partial_transpose, which can now transpose arbitrary subsystems from a kronecker product.
  • PICOS no longer turns constraints into variable bounds, unless the new option pass_simple_cons_as_bound is enabled.

Fixed

  • Minor bugs with complex expressions.

1.1.1 - 2015-08-29

Added

  • Support for the SDPA solver.
  • Partial trace of an affine expression, see partial_trace.

Changed

  • Improved PEP 8 compliance.

Fixed

  • Compatibility with Python 3.

1.1.0 - 2015-04-15

Added

  • Compatibility with Python 3.

Changed

  • The main repository has moved to GitHub.

1.0.2 - 2015-01-30

Added

Changed

  • Improved efficiency of the sparse SDPA file format writer.
  • Improved efficiency of to_real.

Fixed

  • Scalar product of hermitian matrices.
  • Conjugate of a complex expression.

1.0.1 - 2014-08-27

Added

Changed

  • Significantly improved performance of AffinExp.__getitem__.
  • Improved performance of _retrieve_matrix.
  • Improved performance when retrieving primal solution from CPLEX.
  • The documentation received an overhaul.

1.0.0 - 2013-07-19

Added

  • Ability to express rational powers of affine expressions with the ** operator, traces of matrix powers with picos.tracepow, (generalized) p-norms with picos.norm and n-th roots of a determinant with picos.detrootn.
  • Ability to specify variable bounds directly rather than by adding constraints, see add_variable, set_lower(), set_upper(), set_sparse_lower() and set_sparse_upper().
  • Problem dualization, see dualize.
  • Option solve_via_dual which controls passing the dual problem to the solver instead of the primal problem. This can result in a significant speedup for certain problems.
  • Semidefinite programming interface for MOSEK 7.0.
  • Options handleBarVars and handleConeVars to customize how SOCPs and SDPs are passed to MOSEK. When these are set to True, PICOS tries to minimize the number of variables of the MOSEK instance.

Changed

  • If the chosen solver supports this, updated problems will be partially re-solved instead of solved from scratch.

Removed

  • Option onlyChangeObjective.

0.1.3 - 2013-04-17

Added

  • A geomean function to construct geometric mean inequalities that will be cast as SOCP constraints.
  • Options uboundlimit and lboundlimit to tell CPLEX to stop the search as soon as the given threshold is reached for the upper and lower bound, respectively.
  • Option boundMonitor to inspect the evolution of CPLEX lower and upper bounds.
  • Ability to use the weak inequality operators as an alias for the strong ones.

Changed

  • The solver search time is returned in the dictionary returned by solve.

Fixed

  • Access to dual values of fixed variables with CPLEX.
  • Evaluation of constant affine expressions with a zero coefficient.
  • Number of constraints not being updated in remove_constraint.

0.1.2 - 2013-01-10

Fixed

  • Writing SDPA files. The lower triangular part of the constraint matrix was written instead of the upper triangular part.
  • A wrongly raised IndexError from remove_constraint.

0.1.1 - 2012-12-08

Added

  • Interface to Gurobi.
  • Ability to give an initial solution to warm-start mixed integer optimizers.
  • Ability to get a reference to a constraint that was added.

Fixed

  • Minor bugs with quadratic expressions.

0.1.0 - 2012-06-22

Added

  • Initial release of PICOS.