external_software

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
external_software [2018/01/31 11:59] – libnormaliz also possible with installed version benmuellexternal_software [2019/01/26 11:02] – ↷ Links adapted because of a move operation oroehrig
Line 1: Line 1:
 ====== External Software Overview ====== ====== External Software Overview ======
  
-By far not every feature of ''polymake'' system is developed by the ''polymake'' project team itself. Instead, we purposely rely on the expertise of various research groups in the community. It is one of the main goals of our project to increase the interoperability of all the fascinating publicly available geometric software. And last but not least, having quite constrained man-power and time resources, it is obviously much easier to interface a well-tested, ready-to-use software package than to implement everything from scratch.+By far not every feature of ''polymake'' system is developed by the ''polymake'' project team itself. Instead, we purposely rely on the expertise of various research groups in the community. It is one of the main goals of our project to increase the interoperability of all the fascinating publicly available geometric software. And last but not least, having quite constrained woman-power and time resources, it is obviously much easier to interface a well-tested, ready-to-use software package than to implement everything from scratch.
  
 The external software used in ''polymake'' can be divided in three categories: The external software used in ''polymake'' can be divided in three categories:
Line 15: Line 15:
 ===== Bundled extensions for polymake ===== ===== Bundled extensions for polymake =====
  
-The following are polymake extensions that are included in the main package and provide interfaces to important external software. Some are only bare interfaces, but others already include the corresponding library code.+The following are polymake extensions that are included in the main package and provide interfaces to important external software. Some include the source code of the librarys they interface, others come as bare interfaces to software that you have to install seperately.
  
-** Note: ** The ''-minimal'' archive of polymake excludes the bundled code but still has the interfaces for cdd, libnormaliz, lrs and nauty. Furthermore, the bundled extensions for jreality is removed.+** Note: ** The ''-minimal'' archive of polymake excludes the bundled code but still has the interfaces for cdd, libnormaliz, lrs and nauty. Furthermore, the bundled extension for jreality is removed.
  
-=== Including the library ===+=== Shipped with polymake ===
  
