PFGW 3.1.0 has been Released
- I have posted the latest Windows and MacIntel distributions at this
This marks the first release of PFGW for MacIntel.
Enhancements to: v3.1.0 RC 1b
- Updated external version to meet intenal version.
- Updated to v25.11 of George Woltman's gwnum library.
- Use new modular reduction routines in gwnum for k*b^n+/-c forms.
This is about twice as fast as prior releases when k > 1 and almost 6
times as fast when k = 1 and b > 2. GFNs already use this same modular
- Removed special GFN PRP code as it is no longer necessary due to new
modular reduction code for k*b^n+/-c forms.
- Set default priority class to BELOW_NORMAL (instead of NORMAL) on
- Set priority to 20 (low) on *nix and MacIntel.
- Increased limits for factorials to 1,000,000.
- Increased limits for primorials to 20,000,000.
- Modified -r switch to act as a boolean. Using it will force PFGW to
do roundoff checking for all iterations of all tests.
- Enhanced error checking so that PFGW can conditionally do MAXERR
testing on individual tests or specific iterations of tests. In this
release PFGW will do MAXERR checking on the first and last 50
itererations of each test and every 128th iteration of each test. It
can test all iterations of each test if the -r switch is used or if
the number being testing is within 2% of the limit of the chosen FFT
size. This will be much more in-line with how Prime95 does MAXERR
- GFN factoring now checks for ROUNDOFF, SUMOUT, and MAXERR conditions
so that it can be aborted if a problem is detected. This means that
PFGW will now tell the user that they must use the -a switch when a
problem is detected.
- Add call to gwset_square_carefully_count() after creating the
modulus so that gwnum can use "safe" squaring on the first few
iterations of PRP tests or GFN factoring. This will significantly
reduce the likelihood that the -a switch will be needed.
- Based upon George's recommendation (due to the improved error
checking), MAXERR is now set to 0.45 instead of 0.40.
- Call new gwinit2() function so that PFGW can verify that it is
linked against the correct version of the gwnum library and so that it
can verify that PFGW uses the same compiler switches that were used to
I am not aware of any issues with this release, but I only have
limited resources for my testing. For example, I cannot test against
P3 (or older), Centrino, or AMD CPUs.
The two biggest changes of interest to casual users is that PFGW
should now be faster than LLR for bases that are not powers of 2. I
suspect Jean Penne will make the appropriate changes to LLR to take
advantage of the same modular code that PFGW is now using. I have not
compared base 2 tests between the two programs. The other is that the
-a switch is not required for GFN factoring and that PFGW will now
tell you if an error occurred during GFN factoring.
Many thanks to George for his enhancements to gwnum that were done
specifically for PFGW.
I do have a volunteer for building on linux, so hopefully I can make a
linux distribution available in the near future.
I will be on vacation for a few days, so please be patient if you run
into any issues that need to be addressed.