# Changelog¶

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

## 1.1.3 - 2018-10-05¶

### 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¶

### 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¶

### Changed¶

• Improved PEP 8 compliance.

### Fixed¶

• Compatibility with Python 3.

## 1.1.0 - 2015-04-15¶

• Compatibility with Python 3.

### Changed¶

• The main repository has moved to GitHub.

## 1.0.2 - 2015-01-30¶

### 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¶

### 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¶

### 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¶

• 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.

### Fixed¶

• 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¶

• 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.