Release notes¶
1.0¶
1.0.1¶
Renamed solution statuses to use
convergedinstead ofconverge. Callers comparingBiconvexProblem.statusstrings should update accordingly.
1.0.0¶
Changed the
BiconvexProblemconstructor to acceptx_varandy_varas separate arguments. The constructor materializes the two iterables, verifies that every member is a problem variable, and rejects overlapping groups. The groups may still be empty or non-exhaustive. Replace a grouped call such asBiconvexProblem(objective, ([x], [y]), constraints)withBiconvexProblem(objective, [x], [y], constraints).Unified direct and slack-penalized solves under
BiconvexProblem.solve(). The defaultmode="direct"preserves the direct algorithm, whilemode="penalty"selects the slack-penalized algorithm and permits an infeasible starting point. Omitting the penalty-onlynuandslack_toloptions, or explicitly passingNone, gives effective defaults of1and1e-6, respectively.numust be finite and strictly positive;nu=0is now rejected. A non-Nonevalue for either penalty-only option is also rejected in direct mode. Themethodkeyword is available for CVXPY and passes through to each subproblem solve; replace the former DBCP selectormethod="penalty"withmode="penalty". The oldslack_tolerancekeyword is rejected with this error:'slack_tolerance' was removed; use 'slack_tol'.Penalty results whose total slack exceeds
slack_tolnow use the statusesconverge_with_slackandconverge_inaccurate_with_slack, replacingconverge_infeasibleandconverge_inaccurate_infeasible. Equality withslack_tolis accepted.BiconvexRelaxProblemhas been removed from the public API. Constructing the migration stub raises this error:'BiconvexRelaxProblem' was removed; use 'BiconvexProblem' and call solve(mode='penalty', ...).Repeated calls keep the current variable values, so callers can explicitly retry either mode or switch modes on the same object.Added penalty-formulation inspection to
BiconvexProblem. The existingx_probandy_probproperties continue to expose the direct fixed subproblems. The newpenalty_prob,penalty_x_prob,penalty_y_prob, andslack_varsproperties lazily construct and then return stable penalty problem and slack-variable objects.Replaced the public
gap_tolerancesolve argument withabs_toland the keyword-onlyrel_tol. Both default to \(10^{-6}\), and DBCP stops when\[ |u-v| \leq \epsilon_{\mathrm{abs}} + \epsilon_{\mathrm{rel}}\max\{|u|,|v|\}. \]The legacy
gap_tolerancekeyword is rejected with guidance to use the new arguments. Settingrel_tol=0yields an absolute-only stopping criterion.
0.2¶
The prototype series provided BiconvexProblem for direct alternating solves,
BiconvexRelaxProblem for slack-relaxed solves, and convolve for biconvex
convolution expressions.