Release History =============== The notes here are a summary from Sageopt's changelog. Each item in the lists that follow is prefaced by a term like "coniclifts", "symbolic", or "relaxations"; these terms indicate the primary subpackage of sageopt which was affected. [0.5.3] - 2020-09-07 -------------------- Changed - coniclifts: Fix regression introduced in 0.5.2 (optimization based dimension reduction was inadvertently disabled). - coniclifts: Remove an unstated assumption in the ``relent.py`` precompiled atom. - coniclifts: Minor change to how DualSageCones compute violations. [0.5.2] - 2020-07-05 -------------------- Changed - coniclifts: heavily refactor precompiled affine atoms. - relaxations: dual SAGE relaxations no longer introduce high-level slack variables by default. Added - coniclifts: the mosek interface now automatically performs low-level dualization for certain problems. - coniclifts: ``prob.solve`` accepts an argument to override or force dualization (when using MOSEK). [0.5.1] - 2020-06-21 -------------------- Removed - coniclifts: compile_linear_expression. Changed - symbolic: signomials now broadcast in certain arithmetic with ndarrays. Added - coniclifts: "abs" and "pos" NonlinearScalarAtoms. - coniclifts: a field "age_witnesses" to ``PrimalSageCone`` objects. - coniclifts: ``compile_objective``. - coniclifts: an option to eliminate all equality constraints when compiling a ``PrimalSageCone``. - coniclifts: ``PrimalSageCone`` violation now computed by evaluating the support function of ``X``. - symbolic: SigDomain objects have a ``suppfunc`` method, to evaluate support function. [0.5.0] - 2020-03-25 -------------------- Removed - coniclifts: private compilation constants (e.g. ``_REDUCTION_SOLVER_``) in ``sage_cones.py`` - coniclifts: private solver parameters (e.g. ``_DEACTIVATE_SCALING``) in ``mosek.py`` Changed - symbolic: Signomials are now represented primarily by arrays, rather than a dictionary. - symbolic: Signomial and Polynomial constructors: both parameters ``alpha`` and ``c`` are *required*. Added - symbolic: ``Signomial.from_dict`` and ``Polynomial.from_dict`` convenience functions for construction. - relaxations: keyword argument checking in ``sig_constrained_relaxation`` and ``poly_constrained_relaxation``. - coniclifts: an option to reduce epigraph variable usage in dual SAGE relaxations. - coniclifts: mixed-integer support for MOSEK. - coniclifts: ``PrimalSageCone.settings`` and ``DualSageCone.settings``: dictionary-valued properties which record compilation settings (e.g. pre-solve behavior) - coniclifts: Properly expose all MOSEK solver options. - interop: Proper tests for GPKit integration. - interop: CVXPY integration. [0.4.2] - 2019-11-18 -------------------- Changed - symbolic: ``Signomial.partial`` and ``Polynomial.partial`` to correctly work with nonconstant coefficients. - symbolic: Essentially all "attributes" of Signomial or Polynomial objects have become "properties". Added - sageopt: ``sageopt.interop`` a subpackage for interacting with other python projects. - symbolic: A ``metadata`` field to Signomial and Polynomial objects. [0.4.1] - 2019-10-13 -------------------- Removed - coniclifts: ``Variable.set_scalar_variables``. - coniclifts: The ``name`` field of the ScalarVariable class. - coniclifts: Some unused functions in ``coniclifts.base.ScalarAtom``. Changed - symbolic: Fixed a bug in SigDomain and PolyDomain. - relaxations: Fixed a bug in the function ``clcons_from_standard_gprep``. - coniclifts: ``Variable.value`` is now a settable property. Added - coniclifts: An ``index`` field to the ScalarVariable class. - coniclifts: A ``_DEACTIVATE_SCALING_`` static attribute in the ``Mosek`` class. [0.4.0] - 2019-10-06 -------------------- Removed - sageopt: sig_primal, sig_dual, poly_primal, poly_dual (and the four constrained variations thereof) as top-level imports within sageopt. These should have been removed in v0.3.4. - coniclifts: conditional_sage_cone.py - coniclifts: sage_cone.py. Changed - relaxations: ``conditional_sage_data`` is now ``infer_domain``. - relaxations: The signature of ``sig_relaxation`` and ``sig_constrained_relaxation``. - relaxations: Fixed a bug in ``conditional_sage_data`` (now, ``infer_domain``). Equality constraints were being incorrectly compiled into weaker forms. - coniclifts: Conditional SAGE constraints now assume that the "conditioning" is feasible. - coniclifts: The ``var_name_to_locs`` dict from ``coniclifts.compilers.compile_constrained_system``. - coniclifts: Several fields in the ``coniclifts.Problem`` class. - coniclifts: How ``ElementwiseConstraint`` objects report their variables. Added - symbolic: SigDomain and PolyDomain classes, to represent "X" with conditional SAGE cones. - coniclifts: sage_cones.py. - coniclifts: the option to eliminate trivial AGE cones from SAGE relaxations. - coniclifts: the option to allow AGE vectors to sum <= c, or == c. The default is <= c. [0.3.4] - 2019-09-09 -------------------- Changed - coniclifts: Major changes to the compilation process. Refer to commit 7cb07866e55c6618ce17d090d52281512ea2351f. Added - relaxations: sig_relaxation and sig_constrained_relaxation (and variants for polynomial problems). [0.3.3] - 2019-08-10 -------------------- Changed - relaxations: Updated polynomial magnitude recovery to be consistent with the latest version of the arXiv paper. - coniclifts: Constraint violation computations (to resolve several syntax bugs which showed up in version 0.3.2). Added - relaxations: An option for the user to specify skipping constrained least-squares step of solution recovery. - coniclifts: unittests for primal and dual SAGE cone constraint violations. [0.3.2] - 2019-07-12 -------------------- Changed - coniclifts: Expression objects get value by ``.value`` instead of ``.value()`` - coniclifts: fixed a bug in ``__contains__`` for coniclifts PrimalCondSageCone [0.3.1] - 2019-07-09 -------------------- Changed - relaxations: least-squares solution recovery for polynomial problems. - coniclifts: conditional SAGE cones with m=2 were being compiled into overly restrictive terms, this is now fixed. Added - relaxations: Documentation to helper functions defined in ``sageopt.relaxations`` init file. - relaxations: Some unittests for conditional sage polynomials. [0.3.0] - 2019-06-30 -------------------- Removed - symbolic: Removed the ability to call signomials in geometric format. - relaxations: Removed the local_refine implementation for polynomials. Changed - relaxations: Changed references to "AbK" and "logAbK" in user-facing functions to "X". Added - Several functions as top-level imports in ``sageopt``. - symbolic: Added ``as_signomial`` function to Polynomial objects. - symbolic: Added ``log_domain_converter`` to ``sage_polys.py``. - relaxations: a function ``local_refine_polys_from_sigs``. - relaxations: Track the constraint functions which generate the set ``X`` in conditional SAGE relaxations. [0.2.0] - 2019-05-24 -------------------- Bumping version from 0.1 to 0.2, because I've made a ton of changes to 0.1 without noting them in a changelog. This is effectively me starting from scratch with version numbers, in preparation for a public release. Added - This changelog.md file. - A README file. - License information.