From c9ab469a53dc691d2646e22bdbc0ea0b3f3961c1 Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Mon, 11 Jan 2016 10:04:50 -0500 Subject: [PATCH] Add tests for permutation/conjugation of cones/transformations. --- mjo/cone/cone.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/mjo/cone/cone.py b/mjo/cone/cone.py index 66d6ccf..21f9862 100644 --- a/mjo/cone/cone.py +++ b/mjo/cone/cone.py @@ -441,6 +441,25 @@ def positive_operator_gens(K): ....: check=False) sage: K.is_proper() == pi_cone.is_proper() True + + The positive operators of a permuted cone can be obtained by + conjugation:: + + sage: set_random_seed() + sage: K = random_cone(max_ambient_dim=4) + sage: L = ToricLattice(K.lattice_dim()**2) + sage: p = SymmetricGroup(K.lattice_dim()).random_element().matrix() + sage: pK = Cone([ p*k for k in K ], K.lattice(), check=False) + sage: pi_of_pK = positive_operator_gens(pK) + sage: actual = Cone([t.list() for t in pi_of_pK], + ....: lattice=L, + ....: check=False) + sage: pi_of_K = positive_operator_gens(K) + sage: expected = Cone([(p*t*p.inverse()).list() for t in pi_of_K], + ....: lattice=L, + ....: check=False) + sage: actual.is_equivalent(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 @@ -642,6 +661,25 @@ def Z_transformation_gens(K): sage: Z_cone = Cone([z.list() for z in Z_of_K], check=False) sage: Z_cone.dim() == 3 True + + The Z-transformations of a permuted cone can be obtained by + conjugation:: + + sage: set_random_seed() + sage: K = random_cone(max_ambient_dim=4) + sage: L = ToricLattice(K.lattice_dim()**2) + sage: p = SymmetricGroup(K.lattice_dim()).random_element().matrix() + sage: pK = Cone([ p*k for k in K ], K.lattice(), check=False) + sage: Z_of_pK = Z_transformation_gens(pK) + sage: actual = Cone([t.list() for t in Z_of_pK], + ....: lattice=L, + ....: check=False) + sage: Z_of_K = Z_transformation_gens(K) + sage: expected = Cone([(p*t*p.inverse()).list() for t in Z_of_K], + ....: lattice=L, + ....: check=False) + sage: actual.is_equivalent(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 -- 2.43.2