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;