Merge pull request #172796 from AndersonTorres/MISC

primesieve, primecount: updates
This commit is contained in:
Anderson Torres 2022-05-14 14:03:46 -03:00 committed by GitHub
commit 4cebbee703
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 89 additions and 58 deletions

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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;
};
}

View File

@ -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 ];
};
}

View File

@ -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 { };