summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorTimo Kaufmann <timokau@zoho.com>2018-04-11 12:26:50 +0200
committerMatthew Justin Bauer <mjbauer95@gmail.com>2018-04-21 20:40:59 -0500
commitbe0b8f2cf697dec85e0e849aadca9e8d1bcab68d (patch)
treef634af152e4f7605c42d2a1dc8e3952c6ad9f732 /pkgs/applications
parent7dc6b2e3c35f916d431ba5c10e8f71e044de7f49 (diff)
downloadnixlib-be0b8f2cf697dec85e0e849aadca9e8d1bcab68d.tar
nixlib-be0b8f2cf697dec85e0e849aadca9e8d1bcab68d.tar.gz
nixlib-be0b8f2cf697dec85e0e849aadca9e8d1bcab68d.tar.bz2
nixlib-be0b8f2cf697dec85e0e849aadca9e8d1bcab68d.tar.lz
nixlib-be0b8f2cf697dec85e0e849aadca9e8d1bcab68d.tar.xz
nixlib-be0b8f2cf697dec85e0e849aadca9e8d1bcab68d.tar.zst
nixlib-be0b8f2cf697dec85e0e849aadca9e8d1bcab68d.zip
palp: init at 2.1
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/science/math/palp/default.nix67
1 files changed, 67 insertions, 0 deletions
diff --git a/pkgs/applications/science/math/palp/default.nix b/pkgs/applications/science/math/palp/default.nix
new file mode 100644
index 000000000000..3484c369db3b
--- /dev/null
+++ b/pkgs/applications/science/math/palp/default.nix
@@ -0,0 +1,67 @@
+{ 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)
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.1";
+  dim = toString dimensions;
+  name = "palp-${dim}d-${version}";
+
+  src = fetchurl {
+    url = "http://hep.itp.tuwien.ac.at/~kreuzer/CY/palp/palp-${version}.tar.gz";
+    sha256 = "1s7s2lc5f0ig1yy7ygsh3sddm3sbq4mxwybqsj8lp9wjdxs7qfrs";
+  };
+
+  hardeningDisable = [ "format" ];
+
+  preBuild = ''
+      echo Building PALP optimized for ${dim} dimensions
+      sed -i "s/^#define[^a-zA-Z]*POLY_Dmax.*/#define POLY_Dmax ${dim}/" Global.h
+  '';
+
+  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;
+    # 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.all;
+  };
+}