Hi!
I have a question concerning the common refinement function provided by your patch. I would like to intersect a fan with a linear space.
Is this possible right now with polymake?
First of all i tried to realize the linear space as a fan consisting of a lineality space (via "INPUT_LINEALITY=>$A" and "LINEALITY_SPACE=>$A", $A the matrix containing the basis). It seems to me that polymake is not happy with the input. Whenever i try to compute the common refinement polymake says:
"WARNING: available properties insufficient to compute 'LINEALITY_SPACE'
ERROR: unexpected undefined value of an input property at input line 1."
Simon Hampes extension atint contains a function called "linear_space_by_matrix". Using that function i get a result. Nevertheless polymake says:
"....
$F = fan::common_refinement($L,$BFM);
polymake: WARNING: could not compute 'FACETS | INEQUALITIES' probably because of unsatisfied preconditions:
precondition : N_RAYS ( FACETS, LINEAR_SPAN : RAYS, LINEALITY_SPACE, RAYS_IN_FACETS )
precondition : N_RAYS ( beneath_beyond.convex_hull.primal, default.triangulation: FACETS, LINEAR_SPAN, RAYS_IN_FACETS, DUAL_GRAPH.ADJACENCY, TRIANGULATION, ESSENTIALLY_GENERIC : RAYS )
precondition : N_RAYS | N_INPUT_RAYS ( lrs.convex_hull.primal: FACETS, LINEAR_SPAN : RAYS | INPUT_RAYS )
precondition : N_RAYS | N_INPUT_RAYS ( cdd.convex_hull.primal: FACETS, LINEAR_SPAN : RAYS | INPUT_RAYS )"
Here $L is a fan with an empty cone and a lineality space ($A) (created via "linear_space_by_matrix"), $BFM is a Bergman fan created via Simon Hampes function "bergman_fan_matroid".
Since polymake calls it "WARNING: ... " the output is correct?
Do you have any advice for me?
I wrote a mini example but the site says "the extension is not allowed". So, let me post it here
Code: Select all
use application "common";
use vars '$M','$Bases','$n','$A','$BFM','$LS','$F';
$Bases = new Array<Set<Int>>([[0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,9],[0,1,2,3,4,5,7,8],[0,1,2,3,4,5,8,9],[0,1,2,3,4,6,7,9],[0,1,2,3,4,7,8,9],[0,1,2,3,5,6,7,8],[0,1,2,3,5,6,8,9],[0,1,2,3,6,7,8,9],[0,1,2,4,5,6,7,10],[0,1,2,4,5,6,9,10],[0,1,2,4,5,7,8,10],[0,1,2,4,5,8,9,10],[0,1,2,4,6,7,9,10],[0,1,2,4,7,8,9,10],[0,1,2,5,6,7,8,10],[0,1,2,5,6,8,9,10],[0,1,2,6,7,8,9,10],[0,1,3,4,5,6,7,8],[0,1,3,4,5,6,8,9],[0,1,3,4,6,7,8,9],[0,1,4,5,6,7,8,10],[0,1,4,5,6,8,9,10],[0,1,4,6,7,8,9,10],[0,2,3,4,5,6,7,10],[0,2,3,4,5,6,9,10],[0,2,3,4,5,7,8,10],[0,2,3,4,5,8,9,10],[0,2,3,4,6,7,9,10],[0,2,3,4,7,8,9,10],[0,2,3,5,6,7,8,10],[0,2,3,5,6,8,9,10],[0,2,3,6,7,8,9,10],[0,3,4,5,6,7,8,10],[0,3,4,5,6,8,9,10],[0,3,4,6,7,8,9,10],[1,2,3,4,5,6,7,9],[1,2,3,4,5,7,8,9],[1,2,3,5,6,7,8,9],[1,2,4,5,6,7,9,10],[1,2,4,5,7,8,9,10],[1,2,5,6,7,8,9,10],[1,3,4,5,6,7,8,9],[1,4,5,6,7,8,9,10],[2,3,4,5,6,7,9,10],[2,3,4,5,7,8,9,10],[2,3,5,6,7,8,9,10],[3,4,5,6,7,8,9,10]]);
$n = 11;
$A = new Matrix<Rational>([[3,2,2,1,1,1,0,0,0,0,0],[0,0,0,1,0,0,1,0,0,0,0],[0,1,0,1,2,1,1,3,1,0,0],[0,0,1,1,0,1,1,0,2,3,0]]);
$M = new matroid::Matroid(BASES=>$Bases,N_ELEMENTS=>$n);
use application "atint";
$BFM = bergman_fan_matroid($M);
$LS = linear_space_by_matrix($A);
$F = fan::common_refinement($BFM,$LS);
Best regards,
Christian