1 { lib, stdenv, fetchFromGitHub
2 , useCoefficients ? false
3 , indicateProgress ? false
4 , useGoogleHashmap ? false, sparsehash ? null
5 , fileFormat ? "lowerTriangularCsv"
10 assert assertOneOf "fileFormat" fileFormat
11 ["lowerTriangularCsv" "upperTriangularCsv" "dipha"];
12 assert useGoogleHashmap -> sparsehash != null;
15 inherit (lib) optional;
22 src = fetchFromGitHub {
26 sha256 = "sha256-BxmkPQ/nl5cF+xwQMTjXnLgkLgdmT/39y7Kzl2wDfpE=";
29 buildInputs = optional useGoogleHashmap sparsehash;
36 ++ optional useCoefficients "-D USE_COEFFICIENTS"
37 ++ optional indicateProgress "-D INDICATE_PROGRESS"
38 ++ optional useGoogleHashmap "-D USE_GOOGLE_HASHMAP"
39 ++ optional (fileFormat == "lowerTriangularCsv") "-D FILE_FORMAT_LOWER_TRIANGULAR_CSV"
40 ++ optional (fileFormat == "upperTriangularCsv") "-D FILE_FORMAT_UPPER_TRIANGULAR_CSV"
41 ++ optional (fileFormat == "dipha") "-D FILE_FORMAT_DIPHA"
44 buildPhase = "c++ ripser.cpp -o ripser $buildFlags";
52 description = "A lean C++ code for the computation of Vietoris–Rips persistence barcodes";
53 mainProgram = "ripser";
54 homepage = "https://github.com/Ripser/ripser";
55 license = lib.licenses.lgpl3;
56 maintainers = with lib.maintainers; [erikryb];
57 platforms = lib.platforms.linux;