diff --git a/pkgs/applications/science/math/primecount/default.nix b/pkgs/applications/science/math/primecount/default.nix new file mode 100644 index 00000000000..993092c4653 --- /dev/null +++ b/pkgs/applications/science/math/primecount/default.nix @@ -0,0 +1,51 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +, primesieve +}: + +stdenv.mkDerivation rec { + pname = "primecount"; + version = "7.3"; + + src = fetchFromGitHub { + owner = "kimwalisch"; + repo = "primecount"; + rev = "v${version}"; + hash = "sha256-hxnn1uiGSB6XRC7yK+SXTwTsJfjhemWXsMNhhL7Ghek="; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ primesieve ]; + + cmakeFlags = [ + "-DBUILD_LIBPRIMESIEVE=ON" + "-DBUILD_PRIMECOUNT=ON" + "-DBUILD_SHARED_LIBS=ON" + "-DBUILD_STATIC_LIBS=OFF" + "-DBUILD_TESTS=ON" + ]; + + meta = with lib; { + homepage = "https://github.com/kimwalisch/primecount"; + description = "Fast prime counting function implementations"; + longDescription = '' + primecount is a command-line program and C/C++ library that counts the + primes below an integer x ≤ 10^31 using highly optimized implementations + of the combinatorial prime counting algorithms. + + primecount includes implementations of all important combinatorial prime + counting algorithms known up to this date all of which have been + parallelized using OpenMP. primecount contains the first ever open source + implementations of the Deleglise-Rivat algorithm and Xavier Gourdon's + algorithm (that works). primecount also features a novel load balancer + that is shared amongst all implementations and that scales up to hundreds + of CPU cores. primecount has already been used to compute several prime + counting function world records. + ''; + license = licenses.bsd2; + inherit (primesieve.meta) maintainers platforms; + }; +} diff --git a/pkgs/applications/science/math/primesieve/default.nix b/pkgs/applications/science/math/primesieve/default.nix new file mode 100644 index 00000000000..c57e2d71f1e --- /dev/null +++ b/pkgs/applications/science/math/primesieve/default.nix @@ -0,0 +1,36 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +}: + +stdenv.mkDerivation rec { + pname = "primesieve"; + version = "7.9"; + + src = fetchFromGitHub { + owner = "kimwalisch"; + repo = "primesieve"; + rev = "v${version}"; + hash = "sha256-lwT+adKFoNI125y5FuJMovtMh8sFi9oqMLYGLabzrCI="; + }; + + nativeBuildInputs = [ cmake ]; + + meta = with lib; { + homepage = "https://primesieve.org/"; + description = "Fast C/C++ prime number generator"; + longDescription = '' + primesieve is a command-line program and C/C++ library for quickly + generating prime numbers. It is very cache efficient, it detects your + CPU's L1 & L2 cache sizes and allocates its main data structures + accordingly. It is also multi-threaded by default, it uses all available + CPU cores whenever possible i.e. if sequential ordering is not + required. primesieve can generate primes and prime k-tuplets up to 264. + ''; + license = licenses.bsd2; + maintainers = teams.sage.members ++ + (with maintainers; [ abbradar AndersonTorres ]); + platforms = platforms.unix; + }; +} diff --git a/pkgs/development/libraries/science/math/primecount/default.nix b/pkgs/development/libraries/science/math/primecount/default.nix deleted file mode 100644 index e1390ce6416..00000000000 --- a/pkgs/development/libraries/science/math/primecount/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake, primesieve }: - -stdenv.mkDerivation rec { - pname = "primecount"; - version = "7.2"; - - nativeBuildInputs = [ cmake ]; - - buildInputs = [ primesieve ]; - - src = fetchFromGitHub { - owner = "kimwalisch"; - repo = "primecount"; - rev = "v${version}"; - sha256 = "sha256-/Cb/HkD4UQ9gXsRpvRiEuQBoRd0THxNHsBaAAa+CqQo="; - }; - - cmakeFlags = [ - "-DBUILD_STATIC_LIBS=OFF" - "-DBUILD_SHARED_LIBS=ON" - "-DBUILD_TESTS=ON" - "-DBUILD_PRIMECOUNT=ON" - "-DBUILD_LIBPRIMESIEVE=ON" - ]; - - meta = with lib; { - description = "Fast prime counting function implementations"; - homepage = "https://github.com/kimwalisch/primecount"; - license = licenses.bsd2; - platforms = platforms.unix; - maintainers = teams.sage.members; - }; -} diff --git a/pkgs/development/libraries/science/math/primesieve/default.nix b/pkgs/development/libraries/science/math/primesieve/default.nix deleted file mode 100644 index 0cf263218a3..00000000000 --- a/pkgs/development/libraries/science/math/primesieve/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ lib, stdenv, fetchFromGitHub, cmake }: - -stdenv.mkDerivation rec { - pname = "primesieve"; - version = "7.8"; - - nativeBuildInputs = [ cmake ]; - - src = fetchFromGitHub { - owner = "kimwalisch"; - repo = "primesieve"; - rev = "v${version}"; - sha256 = "sha256-M35CP/xEyC7mEh84kaGsgfsDI9fnanHraNPgTvpqimI="; - }; - - meta = with lib; { - description = "Fast C/C++ prime number generator"; - homepage = "https://primesieve.org/"; - license = licenses.bsd2; - platforms = platforms.unix; - maintainers = with maintainers; [ abbradar ]; - }; -} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 95e5bec551a..5909237b90c 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20116,9 +20116,9 @@ with pkgs; prime-server = callPackage ../development/libraries/prime-server { }; - primecount = callPackage ../development/libraries/science/math/primecount { }; + primecount = callPackage ../applications/science/math/primecount { }; - primesieve = callPackage ../development/libraries/science/math/primesieve { }; + primesieve = callPackage ../applications/science/math/primesieve { }; prison = callPackage ../development/libraries/prison { };