Skip to content

Conversation

@orlitzky
Copy link
Contributor

@orlitzky orlitzky commented Nov 13, 2025

This is a handy example of a self-dual (but not symmetric) polyhedral cone given in Self-dual cones in euclidean spaces by Barker & Foran. I mention it in Gaddum's test for symmetric cones, which is freely available.

I've called it the Barker-Foran cone for lack of a better name. The authors define another, related family of cones in the same paper... but the coordinates of their extreme rays aren't rational, so there is no immediate risk of them being added to sage and causing a name clash.

Among other things, "Self-Dual Cones in Euclidean Spaces" by Barker &
Foran gives an example of a rational, self-dual convex cone with five
extreme rays in three dimensions. This will soon be included in the
cone catalog.
Though it is a name I just made up, the newly minted Barker-Foran cone
is a polyhedral self-dual convex cone with five extreme rays in three
dimensions. Barker & Foran give it as an example in their paper, which
we cite.

It is a nice example because asymmetric self-dual cones are hard to
come by.
The extreme rays of the Barker-Foran cone look much nicer if we
manually align them, but this causes ruff to complain about the one
instance where two spaces appear before a negative sign. We add a
"noqa" comment to disable that check on that one line.
@github-actions
Copy link

Documentation preview for this PR (built with commit 8e2e443; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

( zero, one, one),
(-one, zero, one),
( zero, -one, one),
( one, -one, one)] # noqa: E221
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you add ignore of E221

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think

ext = [( one,   one,  one),
       ( zero,  one,  one),
       (-one,   zero, one),
       ( zero, -one,  one),
       ( one,  -one,  one)]

looks a lot better than

ext = [(one, one, one),
       (zero, one, one),
       (-one, zero, one),
       (zero, -one, one),
       (one, -one, one)]

but without the "noqa" the lint (ruff) will fail on mine.

I'll change it if it ruins anyone's day, but in this case I think the lint is just being counterproductive.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants