A positive operator on a cone should send its generators into the cone::
- sage: K = random_cone(max_ambient_dim = 6)
+ sage: set_random_seed()
+ sage: K = random_cone(max_ambient_dim = 5)
sage: pi_of_K = positive_operator_gens(K)
sage: all([K.contains(p*x) for p in pi_of_K for x in K.rays()])
True
The dimension of the cone of positive operators is given by the
corollary in my paper::
- sage: K = random_cone(max_ambient_dim = 6)
+ sage: set_random_seed()
+ sage: K = random_cone(max_ambient_dim = 5)
sage: n = K.lattice_dim()
sage: m = K.dim()
sage: l = K.lineality()
sage: pi_of_K = positive_operator_gens(K)
- sage: actual = Cone([p.list() for p in pi_of_K]).dim()
- sage: expected = n**2 - l*(n - l) - (n - m)*m
+ sage: L = ToricLattice(n**2)
+ sage: actual = Cone([p.list() for p in pi_of_K], lattice=L).dim()
+ sage: expected = n**2 - l*(m - l) - (n - m)*m
sage: actual == expected
True