summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sumofsquares/__init__.py93
1 files changed, 58 insertions, 35 deletions
diff --git a/sumofsquares/__init__.py b/sumofsquares/__init__.py
index 39504a4..54aec7e 100644
--- a/sumofsquares/__init__.py
+++ b/sumofsquares/__init__.py
@@ -7,41 +7,62 @@ This is a package to solve sum-of-squares optimization problems.
Module Overview
---------------
-Class diagram, arrows denote inheritance, whereas diamonds indicate composition.
+Class diagram: Arrows denote inheritance, diamonds indicate composition.
::
-
- ┏━━sumofsquares package━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ ┌─.abc──────────────────────────────────────────────────────────────────────────────────────────┐ ┃
- ┃ │ ┌────────────┐ ┌──────────────┐ ┌─────────┐ ┌───────┐ ┌──────────────┐ │ ┃
- ┃ │ │ SolverInfo │◇─┐ │ Solver(Enum) │ │ Problem │ │ Set │ │ Constraint │ │ ┃
- ┃ │ └────────────┘ │ └──────────────┘ └─────────┘ └───────┘ └──────────────┘ │ ┃
- ┃ │ ▲ │ ▲ ▲ ▲ │ ┃
- ┃ └────────┼────────┼─────────────────────────┼─────────────┼───────────────┼─────────────────────┘ ┃
- ┃ │ │ ┌────────────┘ ┌──┘ ├─────────────┐ ┃
- ┃ │ │ │ │ │ │ ┃
- ┃ ┌─.cvxop│t─────┐ │ ┌─.problems┼──────────┐ ┌─.constrai│nts───────────────┼─────────────┼───────┐ ┃
- ┃ │ │ │ │ │ │ │ │ │ │ │ │ ┃
- ┃ │ ┌──────────┐ │ │ │ ┌─────────────────┐ │ │ ┌────────────────┐ ┌───────────┐ ┌───────────┐ │ ┃
- ┃ │ │CVXOptInfo│ │ │ │ │PutinarSOSProblem│ │ │ │ ArchimedeanSet │◇───│NonNegative│ │EqualToZero│ │ ┃
- ┃ │ └──────────┘ │ │ │ └─────────────────┘ │ │ └────────────────┘ └───────────┘ └───────────┘ │ ┃
- ┃ │ │ │ │ ┌────────┐ │ │ │ ┃
- ┃ │ │ └─┼─│ Result │ │ │ │ ┃
- ┃ │ │ │ └────────┘ │ │ │ ┃
- ┃ └──────────────┘ └─────────────────────┘ └───────────────────────────────────────────────────┘ ┃
- ┃ ┌─.variable─────────────────┐ ┃ ┏━━━polymatrix package━━━━━━━━━┓
- ┃ │ │ ┃ ┃ ┃
- ┃ │ ┌───────────┐ │ ┃ ┃ ┌──────────┐ ┌──────────┐ ┃
- ┃ │ │OptVariable│──────────┼──╋──╋─▶│ Variable │ │Expression│ ┃
- ┃ │ └───────────┘ │ ┃ ┃ └──────────┘ └──────────┘ ┃
- ┃ │ ▲ │ ┃ ┃ │ ┃
- ┃ │ │ │ ┃ ┃ ┌─────────┘ ┃
- ┃ │ │ │ ┃ ┃ ◇ ┃
- ┃ │ ┌────────────────┐ │ ┃ ┃ ┌─────────────────────┐ ┃
- ┃ │ │OptVariableMixin│────────┼──╋──╋─▶│ ExpressionBaseMixin │ ┃
- ┃ │ └────────────────┘ │ ┃ ┃ └─────────────────────┘ ┃
- ┃ └───────────────────────────┘ ┃ ┃ ┃
- ┃ ┃ ┃ ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
+ ┏━━sumofsquares package━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
+ ┃ ┃
+ ┃ ┌─.abc──────────────┐ ┌─.problems────────────────────────────────────────────────────┐ ┃
+ ┃ │ ┌──────────────┐ │ │ │ ┃
+ ┃ │ │ Problem │◀─┼───┼────────────┬───────────────────┬──────────────────┐ │ ┃
+ ┃ │ └──────────────┘ │ │ │ │ │ │ ┃
+ ┃ │ │ │ │ ┌───────────────────┐ ┌────────────┐ ┌──────────────────┐ │ ┃
+ ┃ │ ◇ │ │ │ ConicProblem │ │ SOSProblem │ │InternalSOSProblem│ │ ┃
+ ┃ │ ┌──────────────┐ │ │ └───────────────────┘ └────────────┘ └──────────────────┘ │ ┃
+ ┃ │ │ Solver(Enum) │ │ │ ▲ │ ┃
+ ┃ │ └──────────────┘ │ │ ┌────┴────────────────┐ │ ┃
+ ┃ │ │ │ │ │ │ ┃
+ ┃ │ ┌──────────────┐ │ │ ┌─────────────┐ ┌─────────────────┐ ┌────────────────────┐ │ ┃
+ ┃ │ │ Result │◀─┼───┼─│ ConicResult │ │PutinarSOSProblem│ │SchmuedgenSOSProblem│ │ ┃
+ ┃ │ └──────────────┘ │ │ └─────────────┘ └─────────────────┘ └────────────────────┘ │ ┃
+ ┃ │ │ │ └──────────────────────────────────────────────────────────────┘ ┃
+ ┃ │ │ │ ┃
+ ┃ │ ◇ │ ┌─.solvers.cvxopt──┐ ┌─.solvers.scs─────┐ ┌─.solvers.mosek───┐ ┃
+ ┃ │ ┌──────────────┐ │ │ │ │ │ │ │ ┃
+ ┃ │ │ SolverInfo │◀─┼───┼───────┬──────────┼──┼──────┬───────────┼──┼──────┐ │ ┃
+ ┃ │ └──────────────┘ │ │ │ │ │ │ │ │ │ │ ┃
+ ┃ │ │ │ ┌──────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ │ ┃
+ ┃ │ │ │ │CVXOptInfo│ │ │ │ SCSInfo │ │ │ │MosekInfo│ │ ┃
+ ┃ │ │ │ └──────────┘ │ │ └─────────┘ │ │ └─────────┘ │ ┃
+ ┃ │ │ └──────────────────┘ └──────────────────┘ └──────────────────┘ ┃
+ ┃ │ │ ┃
+ ┃ │ │ ┌─.constraints──────────────────────────────────────────────────────┐ ┃
+ ┃ │ ┌──────────────┐ │ │ │ ┃
+ ┃ │ │ Constraint │◀─┼───┼───────────────────────────┬────────┬──────────┬─────────┐ │ ┃
+ ┃ │ └──────────────┘ │ │ │ │ │ │ │ ┃
+ ┃ │ ┌──────────────┐ │ │ ┌───────────────────────┐ │ ┌───────────┐ │ ┌───────────────┐ │ ┃
+ ┃ │ │ Set │◀─┼───┼─│ BasicSemialgebraicSet │ │ │EqualToZero│ │ │ExponentialCone│ │ ┃
+ ┃ │ └──────────────┘ │ │ └───────────────────────┘ │ └───────────┘ │ └───────────────┘ │ ┃
+ ┃ │ │ │ ◇ │ │ │ ┃
+ ┃ │ │ │ │ ┌───────────┐ ┌────────────────────┐ │ ┃
+ ┃ │ │ │ └───────│NonNegative│ │PositiveSemiDefinite│ │ ┃
+ ┃ │ │ │ └───────────┘ └────────────────────┘ │ ┃
+ ┃ │ │ │ │ ┃
+ ┃ │ │ │ │ ┃
+ ┃ └───────────────────┘ └───────────────────────────────────────────────────────────────────┘ ┃
+ ┃ ┃
+ ┃ ┌─.variable─────────────────┐ ┃ ┏━━━polymatrix package━━━━━━━━━┓
+ ┃ │ │ ┃ ┃ ┃
+ ┃ │ ┌───────────┐ │ ┃ ┃ ┌──────────┐ ┌──────────┐ ┃
+ ┃ │ │OptVariable│──────────┼──╋───╋─▶│ Variable │ │Expression│ ┃
+ ┃ │ └───────────┘ │ ┃ ┃ └──────────┘ └──────────┘ ┃
+ ┃ │ ▲ │ ┃ ┃ │ ┃
+ ┃ │ │ │ ┃ ┃ ┌─────────┘ ┃
+ ┃ │ │ │ ┃ ┃ ◇ ┃
+ ┃ │ ┌────────────────┐ │ ┃ ┃ ┌─────────────────────┐ ┃
+ ┃ │ │OptVariableMixin│────────┼──╋───╋─▶│ ExpressionBaseMixin │ ┃
+ ┃ │ └────────────────┘ │ ┃ ┃ └─────────────────────┘ ┃
+ ┃ └───────────────────────────┘ ┃ ┃ ┃
+ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
"""
from typing import Iterable
@@ -54,8 +75,10 @@ from .abc import Problem, Result, Set, Constraint, Solver
from .constraints import BasicSemialgebraicSet, NonNegative
from .problems import PutinarSOSProblem
from .utils import partition
-from .variable import OptVariable, from_names
+from .variable import OptVariable, from_names as internal_from_names
+# export function
+from_names = internal_from_names
def make_sos_constraint(expr: Expression, domain: Set | None = None) -> NonNegative:
return NonNegative(expr, domain)