2 questions about pruning HyperplaneArrangement output

Questions and problems about using polymake go here.
bremner
Posts: 3
Joined: 28 May 2024, 19:50

2 questions about pruning HyperplaneArrangement output

Postby bremner » 24 Feb 2026, 03:36

I have 2 questions about symmetry (of different kinds) of rays computed via the HyperplaneArrangement objects. I may well be doing something wrong, I just started using application "fan".

I understand geometrically why each ray supporting line is reported as two rays, but in my application I only want one of these. I thought adding x_1 >= 0 to SUPPORT.INEQUALITIES would reduce duplicates, but in generalit introduces more new rays on the boundary of the support than it eliminates. In the following sample, you can try eliminating the last inequality. These rays are not on any of the input hyperplanes, so I'm not sure if reporting them is correct or not.I could imagine arguments for both conclusions. Is there a (simple) way to get what I want here, or should i just live with the 2x overhead?

Code: Select all

#!/usr/bin/polymake --script # -*- perl -*- use application "fan"; my $debug=1; my $HA=new HyperplaneArrangement(HYPERPLANES=> [[1, 0, 1, 1], [0, 1, 1, 1]], "SUPPORT.INEQUALITIES"=> [[1, 1, -1, 0], [0, 0, 1, -1], [-1, -1, 1, 0], [0, 0, -1, 1], [1,0,0,0]] ); print "rays:\n"; print rows_labeled($HA->CHAMBER_DECOMPOSITION->RAYS); print "\nrays in hyperplanes\n"; print rows_labeled($HA->RAYS_IN_HYPERPLANES);
My second question is whether there is some built-in support for computing rays up to symmetry. I can vaguely imagine manually building a zonotope and applying the existing machinery for polytopes, but before I work out those details I would like to know if it is needed.

lkastner
Developer
Posts: 14
Joined: 27 May 2012, 23:35

Re: 2 questions about pruning HyperplaneArrangement output

Postby lkastner » 22 Mar 2026, 20:15

When we implemented `HyperplaneArrangement`s, there was no need for group actions, so it is not attached. Fans have group actions in `apps/fan/rules/action.rules`, but unfortunately coming from a HyperplaneArrangement`, internally everything would have to be computed without group action in the beginning. As I am not an expert on `HyperplaneArrangement`s, I don't know whether there is an easier way to get what you want. The group actions for polytopes could be the best way to go, via the zonotope.


Return to “Helpdesk”