-Due to license agreements and/or kind allowance of the authors, these libraries are packed together with the polymake distribution. You don't have to download and install them separately. We are keeping track of their further development and always include the most recent versions available at the moment of making the current polymake release.+These libraries are packed together with the polymake distribution, thanks to license agreements and/or kind allowance of the authors. You don't have to download and install them separately. We are keeping track of their further development and always include the most recent versions available at the moment of making the current polymake release.
  
   ** <BOOKMARK:cddlib>''cdd'': Convex hull computations\\ Provides an interface to [[http://www.inf.ethz.ch/personal/fukudak/cdd_home/index.html|cddlib]] (by [[http://www.inf.ethz.ch/personal/fukudak/|Komei Fukuda]], Institute for Operations Research, ETH Zürich).\\ **Note:** This interface can also work with an installed version instead of the bundled code.   ** <BOOKMARK:cddlib>''cdd'': Convex hull computations\\ Provides an interface to [[http://www.inf.ethz.ch/personal/fukudak/cdd_home/index.html|cddlib]] (by [[http://www.inf.ethz.ch/personal/fukudak/|Komei Fukuda]], Institute for Operations Research, ETH Zürich).\\ **Note:** This interface can also work with an installed version instead of the bundled code.
Line 36: Line 36:
  
 === Bare interfaces === === Bare interfaces ===
 +
 +polymake provides interfaces to the software listed here, but does not ship the software itself. You have to install it yourself and configure polymake to use your installation. See the [[install:install#configuration|instructions on configuration]] for help with this.
  
   ** ''bliss'': Computing of automorphism groups of graphs\\ Provides an interface to [[http://www.tcs.hut.fi/Software/bliss/|bliss]] (by [[http://users.ics.aalto.fi/tjunttil/|Tommi Junttila]] and [[http://users.ics.aalto.fi/pkaski/|Petteri Kaski]]).\\ Requires headers to be installed in a subfolder ''bliss'' in the include directory, as in the debian package.\\ Alternative: nauty   ** ''bliss'': Computing of automorphism groups of graphs\\ Provides an interface to [[http://www.tcs.hut.fi/Software/bliss/|bliss]] (by [[http://users.ics.aalto.fi/tjunttil/|Tommi Junttila]] and [[http://users.ics.aalto.fi/pkaski/|Petteri Kaski]]).\\ Requires headers to be installed in a subfolder ''bliss'' in the include directory, as in the debian package.\\ Alternative: nauty
   ** ''ppl'': a modern C++ library for the manipulation of numerical information that can be represented by points in some n-dimensional vector space\\ Provides an interface to the [[http://bugseng.com/products/ppl|Parma Polyhedra Library]] (by [[http://www.cs.unipr.it/~bagnara/|Roberto Bagnara]] et al)   ** ''ppl'': a modern C++ library for the manipulation of numerical information that can be represented by points in some n-dimensional vector space\\ Provides an interface to the [[http://bugseng.com/products/ppl|Parma Polyhedra Library]] (by [[http://www.cs.unipr.it/~bagnara/|Roberto Bagnara]] et al)
-  ** ''singular'': Working with Gröbner bases\\ Provides an interface to [[http://www.singular.uni-kl.de/|Singular]] (by [[http://www.mathematik.uni-kl.de/~decker/de/index.html|Wolfram Decker]], [[http://www.mathematik.uni-kl.de/~greuel/en/|Gert-Martin Greuel]], [[http://www.mathematik.uni-kl.de/~pfister/en/|Gerhard Pfister]], and [[http://www.mathematik.uni-kl.de/~hannes/en/|Hans Schönemann]]).\\ Please check the [[howto::installsingular|installation details]] for the bundled extension ''singular''.+  ** ''singular'': Working with Gröbner bases\\ Provides an interface to [[http://www.singular.uni-kl.de/|Singular]] (by [[http://www.mathematik.uni-kl.de/~decker/de/index.html|Wolfram Decker]], [[http://www.mathematik.uni-kl.de/~greuel/en/|Gert-Martin Greuel]], [[http://www.mathematik.uni-kl.de/~pfister/en/|Gerhard Pfister]], and [[http://www.mathematik.uni-kl.de/~hannes/en/|Hans Schönemann]]).\\ Please check the [[install:installsingular|installation details]] for the bundled extension ''singular''.
   ** ''soplex'': SoPlex is an optimization package for solving linear programming problems (LPs) based on an advanced implementation of the primal and dual revised simplex algorithm. \\ Provides an interface to [[http://soplex.zib.de/|SoPlex]] (by Roland Wunderling, [[http://www.zib.de/members/gleixner|Ambros Gleixner]], [[http://www.zib.de/members/miltenberger|Matthias Miltenberger]], [[http://www.zib.de/members/benjamin.mueller|Benjamin Müller]] and others).\\ Please build SoPlex with ''GMP=true'' and ''SHARED=true''.   ** ''soplex'': SoPlex is an optimization package for solving linear programming problems (LPs) based on an advanced implementation of the primal and dual revised simplex algorithm. \\ Provides an interface to [[http://soplex.zib.de/|SoPlex]] (by Roland Wunderling, [[http://www.zib.de/members/gleixner|Ambros Gleixner]], [[http://www.zib.de/members/miltenberger|Matthias Miltenberger]], [[http://www.zib.de/members/benjamin.mueller|Benjamin Müller]] and others).\\ Please build SoPlex with ''GMP=true'' and ''SHARED=true''.
   ** <BOOKMARK:JavaView>''javaview'': Provides an interface to [[http://www.javaview.de/|JavaView]] (by [[http://page.mi.fu-berlin.de/polthier/|Konrad Polthier]], Felix Kälberer, Samy Khadem, Eike Preuss, Ulrich Reitebuch, Sonderforschungsbereich 288, TU Berlin).   ** <BOOKMARK:JavaView>''javaview'': Provides an interface to [[http://www.javaview.de/|JavaView]] (by [[http://page.mi.fu-berlin.de/polthier/|Konrad Polthier]], Felix Kälberer, Samy Khadem, Eike Preuss, Ulrich Reitebuch, Sonderforschungsbereich 288, TU Berlin).
Line 46: Line 48:
 ===== Other interfaces to external software ===== ===== Other interfaces to external software =====
  
-The following can be enabled or disabled in a running polymake session with ''reconfigure "something.rules";''Check the output of ''show_unconfigured;'' for more help.+In order to use the following software from within polymake, you need download and install the packages on your own, provided you accept the license agreements. Don't merge them into the ''polymake'' directory tree, as they might get overwritten by the next polymake upgrade. 
 + 
 +They can then be enabled or disabled in a running polymake session with ''reconfigure "something.rules";''The auto-configuration routines try to find the installed software (usually by examining your ''PATH'' variable). See [[install:interface_config|here]] for help.
  
 ==== Visualization ==== ==== Visualization ====
  
-See also above for the interfaces to jReality and JavaView.+We provide bundeled extensions for jReality and JavaView, see the above sectionOther interfaces to visualization software:
  
   ** <BOOKMARK:threejs>[[http://threejs.org|three.js]]\\ by Ricardo Cabello.   ** <BOOKMARK:threejs>[[http://threejs.org|three.js]]\\ by Ricardo Cabello.
Line 63: Line 67:
   .. Visualizes graphs and face lattices.   .. Visualizes graphs and face lattices.
  
-==== Useful additional software ====+==== Further Interfaces ====
  
   ** <BOOKMARK:TOPCOM>[[http://www.rambau.wm.uni-bayreuth.de/TOPCOM/|TOPCOM]] (version 0.16.0)\\ by [[http://www.rambau.wm.uni-bayreuth.de/|Jörg Rambau]], Universität Bayreuth.   ** <BOOKMARK:TOPCOM>[[http://www.rambau.wm.uni-bayreuth.de/TOPCOM/|TOPCOM]] (version 0.16.0)\\ by [[http://www.rambau.wm.uni-bayreuth.de/|Jörg Rambau]], Universität Bayreuth.
Line 73: Line 77:
   ** [[http://www.math.ucdavis.edu/~mkoeppe/latte/|LattE macchiato]]\\ by [[http://www.math.ucdavis.edu/~mkoeppe|Matthias Köppe]].   ** [[http://www.math.ucdavis.edu/~mkoeppe/latte/|LattE macchiato]]\\ by [[http://www.math.ucdavis.edu/~mkoeppe|Matthias Köppe]].
   .. LattE macchiato is an improved version of LattE, derived from the latest release 1.2. For full functionality either choose the version "LattE, for tea, too", that also installs 4ti2 and other required packages or first install [[http://www.rambau.wm.uni-bayreuth.de/TOPCOM/|TOPCOM]], [[http://www.shoup.net/ntl/|NTL]], LiDia, and [[http://www.4ti2.de/|4ti2]].    .. LattE macchiato is an improved version of LattE, derived from the latest release 1.2. For full functionality either choose the version "LattE, for tea, too", that also installs 4ti2 and other required packages or first install [[http://www.rambau.wm.uni-bayreuth.de/TOPCOM/|TOPCOM]], [[http://www.shoup.net/ntl/|NTL]], LiDia, and [[http://www.4ti2.de/|4ti2]]. 
-  ** [[http://www.mathematik.uni-osnabrueck.de/normaliz/index.html|Normaliz]] \\ by [[http://www.mathematik.uni-osnabrueck.de/index.php?controller=studip&action=data&id=person_detail&username=wbruns|Winfried Bruns]], Bogdan Ichim and Christof Söger. 
   .. Normaliz is a (command line) tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones. Since version 2.8 it comes with a very fast parallelized algorithm for lattice point enumeration.   .. Normaliz is a (command line) tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones. Since version 2.8 it comes with a very fast parallelized algorithm for lattice point enumeration.
   ** [[http://www.kotnet.org/~skimo/barvinok/|barvinok]]\\ by Sven Verdoolaege.   ** [[http://www.kotnet.org/~skimo/barvinok/|barvinok]]\\ by Sven Verdoolaege.
Line 88: Line 91:
   ** [[http://hamilton.nuigalway.ie/Hap/www/index.html|HAP]] (version 1.3)\\ by [[http://hamilton.nuigalway.ie/|Graham Ellis]].   ** [[http://hamilton.nuigalway.ie/Hap/www/index.html|HAP]] (version 1.3)\\ by [[http://hamilton.nuigalway.ie/|Graham Ellis]].
   .. HAP is a homological algebra library for use with the GAP computer algebra system, and is still under development. Its initial focus is on computations related to the cohomology of groups. Both finite and infinite groups are handled, with main emphasis on integer coefficients. For polyhedral computations, HAP interfaces to polymake.   .. HAP is a homological algebra library for use with the GAP computer algebra system, and is still under development. Its initial focus is on computations related to the cohomology of groups. Both finite and infinite groups are handled, with main emphasis on integer coefficients. For polyhedral computations, HAP interfaces to polymake.
-  ** [[http://wwwb.math.rwth-aachen.de/~gutsche/gap_packages/PolymakeInterface/|polymake interface in GAP]]\\ by Thomas Bächler and [[http://wwwb.math.rwth-aachen.de/~gutsche|Sebastian Gutsche]], see [[interfaces]] for more details. 
-  ** [[http://www.singular.uni-kl.de/svn/trunk/callpolymake/polymake_documentation.cc|polymake interface in Singular]]\\ by [[http://www.mathematik.uni-kl.de/~boehm/|Janko Böhm]] and Yu Ren, see [[interfaces]] for more details. 
   ** <BOOKMARK:azove>[[http://www.mpi-inf.mpg.de/~behle/azove.html|azove]] (version 2.0)\\ by [[http://www.mpi-inf.mpg.de/~behle/index.html|Markus Behle]].\\ [[:download:start#other_software_downloads|Linux RPM available]]   ** <BOOKMARK:azove>[[http://www.mpi-inf.mpg.de/~behle/azove.html|azove]] (version 2.0)\\ by [[http://www.mpi-inf.mpg.de/~behle/index.html|Markus Behle]].\\ [[:download:start#other_software_downloads|Linux RPM available]]
   .. azove is a tool designed for counting (without explicit enumeration) and enumeration of 0/1 vertices. Given a polytope by a linear relaxation or facet description P = {x | Ax <= b}, all 0/1 points lying in P can be counted or enumerated. This is done by intersecting the polytope P with the unit-hypercube [0,1]d. The integral vertices (no fractional ones) of this intersection will be enumerated. If P is a 0/1 polytope, azove solves the vertex enumeration problem.   .. azove is a tool designed for counting (without explicit enumeration) and enumeration of 0/1 vertices. Given a polytope by a linear relaxation or facet description P = {x | Ax <= b}, all 0/1 points lying in P can be counted or enumerated. This is done by intersecting the polytope P with the unit-hypercube [0,1]d. The integral vertices (no fractional ones) of this intersection will be enumerated. If P is a 0/1 polytope, azove solves the vertex enumeration problem.
   .. //Note:// azove2 might not run on systems with a low percentage of free memory (change LEFTOVER_FREE_MEMORY in azove.cpp) and also under linux kernel ≥3.14 due to [[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773|changes]] in ''/proc/meminfo''. This {{:azove-mem.diff|patch}} removes the dynamic memory allocation, forces a fixed number of signature nodes and thus works around the problems on recent kernel versions.   .. //Note:// azove2 might not run on systems with a low percentage of free memory (change LEFTOVER_FREE_MEMORY in azove.cpp) and also under linux kernel ≥3.14 due to [[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773|changes]] in ''/proc/meminfo''. This {{:azove-mem.diff|patch}} removes the dynamic memory allocation, forces a fixed number of signature nodes and thus works around the problems on recent kernel versions.
- 
-==== Topology ==== 
- 
   ** [[http://www.cis.udel.edu/~dumas/Homology/|homology]]\\ by Frank Heckenbach and his co-authors.   ** [[http://www.cis.udel.edu/~dumas/Homology/|homology]]\\ by Frank Heckenbach and his co-authors.
   .. An efficient program computing homology groups of simplicial complexes.   .. An efficient program computing homology groups of simplicial complexes.
-  ** <BOOKMARK:GAP>[[http://www-gap.dcs.st-and.ac.uk/~gap/|GAP]] 
-  .. The famous group-theoretical software package. Can be used to analyze the fundamental group of a simplicial complex. 
- 
-You should download and install these packages on your own, provided you accept the license agreements. Don't merge them into the ''polymake'' directory tree, as they might get overwritten by the next polymake upgrade. 
- 
-For your convenience, the interface components for external software are kept in separate rulefiles. The auto-configuration routines defined there try to find the installed software (usually by examining your ''PATH'' variable). In the case of a failure, the rulefile gets disabled until you install the lacking software package and [[general#configuration|repeat the configuration]]. 
- 
-At any rate, we strongly recommend you to install some visualization software (preferably JavaView), as polymake were much more boring without all these colorful pictures. 
  
 Note: Version numbers given in the descriptions are not binding. These are the latest versions that we are aware of and proven to work with polymake. You are free to use other versions as long as the backward compatibility (API and/or interchange file format, whatever appropriate) is preserved. Note: Version numbers given in the descriptions are not binding. These are the latest versions that we are aware of and proven to work with polymake. You are free to use other versions as long as the backward compatibility (API and/or interchange file format, whatever appropriate) is preserved.
  • external_software.txt
  • Last modified: 2022/08/29 15:07
  • by yuruk