Sageopt

Latest version: v0.5.3

Safety actively analyzes 625951 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.4.1

Changed
- Fixed a bug in the function ``clcons_from_standard_gprep``.
- ``Variable.value`` is now a settable property.
- Fixed a bug in SigDomain and PolyDomain.
Removed
- ``Variable.set_scalar_variables``.
- The ``name`` field of the ScalarVariable class.
- Some unused functions in ``coniclifts.base.ScalarAtom``.
Added
- An ``index`` field to the ScalarVariable class.
- A ``_DEACTIVATE_SCALING_`` static attribute in the ``Mosek`` class.

0.4.0

Added
- SigDomain and PolyDomain classes.
- sage_cones.py, which handles the ordinary and conditional SAGE cases.
- Support for automatic elimination of trivial AGE cones from SAGE relaxations. This can be disabled
by calling ``sageopt.coniclifts.presolve_trivial_age_cones(False)``.
- An explicit requirement that ``Constraint.variables()`` returns both all variables in its scope,
and that all returned Variables be "proper".
- For PrimalSageCone: added the option to allow AGE vectors to sum <= c, or == c. The default is <= c.
The default setting can be changed by calling ``sageopt.coniclifts.sum_age_force_equality(True)``.
Changed
- ``conditional_sage_data`` is ``infer_domain``. These functions have an additional argument for checking
feasibility of the inferred system (defaults to True).
- The signature of ``sig_relaxation`` and ``sig_constrained_relaxation``. Hierarchy parameters are now specified
by keyword arguments, and the argument ``X`` comes before the argument ``form``.
- Conditional SAGE constraints now assume that the "conditioning" is feasible.
- The ``var_name_to_locs`` dict from ``coniclifts.compilers.compile_constrained_system``.
It now has a slightly different definition, and a different name.
- Fields in the Problem class. ``Problem.user_cons`` is now ``Problem.constraints``.
``Problem.user_obj`` is now ``Problem.objective_expr``.
``Problem.user_variable_map`` is now ``Problem.variable_map``.
- How ElementwiseConstraint objects report their variables. They now always include user-defined variables,
and if ``con.variables()`` is called after epigraph substitution, then the list will also contain the epigraph
variables.
- Fixed a bug in ``conditional_sage_data`` (now, ``infer_domain``). Equality constraints were being
incorrectly compiled. The bug only meant that SAGE relaxations solved in the past were unnecessarily weak.
Removed
- ``log_domain_converter``. It wasn't being used.
- conditional_sage_cone.py, sage_cone.py.
- sig_primal, sig_dual, poly_primal, poly_dual (and the four constrained variations thereof)
as top-level imports within sageopt. These functions are still accessible from sageopt.relaxations.

0.3.4

Added
- sig_relaxation and sig_constrained_relaxation. These are wrappers around sig_primal/sig_dual
and sig_constrained_primal/sig_constrained_dual. I introduced these because now users can specify the
form as a keyword argument. This keeps the number of user-facing functions lower, and
the docstrings for these functions can be heavy on LaTeX for rendering in web documentation.
- Variants of the above for polynomial problems.
Changed
- Major changes to how coniclifts handles the compilation process. Refer to commit 7cb07866e55c6618ce17d090d52281512ea2351f.

0.3.3

Added
- unittests for primal and dual SAGE cone constraint violations.
- An option for the user to specify skipping constrained least-squares step of solution recovery.
Changed
- Constraint violation computations (to resolve several syntax bugs which showed up in version 0.3.2).
- Updated polynomial magnitude recovery to be consistent with the latest version of the arXiv paper.

0.3.2

Changed
- coniclifts Expression objects get value by ``.value`` instead of ``.value()``
- fixed a bug in ``__contains__`` for coniclifts PrimalCondSageCone

0.3.1

Added
- Documentation to helper functions defined in ``sageopt.relaxations`` init file.
- Some unittests for conditional sage polynomials.
Changed
- Conditional SAGE cone compilation behavior. It used to be that conditional
SAGE cones were replaced by the nonnegative orthant if the parameter ``m <= 2`` .
(The <= 2 was a hold-over from ordinary SAGE cones, where any 2-dimensional SAGE cone
is equal to R^2_+). The behavior is now corrected, so that 2-dimensional conditional
SAGE cones compile to mathematically correct forms.
- Solution recovery for SAGE polynomial relaxations. The MCW2019 paper didnt use
constrained least-squares, because there was a separate need to handle when some
entries of the moment vector were zero. The new implementation now solves a
constrained least-squares problem when all entries of the moment vector are nonzero.

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.