20190708, 16:50  #1 
Sep 2003
2,579 Posts 
mprime can do k*b^n+c
How feasible would it be, in principle, to adapt gpuOwL to be more flexible? Wagstaff in particular: (2^p+1)/3 
20190708, 20:10  #2  
Sep 2002
Database er0rr
CFD_{16} Posts 
Quote:
Working mod 2^p+1 is almost as easy as 2^p1. Then a final division by 3 to get mod (2^p+1)/3. E.g: Code:
p=127;Mod(3,2^p+1)^2^p Mod(9, 170141183460469231731687303715884105729) 

20190708, 20:34  #3  
Sep 2003
A13_{16} Posts 
Quote:
Probably type4 would also be applicable to Wagstaff? Or perhaps type2, which is similar to type4 except using N−1 instead of N+1. Code:
2: SPRP variant, N is PRP if a^((N1)/2) = +/1 mod N 4: SPRP variant. N is PRP if a^((N+1)/2) = +/a mod N 

20190709, 19:03  #4  
Sep 2003
2,579 Posts 
Quote:
Like I mentioned earlier, the Wagstaff PRP calculation for type 5 is 3^(2^p) mod (2^p + 1) whereas for Mersenne (where type 1 and type 5 are the same thing), it's 3^(2^p − 2) mod (2^p − 1). I don't know if there is a similarly simple modification for type 4 or type 2 residues. Since gpuOwL is a GitHub project, theoretically someone else could make the modification, possibly even forking from an earlier version that still used Mersenne type 1 residues. 

20190710, 00:51  #5  
"TF79LL86GIMPS96gpu17"
Mar 2017
US midwest
3×11×127 Posts 
Of course. He volunteers his time, according to his talents and interests, like many others. None of us has a claim on him or each other, or authority to select one path versus another for him. To his credit, he sometimes accepts or asks for input from the user community. And if we users summarize outstanding issues or new desires, it can make him more efficient. Winwin.
Quote:
Quote:
There are other ways to do Wagstaff, to ~920M, though maybe not as high a p as you'd like to go to if you're thinking of taking the new Mersenne conjecture testing further. There are also other ways to do p1 factoring on Mersennes, although not above ~432.5M in CUDAPm1 in practice, or ~920M in mprime/prime95, and not on OpenCl at all. 

20190711, 21:33  #6  
"Mihai Preda"
Apr 2015
2172_{8} Posts 
Quote:
In the Mersenne case, we want a cyclic convolution. The simple weighting that is done before/after the FFT achieves that. For the "mod 2^p+1", we want a negacyclic convolution. Can this be achieved through a similar weighting (with different weights)? Or is something more involved needed? To add a bit more detail: in the mersenne case, the weights are real. IF for 2^p+1 we need weighting with complex weights, this changes the implementation significantly because the FFT input is not real anymore. 

20190712, 00:13  #7  
P90 years forever!
Aug 2002
Yeehaw, FL
2·5·701 Posts 
Quote:
You also need to apply complex rootsofminusone to "trick" the FFT into doing a negacyclic convolution instead of a cyclic convolution. You don't need any extra FFT memory, but you do need a modified first pass that takes real inputs and produces weighted complex FFT'ed outputs. Not easy, but not hard either. Next you need a new simpler second pass that scraps all the Hermetian symmetry computations before the pointwise squaring. 

20190719, 23:27  #8  
∂^{2}ω=0
Sep 2002
República de California
2·5,693 Posts 
Quote:
Quote:


20190720, 00:51  #9  
"Mihai Preda"
Apr 2015
2·3·191 Posts 
Thank you, this is useful!
Quote:


20191122, 07:30  #10 
Jun 2003
2×3^{2}×7×37 Posts 
Forked the Wagstaff discussion into a separate thread (copy  original posts are still there).

20191122, 16:29  #11 
Sep 2002
Database er0rr
5^{2}·7·19 Posts 

Thread Tools  
Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Status of Wagstaff testing? and testing Mersenne primes for Wagstaffness  GP2  Wagstaff PRP Search  385  20200728 16:58 
gpuOwl Windows setup for Radeon VII  Prime95  GpuOwl  91  20191230 08:30 
gpuowl tuning  M344587487  GpuOwl  14  20181229 08:11 
gpuowl: runtime error  SELROC  GpuOwl  29  20180922 16:09 
How to interface gpuOwl with PrimeNet  preda  PrimeNet  2  20171007 21:32 