X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;ds=sidebyside;f=mjo%2Fcone%2Frearrangement.py;h=b2ccfcb58f8aa58b52a8d724ca42725593ed7463;hb=d692390065e0982d58050161966fa313495b61ba;hp=0df1daf054ecefecafac59e09f00559e7fa1cad8;hpb=090b2c77aa4bd371d66885451f9df44c6b6d818f;p=sage.d.git diff --git a/mjo/cone/rearrangement.py b/mjo/cone/rearrangement.py index 0df1daf..b2ccfcb 100644 --- a/mjo/cone/rearrangement.py +++ b/mjo/cone/rearrangement.py @@ -1,10 +1,3 @@ -# Sage doesn't load ~/.sage/init.sage during testing (sage -t), so we -# have to explicitly mangle our sitedir here so that "mjo.cone" -# resolves. -from os.path import abspath -from site import addsitedir -addsitedir(abspath('../../')) - from sage.all import * def rearrangement_cone(p,n): @@ -35,6 +28,10 @@ def rearrangement_cone(p,n): A polyhedral closed convex cone object representing a rearrangement cone of order ``p`` in ``n`` dimensions. + SETUP:: + + sage: from mjo.cone.rearrangement import rearrangement_cone + EXAMPLES: The rearrangement cones of order one are nonnegative orthants:: @@ -55,21 +52,21 @@ def rearrangement_cone(p,n): All rearrangement cones are proper:: - sage: all([ rearrangement_cone(p,n).is_proper() - ....: for n in range(10) - ....: for p in range(n) ]) + sage: all( rearrangement_cone(p,n).is_proper() + ....: for n in range(10) + ....: for p in range(n) ) True The Lyapunov rank of the rearrangement cone of order ``p`` in ``n`` dimensions is ``n`` for ``p == 1`` or ``p == n`` and one otherwise:: - sage: all([ rearrangement_cone(p,n).lyapunov_rank() == n - ....: for n in range(2, 10) - ....: for p in [1, n-1] ]) + sage: all( rearrangement_cone(p,n).lyapunov_rank() == n + ....: for n in range(2, 10) + ....: for p in [1, n-1] ) True - sage: all([ rearrangement_cone(p,n).lyapunov_rank() == 1 - ....: for n in range(3, 10) - ....: for p in range(2, n-1) ]) + sage: all( rearrangement_cone(p,n).lyapunov_rank() == 1 + ....: for n in range(3, 10) + ....: for p in range(2, n-1) ) True TESTS: @@ -80,7 +77,7 @@ def rearrangement_cone(p,n): sage: p = ZZ.random_element(1,n) sage: K = rearrangement_cone(p,n) sage: P = SymmetricGroup(n).random_element().matrix() - sage: all([ K.contains(P*r) for r in K.rays() ]) + sage: all( K.contains(P*r) for r in K ) True """ @@ -126,15 +123,24 @@ def has_rearrangement_property(v, p): components sum to a nonnegative number), ``True`` is returned. Otherwise ``False`` is returned. + SETUP:: + + sage: from mjo.cone.rearrangement import (has_rearrangement_property, + ....: rearrangement_cone) + EXAMPLES: Every element of a rearrangement cone should have the property:: - sage: for n in range(2,10): - ....: for p in range(1, n-1): - ....: K = rearrangement_cone(p,n) - ....: v = K.random_element() - ....: if not has_rearrangement_property(v,p): print v + sage: set_random_seed() + sage: all( has_rearrangement_property( + ....: rearrangement_cone(p,n).random_element(), + ....: p + ....: ) + ....: for n in range(2, 10) + ....: for p in range(1, n-1) + ....: ) + True """ components = sorted(v)[0:p]