diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/science/math/palp/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/science/math/palp/default.nix | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/science/math/palp/default.nix b/nixpkgs/pkgs/applications/science/math/palp/default.nix new file mode 100644 index 000000000000..c383438002f4 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/math/palp/default.nix @@ -0,0 +1,90 @@ +{ stdenv +, fetchurl +, dimensions ? 6 # works for <= dimensions dimensions, but is only optimized for that exact value +, doSymlink ? true # symlink the executables to the default location (without dimension postfix) +}: + +let + dim = toString dimensions; +in +stdenv.mkDerivation rec { + pname = "palp"; + version = "2.11"; + + src = fetchurl { + url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz"; + sha256 = "00jpm73fw9jjq58z6rysr1mwv489j6rpfqqlhm9ab0dln4kyhh05"; + }; + + hardeningDisable = [ + "format" + ]; + + patchPhase = stdenv.lib.optionalString stdenv.isDarwin '' + substituteInPlace GNUmakefile --replace gcc cc + ''; + + preBuild = '' + echo Building PALP optimized for ${dim} dimensions + sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h + ''; + + # palp has no tests of its own. This test is an adapted sage test that failed + # when #28029 was merged. + doCheck = true; + checkPhase = '' + ./nef.x -f -N << EOF | grep -q 'np=' + 3 6 + 1 0 0 -1 0 0 + 0 1 0 0 -1 0 + 0 0 1 0 0 -1 + EOF + ''; + + installPhase = '' + mkdir -p "$out/bin" + for file in poly class cws nef mori; do + cp -p $file.x "$out/bin/$file-${dim}d.x" + done + '' + stdenv.lib.optionalString doSymlink '' + cd "$out/bin" + for file in poly class cws nef mori; do + ln -sf $file-6d.x $file.x + done + ''; + + meta = with stdenv.lib; { + description = "A Package for Analyzing Lattice Polytopes"; + longDescription = '' + A Package for Analyzing Lattice Polytopes (PALP) is a set of C + programs for calculations with lattice polytopes and applications to + toric geometry. + + It contains routines for vertex and facet enumeration, computation of + incidences and symmetries, as well as completion of the set of lattice + points in the convex hull of a given set of points. In addition, there + are procedures specialised to reflexive polytopes such as the + enumeration of reflexive subpolytopes, and applications to toric + geometry and string theory, like the computation of Hodge data and + fibration structures for toric Calabi-Yau varieties. The package is + well tested and optimised in speed as it was used for time consuming + tasks such as the classification of reflexive polyhedra in 4 + dimensions and the creation and manipulation of very large lists of + 5-dimensional polyhedra. + + While originally intended for low-dimensional applications, the + algorithms work in any dimension and our key routine for vertex and + facet enumeration compares well with existing packages. + ''; + homepage = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/CYpalp.html"; + # Not really a changelog, but a one-line summary of each update that should + # be reviewed on update. + changelog = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/CYpalp.html"; + # Just a link on the website pointing to gpl -- now gplv3. When the last + # version was released that pointed to gplv2 however, so thats probably + # the right license. + license = licenses.gpl2; + maintainers = with maintainers; [ timokau ]; + platforms = platforms.unix; + }; +} |