Ab 24.3. ist FIMGit nur noch unter git.fim.uni-passau.de erreichbar. Veraltete Domains wie fimgit.fim.uni-passau.de werden dann abgeschaltet. Bitte aktualisieren Sie ggf. ihre Bookmarks und Git Remote URLs.
From 24 March, FIMGit will only be accessible at git.fim.uni-passau.de. Obsolete domains such as fimgit.fim.uni-passau.de will then be switched off. Please update your bookmarks and Git remote URLs if necessary.
Sieving for large twin smooth integers using single solutions to the Prouhet-Tarry-Escott (PTE) problem.
Optimized for single solutions by doing the modulo computation first. Implemented in Sage.
Optimised for single solutions by doing the modulo computation first.
The Sieve of Eratosthenes marks all integers in an interval as smooth (1) or non-smooth (0).
The Naive Approach gives a list of integers l that produce twin smooth integers a(l)/C,b(l)/C by checking every smooth integer in the interval.
The Optimised Approach gives a list of integers l that produce twin smooth integers a(l)/C,b(l)/C by checking only those integers l such that a(l) and b(l) are 0 modulo C.
Ideal PTE solutions provide polynomials a(x) and b(x) such that |a(x) - b(x)| = C is an interger.
More details can be found in the paper ***comming soon***.
To search for twin smooth primes (i.e. p + 1 and p - 1 are smooth) one can define a search interval I and use one of the following approaches.
Naive approach:
For every element l in I:
if a(l) and b(l) are smooth:
if a(l) / C and b(l) / C are integers:
print l
The tree approach by Costello, Meyer and Naehrig combined many PTE solutions and used common factors of the polynomials.
Optimised approach (for single solutions):
For every element l in I:
if a(l) / C and b(l) / C are integers:
if a(l) and b(l) are smooth:
print l
This decreases the number of look-ups for smoothness and allows to do a large part of the "modulo C" calculations in a pre-computation, that can be used for all search intervals.
There is a Sage implementation for explanatory reasons and two C implementations with maximal variable sizes of 64 and 128 bit respectively. For explanation of the individual steps please see the commentary in the code.
More details and references can be found in the paper ***comming soon***.