Remarks on technical problems and the implementation

Making the HeLP-package run For all basic functionalities of the HeLP-package (using only the solver normaliz) the standard GAP-installation should suffice to make everything work: Get the most recent GAP from the http://www.gap-system.org/ by following the instructions on the Download-page. Make sure to also run InstPackages.sh as explained there. This should install all packages needed to run HeLP. Just start GAP and type LoadPackage("HeLP");. In GAP 4.8.2 the NormalizInterface has to be updated to version 0.9.6 or newer which can be obtained from the http://gap-packages.github.io/NormalizInterface// of the package. For GAP 4.8.3 or newer this should not be necessary anymore.

Here is a checklist what to do, if the package does not work or you also want to use the solver 4ti2: Make sure you have sufficiently new versions of the following software: http://www.gap-system.org/ (at least 4.8.2) the GAP-package http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib/ (at least 1.2.2) the GAP-package http://gap-packages.github.io/io/ (at least 4.2; see also the next bullet point if this package can not be loaded) the GAP-package http://wwwb.math.rwth-aachen.de/~gutsche/gap_packages/4ti2Interface/ (at least 2015.04.29; this package needs the IO-package)

the GAP-package http://gap-packages.github.io/NormalizInterface// (at least 0.9.6)

Usually all these packages should come with a sufficiently recent GAP-installation (4.8.2 or newer) and should be contained in the pkg-folder of the GAP-installation. To see if they are working you can load them by typing LoadPackage("[name]"); after starting GAP, where [name] is the name of the package. The IO-package needs a C-part to be compiled. To see if this has already been done on your system, you can enter LoadPackage("IO"); after starting GAP. If the result is fail and the package is contained in the pkg-folder, than most likely the C-part is not yet compiled. For information on installation and in particular on how to compile the C-part, see the http://gap-packages.github.io/io/doc/chap0.html (in particular Chapter 2) or the README-file of that package.

The installation of normaliz is possible via the GAP-package http://gap-packages.github.io/NormalizInterface// (at least 0.9.6). Just access the folder in a terminal and do ./build-normaliz.sh; ./configure; make. If you want to use 4ti2, please make sure that http://www.4ti2.de (Version 1.6.5 or newer) is properly installed. In case of an error-message "The executable 'zsolve' provided by the software 4ti2 was not found." after typing LoadPackage("HeLP"); either the software is not properly installed or installed in a directory where GAP can not find it, i.e. a directory not contained in the path-variable. The content of this variable can typically be displayed by typing echo $PATH (Linux, Mac) echo %PATH% (Windows) in a terminal or a command prompt. The manual of 4ti2 contains several pages of information on how to install the program. Note that the installation of 4ti2 requires gcc (g++) and gmp installed (which come with many Linux installations or can be installed using a package manager). Make sure to execute all four commands indicated in the 4ti2 manual (possibly without the --prefix=-part):

./configure --prefix=INSTALLATION-DIRECTORY

make

make check

make install-exec

Depending on the settings of your system you might need root privileges (type sudo in front of every command) to unpack the files and install them. To check whether the installation worked, you can enter zsolve in a terminal. In case one of the required programs (g++ or gmp) was not installed when running make for the first time, you might need to run make clean and the above commands afterwards again (several times) to compile 4ti2 successfully. If you already have 4ti2 installed in a directory not contained in the path-variable and want to avoid a re-installation, in many cases the following helps: Start a terminal and access a path written in your bash or system_bash. Typically usr/local/bin should work.

Run ln -s /[PathToZsolve] zsolve, where [PathToZsolve] is the path to the executable zsolve. This sets a symlink to the right place. E.g. ln -s /opt/4ti2/bin/zsolve zsolve was used on the (Linux) computers in Stuttgart. In case you use 4ti2, we also recommend to install http://cgm.cs.mcgill.ca/~avis/C/lrs.html, at least version 4.3 (note that version 4.2 or older sometimes produces unwanted behavior). This software provides the 'redund' command, which can be switched on and off within HeLP, but which often leads to better performances (cf. ). For installation see the User's Guide or the Readme-file on the above mentioned homepage. Usually, after unpacking in a directory contained in the path-variable it should be enough to call

make all

(possibly as root) inside the lrslib-directory. If this does not help to get HeLP running, please feel more than welcome to contact one of the maintainers of the package.

How much 4ti2 and normaliz is really there? The reason, why the programs 4ti2 and normaliz are used in this package, is basically that they can solve systems of linear inequalities efficiently and there exist good GAP-Interfaces for them. However there is only one line of code where a function is called which accesses 4ti2 and a few more for normaliz. Thus the effort of using another solver of inequalities would be not so big, if there is a GAP-Interface for it. If you are aware of such a solver and would like to use it in this package, please contact the authors of this package. We will be happy to help.