X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Fcone%2Fcone.py;h=1ab6b97c128cde3d1e176032cf0d90f601057166;hb=46b32aa189efc76f3403fe410a622ee21329812b;hp=e9d70e42ef61e0b44d492e6d46687f383ab8b1c6;hpb=14571032f67138970cf702181970ecd1290f6ef2;p=sage.d.git diff --git a/mjo/cone/cone.py b/mjo/cone/cone.py index e9d70e4..1ab6b97 100644 --- a/mjo/cone/cone.py +++ b/mjo/cone/cone.py @@ -197,6 +197,18 @@ def positive_operator_gens(K): sage: actual == expected True + The lineality of the cone of positive operators is given by the + corollary in my paper:: + + sage: set_random_seed() + sage: K = random_cone(max_ambient_dim = 5) + sage: n = K.lattice_dim() + sage: pi_of_K = positive_operator_gens(K) + sage: L = ToricLattice(n**2) + sage: actual = Cone([p.list() for p in pi_of_K], lattice=L).lineality() + sage: expected = n**2 - K.dim()*K.dual().dim() + sage: actual == expected + True """ # Matrices are not vectors in Sage, so we have to convert them # to vectors explicitly before we can find a basis. We need these @@ -289,6 +301,13 @@ def Z_transformation_gens(K): sage: z_cone.linear_subspace() == lls True + And thus, the lineality of Z is the Lyapunov rank:: + + sage: set_random_seed() + sage: K = random_cone(min_ambient_dim = 1, max_ambient_dim = 6) + sage: z_cone = Cone([ z.list() for z in Z_transformation_gens(K) ]) + sage: z_cone.lineality() == K.lyapunov_rank() + True """ # Matrices are not vectors in Sage, so we have to convert them # to vectors explicitly before we can find a basis. We need these