- TODO add FAQ with info about solver errors, DCP errors, adding an objective in a for loop, dot product with numpy ND arrays.
- TODO change *args to lists.
- TODO change OPTIMAL to SOLVED?
- TODO separate out parts of DCPAttr and refactor so universal rules used for affine atoms.
- TODO change size to size[0]*size[1] and shape to size.
- TODO return 2D arrays instead of matrices.
- TODO add sets and domains for Parameters/Variables that affect DCP properties.
- TODO PSD parameters?
- TODO warmstart based on variable values.
- TODO change diag for matrices to diagm so can choose which diagonal to access.
- TODO make sure Bool.value = ? etc satisfy constraints.
- TODO make upper_tri_to_full atom?
- TODO parameterize upper_tri (so takes elems above kth diagonal).
- TODO replace norm with vecnorm and norm (for matrices) (see how numpy does it).
- TODO separate constant and linear components of expressions so potentially can cache matrix factorizations.
- TODO add informative errors for single constraint in problem instead of list, etc.
- Converted indices and slices to ints always.
- Requires CVXcanon 0.0.21
- Fixed Gurobi interface.
- Removed failing test that expected CVXOPT solver failure.
- Added logistic function.
- Added CVXcanon integration.
- Fixed bug with partial_optimize not working for nonlinear constraints.
- Put partial_optimize in cvxpy namespace.
- Fixed bug with printing slices.
- Added MOSEK SOCP interface thanks to Enzo.
- Fixed bug with mul_elemwise by scalar.
- Fixed compatibility issue with power atom and new NumPy.
- Fixed Windows compatibility issue.
- Added NonNegative variables.
- Added partial_optimize as first transform.
- Require ECOS 2.0.
- Added Elemental interface.
- Can add problems and objectives.
- Basic remove redundant rows for CVXOPT chol. Made 'chol' default kktsolver.
- Added symmetric variables and positive definite inequalities (<<, >>).
- Added bmat atom for making block matrices.
- Added kron.
- Made to work with SCS 1.1.3.
- Fixed issue where using "is" instead of "==".
- Required SCS version 1.0.7 so 1.1.0 can be updated on pip.
- Made operator overloading work with scipy sparse matrices (with scipy 0.15).
- Removed Expression shape function.
- Removed Expression array function.
- Caught c.T*x where c is a NumPy 1D array.
- Added power.
- sum no longer crashes on scalar expressions, though you shouldn't use it.
- Added mixed integer and SOCP support to Gurobi.
- Added geo_mean
- Fixed Python 3 runtime error where modifying the cvxopt.solvers.options dictionary while reading it.
- Requires ECOS 1.1.1.
- Removed norm_largest.
- Added GLPK interface.
- Updated ECOS BB exit codes.
- Factored out ability to get parameterized entries of matrix.
- Added GLPK_MIP interface.
- Optimizes rmul to mul.
- Added warmstart.
- Disabled MIP tests until nondeterminism is resolved.
- Added sum_largest, sum_smallest, norm_largest, lambda_sum_largest, lambda_sum_largest, and lambda_sum_smallest.
- Added log1p.
- Added scalene penalty.
- Made LinOp for multiplication on the right.
- TODO break up DCPAttr so only use atom DCP function.
- Added boolean and integer variables.
- Made geo_mean elementwise.
- Python 3 support!!!
- Error checking for x**p.
- Added upper_tri.
- Changed BoolVar, IntVar to Bool, Int.
- Simplified Huber loss graph_implementation.
- Made it so you can assign a value to a variable for an initial value.
- Overloaded power operator.
- Added unpack_results function to update problem state given results from a solver.
- Fixed bug where parameters were cached.
- Got rid of NumPy 1D array warning.
- Made vstack and hstack not create new variables.
- Replaced memoize with lazyprop in constraints.
- Refactored code for caching problem parsing.
- Changed cvxpy to use new SCS interface.
- Renamed semidefinite to Semidef.
- Switched solver_specific_opts to **kwargs.
- Added vec and documentation for reshape and vec.
- Changed repr to print names in line with class names.
- Changed str for Problem.
- Made < and > map to <= and >=.
- Added warning for NumPy 1D arrays.
- CVXPY throws an error when a solver error is encountered.
- Presolver removes constraints with no variables.
- Conversion from non-linear constraints to linear constraints is cached. This fixes issue #120.2.
- Fixed bug with sign multiplication.
- Added check that objective is Minimize/Maximize.
- Fixed bug with key error when solving exponential cone problem with CVXOPT.
- Removed a stray println.
- CVXPY import can succeed even if SCS import fails.
- The sign of vector and matrix constant is positive (negative) if all the entries are positive (negative), instead of always being unknown.
- Can now use negative indices.
- Added *_INACCURATE return codes.
- Made all lin_to_matrix functions return SciPy sparse matrix or NumPy matrix (instead of ndarray).