+ A list of pairs `(x,s)` such that,
+
+ * `x` is in this cone.
+ * `x` is a generator of this cone.
+ * `s` is in this cone's dual.
+ * `s` is a generator of this cone's dual.
+ * `x` and `s` are orthogonal.
+
+ EXAMPLES:
+
+ The discrete complementarity set of the nonnegative orthant consists
+ of pairs of standard basis vectors::
+
+ sage: K = Cone([(1,0),(0,1)])
+ sage: discrete_complementarity_set(K)
+ [((1, 0), (0, 1)), ((0, 1), (1, 0))]
+
+ If the cone consists of a single ray, the second components of the
+ discrete complementarity set should generate the orthogonal
+ complement of that ray::
+
+ sage: K = Cone([(1,0)])
+ sage: discrete_complementarity_set(K)
+ [((1, 0), (0, 1)), ((1, 0), (0, -1))]
+ sage: K = Cone([(1,0,0)])
+ sage: discrete_complementarity_set(K)
+ [((1, 0, 0), (0, 1, 0)),
+ ((1, 0, 0), (0, -1, 0)),
+ ((1, 0, 0), (0, 0, 1)),
+ ((1, 0, 0), (0, 0, -1))]
+
+ When the cone is the entire space, its dual is the trivial cone, so
+ the discrete complementarity set is empty::
+
+ sage: K = Cone([(1,0),(-1,0),(0,1),(0,-1)])
+ sage: discrete_complementarity_set(K)
+ []