Some functions, like convex-hull computation or graph visualization, are implemented in several fashions, using different algorithms, libraries, or visualization engines. The choice between the implementations can't always be made from the sole algorithmical complexity point of view; instead, you are allowed to establish own preferences, based on your subjective taste.

Let's recall that permanent preference settings can be made using the interactive prefer and reset_preference user commands, as well as by manual editing the user's private file ~/.polymake/prefer.pl. Temporary changes are made by calling prefer_now, they hold until the user script finishes, or the current input line in the interactive mode is interpreted completely.

## Visualization

javaview
Use JavaView - default tool for the visualization of 3- or 4-dimensional geometric objects.
You can also use it for graph visualization. The 3-d spring embedder starts with random node placement, so you have a chance to get various embeddings when trying it several times.
Associated functions:
javaview.geometry
method JavaView::Viewer::draw(Visual::Surface, @)
method JavaView::Viewer::draw(Visual::Polyhedron, @)
method JavaView::Viewer::draw(Visual::Polygon, @)
method JavaView::Viewer::draw(Visual::Polygons, @)
method JavaView::Viewer::draw(Visual::PointSet, @)
javaview.graph
method JavaView::Viewer::draw(Visual::Graph, @)
postscript
Create a PostScript (tm) drawing and show it with your favorite viewer.
Associated functions:
postscript.lattice
method Postscript::Viewer::draw(Visual::Lattice)
postscript.geometry
method Postscript::Viewer::draw(Visual::Polygon, @)
method Postscript::Viewer::draw(Visual::Polygons, @)
method Postscript::Viewer::draw(Visual::PointSet, @)
postscript.graph
method Postscript::Viewer::draw(Visual::Graph, @)
postscript.gale
method Postscript::Viewer::draw(Visual::Gale)
geomview
Use geomview - an alternative tool for the visualization of 3- or 4-dimensional geometrical objects.
Associated functions:
geomview.geometry
method Geomview::Viewer::draw(Visual::Polygons, @)
method Geomview::Viewer::draw(Visual::PointSet, @)
method Geomview::Viewer::draw(Visual::Polygon, @)
method Geomview::Viewer::draw(Visual::Polyhedron, @)
geomview.graph
method Geomview::Viewer::draw(Visual::Graph, @)
povray
Use POV-Ray for drawing.
Associated functions:
povray.geometry
method Povray::Viewer::draw(Visual::Polygon, @)
method Povray::Viewer::draw(Visual::Polyhedron, @)
method Povray::Viewer::draw(Visual::Polygons, @)
method Povray::Viewer::draw(Visual::Surface, @)
method Povray::Viewer::draw(Visual::PointSet, @)
povray.graph
method Povray::Viewer::draw(Visual::Graph, @)
splitstree
Use SplitsTree to show planar images of tight spans.
Associated functions:
splitstree.tight_span
method SplitsTree::Viewer::draw(Visual::FiniteMetricSpace)

## Convex hull computation

