Skip to content

Commit 7cd50a7

Browse files
committed
remove IsPrimeIntensive and replace it with IsPrimeTable (and is_prime_intensive() for > 32 bit tests). Also add is_prime_ultimate()
1 parent 00e1fe5 commit 7cd50a7

21 files changed

+496
-612
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ target_sources(hurchalla_factoring INTERFACE
7474
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/resource_intensive_api/FactorByTable32.h>
7575
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/resource_intensive_api/factorize_intensive_uint32.h>
7676
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/resource_intensive_api/is_prime_intensive.h>
77-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/resource_intensive_api/IsPrimeIntensive.h>
77+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/resource_intensive_api/IsPrimeTable.h>
78+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/resource_intensive_api/is_prime_ultimate.h>
7879
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/DualMontgomeryForm.h>
7980
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/FactorizeStage2.h>
8081
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/factorize_trialdivision.h>
@@ -84,7 +85,6 @@ target_sources(hurchalla_factoring INTERFACE
8485
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/impl_is_prime.h>
8586
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/impl_is_prime_intensive.h>
8687
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/ImplFactorByTable32.h>
87-
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/ImplIsPrimeIntensive.h>
8888
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/is_prime_bruteforce.h>
8989
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/is_prime_miller_rabin.h>
9090
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/hurchalla/factoring/detail/is_prime_trialdivision.h>

include/hurchalla/factoring/detail/ImplIsPrimeIntensive.h

Lines changed: 0 additions & 258 deletions
This file was deleted.

include/hurchalla/factoring/detail/IsPrimeFactor.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ typename std::enable_if<
4141
(ut_numeric_limits<typename MontType::IntegerType>::digits==128), bool>::type
4242
operator()(const MontType& mf) const
4343
{
44-
return is_prime_miller_rabin::call(mf);
44+
return is_prime_miller_rabin::call_mont(mf);
4545
}
4646

4747

include/hurchalla/factoring/detail/impl_is_prime.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ namespace hurchalla { namespace detail {
3030
// if you want, by simply substituting that name for PrimeTrialDivisionMayer in
3131
// the template function call below and including its header file.
3232
// Note that this impl_is_prime() function (and the associated is_prime) is
33-
// intended to be relatively lightweight, while in contrast IsPrimeIntensive is
34-
// intended to be a more heavyweight option for repeated intensive primality
35-
// testing. That is why this function uses the lightweight functor
36-
// PrimeTrialDivisionMayer.
33+
// intended to be relatively lightweight, while in contrast is_prime_intensive()
34+
// and IsPrimeTable are intended to be more heavyweight options for repeated
35+
// intensive primality testing. That is why this function uses the lightweight
36+
// functor PrimeTrialDivisionMayer.
3737

3838
// FYI, size 54 would trial all prime factors < 256
3939
# define HURCHALLA_ISPRIME_TRIALDIV_SIZE (21)

0 commit comments

Comments
 (0)