X-Git-Url: http://gitweb.michael.orlitzky.com/?a=blobdiff_plain;f=mjo%2Fcone%2Fschur.py;h=53607a948ef26a3cb9f5fae2d86c8d895a4fab71;hb=7fe29009a2fa2e6a2ceaf623e860e23a0fa22b1a;hp=dca7292807096997a18bf5a57ae7dc400f3be187;hpb=f79e891ca154b0fa935a14001b0b6ed194425741;p=sage.d.git diff --git a/mjo/cone/schur.py b/mjo/cone/schur.py index dca7292..53607a9 100644 --- a/mjo/cone/schur.py +++ b/mjo/cone/schur.py @@ -19,6 +19,11 @@ def schur_cone(n): REFERENCES: + .. [GourionSeeger] Daniel Gourion and Alberto Seeger. + Critical angles in polyhedral convex cones: numerical and + statistical considerations. Mathematical Programming, 123:173-198, + 2010, doi:10.1007/s10107-009-0317-2. + .. [IusemSeegerOnPairs] Alfredo Iusem and Alberto Seeger. On pairs of vectors achieving the maximal angle of a convex cone. Mathematical Programming, 104(2-3):501-523, 2005, @@ -47,6 +52,17 @@ def schur_cone(n): sage: abs(actual - expected).n() < 1e-12 True + The dual of the Schur cone is the "downward monotonic cone" + [GourionSeeger]_, whose elements' entries are in non-increasing + order:: + + sage: set_random_seed() + sage: n = ZZ.random_element(10) + sage: K = schur_cone(n).dual() + sage: x = K.random_element() + sage: all( x[i] >= x[i+1] for i in xrange(n-1) ) + True + TESTS: We get the trivial cone when ``n`` is zero::