cdd
Use the double description method as implemented in cddlib. It is the default algorithm for computation of facets from points or dually. It operates with arbitrary precision arithmetic (GMP).
Associated functions:
cdd.simplex
rule of RationalPolytope: MINIMAL_VALUE, MINIMAL_VERTEX, FEASIBLE : LINEAR_OBJECTIVE, FACETS | INEQUALITIES
rule of FloatPolytope: MINIMAL_VALUE, MINIMAL_VERTEX, FEASIBLE : LINEAR_OBJECTIVE, FACETS | INEQUALITIES
rule of RationalPolytope: MAXIMAL_VALUE, MAXIMAL_VERTEX, FEASIBLE : LINEAR_OBJECTIVE, FACETS | INEQUALITIES
rule of FloatPolytope: MAXIMAL_VALUE, MAXIMAL_VERTEX, FEASIBLE : LINEAR_OBJECTIVE, FACETS | INEQUALITIES
cdd.convex_hull.primal
rule of FloatPolytope: FACETS, AFFINE_HULL : VERTICES | POINTS
rule of RationalPolytope: FACETS, AFFINE_HULL : VERTICES | POINTS
cdd.convex_hull.redund
rule of RationalPolytope: VERTEX_NORMALS : VERTICES
rule of RationalPolytope: VERTICES, VERTEX_NORMALS : POINTS
cdd.convex_hull.dual
rule of RationalPolytope: VERTICES, POINTED, FEASIBLE : FACETS | INEQUALITIES
rule of FloatPolytope: VERTICES, POINTED, FEASIBLE : FACETS | INEQUALITIES
lrs
Use the reverse search method, as implemented in lrslib.
Associated functions:
lrs.simplex
rule of RationalPolytope: MAXIMAL_VALUE, MAXIMAL_VERTEX, FEASIBLE : LINEAR_OBJECTIVE, FACETS | INEQUALITIES
rule of RationalPolytope: MINIMAL_VALUE, MINIMAL_VERTEX, FEASIBLE : LINEAR_OBJECTIVE, FACETS | INEQUALITIES
lrs.valid_point
rule of RationalPolytope: VALID_POINT, FEASIBLE : FACETS | INEQUALITIES
lrs.convex_hull.count
rule of RationalPolytope: N_BOUNDED_VERTICES, POINTED, FEASIBLE : FACETS | INEQUALITIES
rule of RationalPolytope: N_FACETS : VERTICES | POINTS
rule of RationalPolytope: N_VERTICES, N_BOUNDED_VERTICES, POINTED, FEASIBLE : FACETS | INEQUALITIES
lrs.convex_hull.primal
rule of RationalPolytope: FACETS, AFFINE_HULL : VERTICES | POINTS
lrs.convex_hull.redund
rule of RationalPolytope: VERTICES, AFFINE_HULL : POINTS
lrs.convex_hull.dual
rule of RationalPolytope: VERTICES, POINTED, FEASIBLE : FACETS | INEQUALITIES
beneath_beyond
Use the sequential (beneath-beyond) convex hull algorithm. It performs well at lower dimensions and produces a triangulation of the polytope as a byproduct. There is no dual (vertex enumeration) implementation of this algorithm.
Associated functions:
beneath_beyond.convex_hull.primal
rule of RationalPolytope: FACETS, VERTICES, AFFINE_HULL, VERTICES_IN_FACETS, DUAL_GRAPH, TRIANGULATION_INT : POINTS
rule of RationalPolytope: FACETS, AFFINE_HULL, VERTICES_IN_FACETS, DUAL_GRAPH, TRIANGULATION, ESSENTIALLY_GENERIC : VERTICES
porta
Run the porta program, implementing the Fourier-Motzkin elimination method. The essential drawback of this tool is that it employs a limited-precision arithmetic, and therefore can fail on numerically difficult problems.
Associated functions:
porta.convex_hull.primal
rule of RationalPolytope: FACETS, AFFINE_HULL : AMBIENT_DIM, DIM, VERTICES | POINTS
porta.convex_hull.dual
rule of RationalPolytope: VERTICES : AMBIENT_DIM, FACETS | INEQUALITIES, VALID_POINT
qhull
Use the qhull program for convex hull computation.
Associated functions:
qhull.convex_hull.primal
rule of FloatPolytope: FACETS, N_FACETS : AMBIENT_DIM, VERTICES | POINTS

## Triangulation and volume

vinci
Use the vinci program for volume computation.
Associated functions:
vinci.volume
rule of FloatPolytope: VOLUME : AMBIENT_DIM, VERTICES, FACETS, VERTICES_IN_FACETS
topcom
Use the TOPCOM package for computing polytope triangulation.
Associated functions:
topcom.triangulation
rule of Polytope: TRIANGULATION : CHIROTOPE
rule of Polytope: TRIANGULATION_INT : CHIROTOPE_INT

## Other labels

default
for algorithms shipped with polymake, as opposed to those imported from external software packages
Associated functions:
default.triangulation
rule of RationalPolytope: FACETS, VERTICES, AFFINE_HULL, VERTICES_IN_FACETS, DUAL_GRAPH, TRIANGULATION_INT : POINTS
rule of RationalPolytope: FACETS, AFFINE_HULL, VERTICES_IN_FACETS, DUAL_GRAPH, TRIANGULATION, ESSENTIALLY_GENERIC : VERTICES
default.volume
rule of RationalPolytope: VOLUME : POINTS, TRIANGULATION_INT
rule of RationalPolytope: VOLUME : VERTICES, TRIANGULATION