Functionalities

Here, we describe some functionalities.

V-representation

For polytopes, we can have different representations. To go from H-representation to V-representation, we must solve the linear program given by

\[\min_{\boldsymbol{x}} \boldsymbol{A} \boldsymbol{x} \leq \boldsymbol{b} \quad \text{subject to} \quad \boldsymbol{F} \boldsymbol{x} = \boldsymbol{g}.\]

Chebyshev center

Similar to the polytope package, we can compute the Chebyshev center by solving the linear program given by

\[\max_{r, \boldsymbol{c}} r \quad \text{subject to} \quad \boldsymbol{a}_{i}^{\mathsf{T}} \boldsymbol{c} + \Vert \boldsymbol{a}_{i} \Vert \cdot r \leq b_{i}, r \geq 0, \forall i.\]

where

\[\begin{split}\boldsymbol{A} = \begin{bmatrix} \rule[.5ex]{2.5ex}{0.5pt} & \boldsymbol{a}_{1}^{\mathsf{T}} & \rule[.5ex]{2.5ex}{0.5pt} \\ & \vdots & \\ -\!\!\!-\!\!\!- & \boldsymbol{a}_{m}^{\mathsf{T}} & -\!\!\!-\!\!\!- \end{bmatrix} \quad \text{and} \quad \boldsymbol{b} = \begin{bmatrix} b_{1} \\ \vdots \\ b_{m} \end{bmatrix}.\end{split}\]

Context managers

GeoPES also provides several context managers. Example are setting the default value of in_place to True or False. Examples are:

X = geo.poly(F, g)
3 * X  # This will not modify the polytope in place.

with geo.in_place(True):
    3 * X  # This will modify the polytope in place.

with geo.default_precision(1e-6):
    print(X <= 0.99 * X)   # This will use the default precision of 1e-6.