``K``. Moreover, any nonnegative linear combination of these
matrices shares the same property.
+ REFERENCES:
+
+ .. [Orlitzky-Pi-Z]
+ M. Orlitzky.
+ Positive operators and Z-transformations on closed convex cones.
+
+ .. [Tam]
+ B.-S. Tam.
+ Some results of polyhedral cones and simplicial cones.
+ Linear and Multilinear Algebra, 4:4 (1977) 281--284.
+
EXAMPLES:
Positive operators on the nonnegative orthant are nonnegative matrices::
vectors = [ W(tp.list()) for tp in tensor_products ]
check = True
- if K.is_solid() or K.is_strictly_convex():
- # The lineality space of either ``K`` or ``K.dual()`` is
- # trivial and it's easy to show that our generating set is
- # minimal. I would love a proof that this works when ``K`` is
- # neither pointed nor solid.
- #
- # Note that in that case we can get *duplicates*, since the
- # tensor product of (x,s) is the same as that of (-x,-s).
+ if K.is_proper():
+ # All of the generators involved are extreme vectors and
+ # therefore minimal [Tam]_. If this cone is neither solid nor
+ # strictly convex, then the tensor product of ``s`` and ``x``
+ # is the same as that of ``-s`` and ``-x``. However, as a
+ # /set/, ``tensor_products`` may still be minimal.
check = False
# Create the dual cone of the positive operators, expressed as
A list of `n`-by-``n`` matrices where ``n == K.lattice_dim()``.
Each matrix ``L`` in the list should have the property that
- ``(L*x).inner_product(s) <= 0`` whenever ``(x,s)`` is an element the
- discrete complementarity set of ``K``. Moreover, any nonnegative
- linear combination of these matrices shares the same property.
+ ``(L*x).inner_product(s) <= 0`` whenever ``(x,s)`` is an element of
+ this cone's :meth:`discrete_complementarity_set`. Moreover, any
+ conic (nonnegative linear) combination of these matrices shares the
+ same property.
+
+ REFERENCES:
+
+ M. Orlitzky.
+ Positive operators and Z-transformations on closed convex cones.
EXAMPLES:
vectors = [ W(m.list()) for m in tensor_products ]
check = True
- if K.is_solid() or K.is_strictly_convex():
- # The lineality space of either ``K`` or ``K.dual()`` is
- # trivial and it's easy to show that our generating set is
- # minimal. I would love a proof that this works when ``K`` is
- # neither pointed nor solid.
- #
- # Note that in that case we can get *duplicates*, since the
- # tensor product of (x,s) is the same as that of (-x,-s).
+ if K.is_proper():
+ # All of the generators involved are extreme vectors and
+ # therefore minimal. If this cone is neither solid nor
+ # strictly convex, then the tensor product of ``s`` and ``x``
+ # is the same as that of ``-s`` and ``-x``. However, as a
+ # /set/, ``tensor_products`` may still be minimal.
check = False
# Create the dual cone of the cross-positive operators,