E. Mayer writes:
===
Will Edgington wrote:
<<<
The other issue is that many (most?) of the exponents with gaps also
have known factors, which means Prime95 cannot be used to close those
gaps since it stops on finding a factor and does not search in numeric
order. This last means that it actually _creates_ gaps when it finds
a factor. I don't seem to have a copy of Mfactor, so I can't check
whether it has similar issues.
>>>
It does not - while it does have an internal flag that, if enabled at
compile time, causes it to exit as soon as a factor is found without
doing the remaining passes, that flag is always disabled by default, and
the TF output also reminds the user just which passes were done. (I.e.
if at some point I'd set the flag for my build tests and forgot to unset
it, I'd quickly be reminded of that the next time I did a factoring run
that turned up a factor.)
===
Sounds good.
===
In the near future I expect to get rid of that
flag entirely and instead modify the factoring-pass loop structure so it
could truncate the bit depth of factoring were a factor found, but would
still make sure to do all 16 factoring passes to that bit depth. That
seems the cleanest solution to me which still allows some kind of
early-exit.
===
I believe George Woltman modified Prime95 to do the factoring one
power of two at a time (i.e., all 16 passes from 2^50 to 2^51 before
any pass from 2^51 to 2^52). Certainly, I'd favor that over your
current idea, because it lets those users that want to stop when a
factor is found but not leave gaps to do so sooner than your idea and
avoids some issues related to finding multiple factors in different
ranges. E.g., if the first pass finds a factor between 2^61 and 2^62
and then the second pass finds a factor between 2^32 and 2^33, all
passes - including pass 2 - still have to search thru 2^62 to avoid
leaving gaps.
===
Also, perhaps you misunderstood me w.r.to M( 27471827 ) - when I said
tested that number for factors up to 2^64, I meant from scratch up to
2^64 - I didn't start at the previous upper bound listed in your tables.
===
Yes, I realized that, but it never hurts to make sure. The extra cost
of starting over rather than at, say, 2^50 when going to 2^64 is
trivial ... for a small number of exponents. But possible confusions
like this are another reason I much prefer using explicit J (join)
lines like:
M( 27471827 )J: 2^0 2^64
... that describe exactly what the program actually performed. That
exact format - and everything else in mersfmt.txt on my web site - is
already accepted by the not-yet-releasable server and Perl scripts
I've mentioned.
Will
http://www.garlic.com/~wedgingt/mersfmt.txt
http://www.garlic.com/~wedgingt/mersenne.html
_______________________________________________
Prime mailing list
[email protected]
http://hogranch.com/mailman/listinfo/prime