Changes to srsieve2
[QUOTE=gd_barnes;120751]This thread is for software downloads and instructions as well as a forum for any related questions on how to run software related to the effort.[/QUOTE]
hi, Can someone remove srsieve divisible by 2 check? (see [URL="https://github.com/xayahrainie4793/mepndata/tree/master/srsieve"]https://github.com/xayahrainie4793/mepndata/tree/master/srsieve[/URL]), I want to prove the [URL="https://mersenneforum.org/showthread.php?t=21839&page=75"]extended Sierpinski/Riesel problems[/URL] (Finding and proving the smallest k such that (k*b^n+1)/gcd(k+1,b1) (+ for Sierpinski,  for Riesel) is not prime for all integers n>=1), these Sierpinski/Riesel conjectures extended the CRUS Sierpinski/Riesel conjectures to the k such that gcd(k+1,b1) (+ for Sierpinski,  for Riesel) is not 1, since k*b^n+1 is always divisible by gcd(k+1,b1), it is simply to take out this factor, however, I cannot use srsieve to sieve the case which k and b are both odd (e.g. it returns ERROR: 13*43^n1: every term is divisible by 2" for R43 k=13), it can only sieve the case which at least one of k and b are even (e.g. [URL="https://mersenneforum.org/showpost.php?p=545503&postcount=710"]sieve file for R36[/URL]), can someone remove srsieve divisible by 2 check to let me sieve and reserve the odd Sierpinski/Riesel bases (e.g. S3, currently S3 has these k's remaining: 1187, 1801, 3007, 3047, 3307, 5321, 5743, 5893, 6427, 6569, 6575, 7927, 8161, 8227, 8467, 8609, 8863, 8987, 9263, 9449, see [URL="https://docs.google.com/document/d/e/2PACX1vTsmy_HaEGxLL6ICfbvUNr9iXdkgQfuVYpPkFPFUjPerzPglR11zObhWRdG7YlLd5judUF8OgSUVsS/pub"]https://docs.google.com/document/d/e/2PACX1vTsmy_HaEGxLL6ICfbvUNr9iXdkgQfuVYpPkFPFUjPerzPglR11zObhWRdG7YlLd5judUF8OgSUVsS/pub[/URL])? 
If the candidates are divisible by 2, then they are composite and srsieve will remove them. I see zero reason for srsieve to behave differently.

[QUOTE=rogue;550882]If the candidates are divisible by 2, then they are composite and srsieve will remove them. I see zero reason for srsieve to behave differently.[/QUOTE]
I'm with Sweety on this one. (Surprise, surprise! :smile: ) You did not read his request carefully. Please reread it and consider a more nuanced response. His complaint is one that I had about srsieve when I was working on the same conjectures that he was about a year ago. They are some conjectures that are fairly interesting and have been previously worked on by several others long before him and me. There is no reason for srsieve to immediately error out candidates that are divisible by 2 since it should automatically remove them anyway in the normal course of sieving. By automatically errorring them out such tests that he is referring to cannot be properly sieved. It would be like having srsieve automatically erroring out candidates that are divisible by 3 before doing actual sieving on them. It is an uneccesary error check that prevents other kinds of sieving from being done. 
For srsieve if one inputs multiple sequences to srsieve and at least one sequence has "all terms divisible by x", that it won't sieve the other sequences. I can see why that would be a problem.
Have you considered srsieve2? Chances are that it is faster than srsieve and I believe that one of its output formats is compatible with sr2sieve, which is faster than srsieve2 when using Legendre tables. 
Please change srsieve to remove the error check for divisibility by 2 and then force the regular sieve process to remove the terms divisible by 2 instead. Is that really difficult? It seems like a simple fix. I'm pretty sure I or others have requested this before and we seem to keep getting the runaround about it.
To be more specific below is what Sweety and I and others want to do when attempting to test a conjecture such as (13*43^n1)/2 if the form is not found to have a smallish prime using simple trial factoring with PFGW. 1. Sieve using srsieve using the form 13*43^n1 but with a starting sieve depth of 3 using the following command: srsieve G p 3 P 1e9 n 25e3 N 100e3 m 1e9 "13*43^n1" This tells srsieve to only sieve the form for P=3 to 1e9. That way it does not remove the terms that are divisible by 2 (which would be all of them in this case). 2. Test with PFGW using a standard PFGW header of: (ABC $a*43^$b1)/2 // {number_primes,$a,1} 13 25007 13 25019 (etc.) This allows us to both sieve and test the form (13*43^n1)/2. Srsieve currently works for us if we have a form with a prime divisor other than 2 such as (13*46^n1)/3. In that case we would just have it sieve the range of P=5 to 1e9 and there would be no error as there is in the case of (13*43^n1)/2. Does this make sense? [ All of these are examples. They are not actual work done.] If this cannot be done please let us know and we will not request it anymore. We would prefer not to have to run a separate program when standard srsieve will work for 99% of cases like this. Also please let us know how you would sieve the form (13*43^n1)/2. That would be very helpful. 
Originally the ask was to "remove the check". Now you are asking for software to sieve (k*b^n+c)/d. Although similar, they are not the same. I don't recall anyone asking for this feature before.
For now I have given you a workaround that can be used for d = 2 which is what the original ask was. Why isn't that acceptable? You mention that this forces you to use srsieve for some sequences and srsieve2 for others. Why not srsieve2 for all sequences? AFAIAC, srsieve is deprecated. sr1sieve and sr2sieve are not. My intention is to add new features to srsieve2, not srsieve. If bugs are found in srsieve then I will certainly fix them, but I'm not inclined to add new features to it. 
[QUOTE=rogue;551132]Originally the ask was to "remove the check". Now you are asking for software to sieve (k*b^n+c)/d. Although similar, they are not the same. I don't recall anyone asking for this feature before.
For now I have given you a workaround that can be used for d = 2 which is what the original ask was. Why isn't that acceptable? You mention that this forces you to use srsieve for some sequences and srsieve2 for others. Why not srsieve2 for all sequences? AFAIAC, srsieve is deprecated. sr1sieve and sr2sieve are not. My intention is to add new features to srsieve2, not srsieve. If bugs are found in srsieve then I will certainly fix them, but I'm not inclined to add new features to it.[/QUOTE] Where is the workaround that you have stated? I do not see it. I must be dense. lol We do not want to have to input multiple sequences if we only want to sieve one of them. I don't understand. Please provide a specific example of how we should sieve (13*51^n1)/2 by sieving 13*51^n1. Please state the program to use and the command to use. Assume I'm a newbie because I am when it comes to srsieve2. No we've never asked for srsieve (or srsieve2) to sieve (k*b^n+c)/d. I was just showing an example of what we could sieve with srsieve if the error check for divisibility by 2 is removed. We are just asking for the error check for all candidates divisible by 2 to be removed and then be included in the regular sieving looping process of all other prime factors. I have used srsieve2 a few times. I find it to be no faster than sr2sieve and find it somewhat more cumbersome to use. I don't care for the fact that the Prate that it uses is the number of prime factors that it has searched in the last minute whereas the Prate in srsieve is the Prange that it has searched in the last minute. IMHO the latter is much preferable. I still use srsieve/sr1sieve/sr2sieve for that reason. Why are you suggesting that we use srsieve2 when you do not know if it will work for what we are asking? [B]Edit:[/B] I just tried srsieve2 with the following command: srsieve2 p 3 P 1e6 n 25e3 N 100e3 s "13*51^n1" It errored out with: All terms for sequence 13*51^n1 are divisible by 2 Fatal Error: All sequences have been removed So my question is: Why does it error out when I have not included p=2 in the the sieve range ? It should not do that. For the same reason that srsieve should not do that. Sieving 13*51^n1 by not including the factor of 2 is our way of sieving (13*51^n1)/2. Does that make sense? 
[QUOTE=gd_barnes;551145]Where is the workaround that you have stated? I do not see it. I must be dense. lol We do not want to have to input multiple sequences if we only want to sieve one of them. I don't understand.
Please provide a specific example of how we should sieve (13*51^n1)/2 by sieving 13*51^n1. Please state the program to use and the command to use. Assume I'm a newbie because I am when it comes to srsieve2. No we've never asked for srsieve (or srsieve2) to sieve (k*b^n+c)/d. I was just showing an example of what we could sieve with srsieve if the error check for divisibility by 2 is removed. We are just asking for the error check for all candidates divisible by 2 to be removed and then be included in the regular sieving looping process of all other prime factors. I have used srsieve2 a few times. I find it to be no faster than sr2sieve and find it somewhat more cumbersome to use. I don't care for the fact that the Prate that it uses is the number of prime factors that it has searched in the last minute whereas the Prate in srsieve is the Prange that it has searched in the last minute. IMHO the latter is much preferable. I still use srsieve/sr1sieve/sr2sieve for that reason. Why are you suggesting that we use srsieve2 when you do not know if it will work for what we are asking? [B]Edit:[/B] I just tried srsieve2 with the following command: srsieve2 p 3 P 1e6 n 25e3 N 100e3 s "13*51^n1" It errored out with: All terms for sequence 13*51^n1 are divisible by 2 Fatal Error: All sequences have been removed So my question is: Why does it error out when I have not included p=2 in the the sieve range ? It should not do that. For the same reason that srsieve should not do that. Sieving 13*51^n1 by not including the factor of 2 is our way of sieving (13*51^n1)/2. Does that make sense?[/QUOTE] For srsieve2 I see what you mean. The check for "divisibility by 2" is done before sieving is started. I will change srsieve2 to sieve (k*b^n+c)/d for any d. That would allow srsieve2 to benefit other users as it will be able to sieve a few repunit sequences. Regarding "p per second", the value it shows is rather useless. The factor rate and estimated completion time are far more important. For srsieve I will change the current error condition to a warning (it is a warning in srsieve2), but cannot guarantee that starting with p3 will not remove terms divisible by 2. 
[QUOTE=rogue;551179]For srsieve2 I see what you mean. The check for "divisibility by 2" is done before sieving is started.
I will change srsieve2 to sieve (k*b^n+c)/d for any d. That would allow srsieve2 to benefit other users as it will be able to sieve a few repunit sequences. Regarding "p per second", the value it shows is rather useless. The factor rate and estimated completion time are far more important. For srsieve I will change the current error condition to a warning (it is a warning in srsieve2), but cannot guarantee that starting with p3 will not remove terms divisible by 2.[/QUOTE] That would be great for srsieve2 Mark! :smile: When you are done please post the executable here and I will test it as best as I can. 
[QUOTE=gd_barnes;551497]That would be great for srsieve2 Mark! :smile:
When you are done please post the executable here and I will test it as best as I can.[/QUOTE] I appreciate your offer. I'll try to work on it this weekend. 
Question. If k*b^n+c is not evenly divisible by d, should those terms removed prior to sieving?

All times are UTC. The time now is 13:14. 
Powered by vBulletin® Version 3.8.11
Copyright ©2000  2021, Jelsoft Enterprises Ltd.