- def contains_strict(self, point):
- """
- Return whether or not ``point`` belongs to the interior
- of this cone.
-
- The ``point`` is expected to be a tuple of points which will be
- tested for membership in this cone's factors. If each point in
- the tuple belongs to the interior of its corresponding factor,
- then the whole point belongs to the interior of this
- cone. Otherwise, it doesn't.
-
- Parameters
- ----------
-
- point : tuple of matrix
- A tuple of :class:`cvxopt.base.matrix` corresponding to the
- :meth:`factors` of this cartesian product.
-
- Returns
- -------
-
- bool
-
- ``True`` if ``point`` belongs to the interior of this cone,
- ``False`` otherwise.
-
- Raises
- ------
-
- TypeError
- If ``point`` is not a tuple of :class:`cvxopt.base.matrix`.
-
- TypeError
- If any element of ``point`` has the wrong dimensions.
-
- Examples
- --------
-
- >>> K = CartesianProduct(NonnegativeOrthant(3), IceCream(3))
- >>> K.contains_strict((matrix([1,2,3]), matrix([1,0.5,0.5])))
- True
-
- >>> K = CartesianProduct(NonnegativeOrthant(3), IceCream(3))
- >>> K.contains_strict((matrix([0,0,0]), matrix([1,0,1])))
- False
-
- >>> K = CartesianProduct(NonnegativeOrthant(3), IceCream(3))
- >>> K.contains_strict((matrix([1,1,1]), matrix([1,1,1])))
- False
-
- >>> K = CartesianProduct(NonnegativeOrthant(3), IceCream(3))
- >>> K.contains_strict((matrix([1,-1,1]), matrix([1,0,1])))
- False
-
- >>> K = CartesianProduct(NonnegativeOrthant(3), IceCream(3))
- >>> K.contains_strict([[1,2,3],[4,5,6]])
- Traceback (most recent call last):
- ...
- TypeError: the given point is not a cvxopt.base.matrix
-
- >>> K = CartesianProduct(NonnegativeOrthant(3), IceCream(3))
- >>> K.contains_strict((matrix([1,2]), matrix([3,4,5,6])))
- Traceback (most recent call last):
- ...
- TypeError: the given point has the wrong dimensions
-
- """
- return all([f.contains_strict(p)
- for (p,f) in zip(point, self.factors())])
-
-