Menu

Tree [f4c3ea] default tip /
 History

Read Only access


File Date Author Commit
 LICENSE_Apache_2.txt 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 LICENSE_gpl_3 2024-08-28 Myron Deale Myron Deale [9e2938] Initial commit
 LICENSE_mit 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 README 2024-09-06 Myron Deale Myron Deale [f4c3ea] nuclear read
 common.c 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 common.h 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 cxxopts.hpp 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 frobenius1.h 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 frobenius3.c 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 helpers.c 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 helpers.h 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 main_test25.cc 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 maths2.cc 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 maths2.h 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 miller_rabin.c 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 miller_rabin.h 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 mySieve10.h 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 mySieve13.cpp 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 small_primes.c 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 small_primes2.h 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 test_primes4 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...
 test_primes5 2024-08-28 Myron Deale Myron Deale [b3e712] because ssh does not work...

Read Me

This is a fork of Colin Benner's Frobenius benchmarking.

https://github.com/yzhs/frobenius-test

The intent here is more of a testbed for comparing the efficacy of certain routines, i.e. are they accurate? are they fast?

The Quadratic Frobenius (primality) Test, QFT, developed by Grantham requires testing for squares at the outset and also recommends sieving
with small primes -- Benner uses 49999, and I go to 50599.  Both these steps are relatively slow.  In another project, Hash-val-4-Bloom,
filters were developed that can reduce the number of square-root evaluations significantly.  Those are tested here.  In yet another project,
effort was put in to partitioning the small primes in order to minimize the number of divisions (and thereby reduce run-time).  Further
effort here was put in to parallelize sieving.

The square root routine does show potential, but is decidedly slower than GMP's built-in mpz_perfect_square_p().  The parallel sieve is
faster than a serial version, but appears to be merely equal if not slower than just repetitive mpz_divisible_p().  Lastly, the
mpz_probab_prime_p() uses the Baillie-PSW test and is properly optimized.  So the QFT, as written here, does not compare well against it.

As a "testbed" while thought and effort was taken to make things fast it is not close to optimal.  Recall B. Kernighan's wisdom (and I
paraphrase) "make it run, make it right, make it fast."  So ... this runs   8)







Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.