Table of Contents

polymake Workshop at UC Berkeley

This took place September 13, 2011, 13:00-18:00 (939 Evans Hall).

The event start out with a short introduction by Bernd Sturmfels to the mathematical problems listed on the Exercise sheet. This was followed by an introduction to polymake as outlined below. Afterwards attendees explored the system via solving exercises.

Introduction

simple computations with polytopes

$c=cube(3);
print $c->FACETS;
print $c->F_VECTOR;
$polar_of_c=polarize($c);
print $polar_of_c->F_VECTOR;
$polar_of_c->VISUAL;
product(n_gon(5),n_gon(7))->SCHLEGEL(FACET=>1);
$my_own_cube=new Polytope(POINTS=>[[1,-1,-1,-1],[1,-1,-1,1],[1,-1,1,-1],[1,-1,1,1],[1,1,-1,-1],[1,1,-1,1],[1,1,1,-1],[1,1,1,1]]);
print equal_polyhedra($c,$my_own_cube);

rule based computations

$p57=product(n_gon(5),n_gon(7));
print join(", ", $p57->list_properties);
$schedule=$p57->get_schedule("GRAPH.BIPARTITE");
print join("\n", $schedule->list);
$schedule->apply($p57);
print join(", ", $p57->list_properties);
print $p57->GRAPH->BIPARTITE;

getting help

help 'objects';
help 'objects/Polytope';
help 'VERTICES';
$t=typeof $p57;
print join(", ", sorted_uniq(sort { $a cmp $b } map { keys %{$_->properties} } $t, @{$t->super}));

long integer arithmetic

$f = new Integer(1);
for ($i = new Integer(100); $i>0; --$i) { $f *= $i; }
print $f;

other objects

application "topaz";
$rp2=projective_plane();
print $rp2->HOMOLOGY;
fan::normal_fan(load("snub-dodecahedron.poly"))->VISUAL;

Solutions to Selected Exercises

10. Smooth fan in R^3 with 10 rays

$c=cube(3);
$cc=new Polytope(INEQUALITIES=>($c->FACETS/(new Matrix<Rational>([[2,-1,-1,-1],[2,-1,1,1],[2,1,-1,1],[2,1,1,-1]]))));
print $cc->N_FACETS, ", ", $cc->SMOOTH;
$cc->VISUAL;
$f=fan::normal_fan($cc);
$f->VISUAL;