Wednesday, August 22, 2012

GJSieve 1.9.0

GJSieve version 1.9.0 is released! Find it here.

I recommend checking out the readme file for information on all the changes and new features in this version, but here is a short synopsis (from the readme):

  • Calculating and testing the Proth number has been divided into a two-step, two-button process. Press Calculate to determine the Proth number, and Test to test it.
  • Additionally, there are now two different options to test primality - brute force trial division (BFTD) and small prime array testing (SPAT). See Notes below for details.
  • Multi-threading: The test itself now runs in a separate thread, leaving you free to do things like move or resize the window (or close it, if need be) whilst the test is in progress. This also completely eliminates the "Not Responding" status that was erroneously displayed before, when the worker thread responsible for displaying the window was simultaneously performing the intense primality test.
  • The window has been re-formatted and arranged in a much better way. It is at least more conducive to reading everything naturally (that is, left to right) as well as displaying very large calculated Proth numbers in the now-larger box.
  • Some boxes have been added (but none removed). This includes a small messages box that is only used for informational messages regarding SPAT.
  • The boxes for k and n have shrunk, since they are single-line anyway.
  • The status bar, which was originally implemented in 1.8.0, now updates properly. It functions as a "heads-up display" of sorts.
  • Results are now saved in more descriptive files in a GJSieve 1.9.0 Results directory, which you can find in your Documents folder - whatever that may be.
This is a major step forward. GJSieve has come quite far from where we were in March, with a simple console executable capable of only n < 23 and numbers no longer than 11 or 12 digits!

I have used GJSieve to successfully calculate million-digit numbers. Primality testing takes a good long time, since brute-force trial division is not incredibly efficient, but it definitely works, and I'm incredibly satisfied with the results.

In the near future, expect updates to the Mac version of GJSieve to reflect the changes implemented here. Additionally, MuPuPriNT for Windows is due for an overhaul, as it has essentially not been updated since GJSieve 1.7.0 was prototyped about a month ago!

Expect the multi-tester application to be changed so that all of its included applications are like GJSieve 1.9.0. This will likely involve a complete re-write, so it will take a couple of weeks or so, but I'm definitely going to continue making my applications better and better no matter how long it takes.

Also, I want to expand on what I can do in Java, as that's what is taught here at college and I really don't want to sit in an intro class when I could be dealing with advanced data structures instead. Granted, the fact I can do that stuff (sort of) in C/C++ is all but irrelevant...but I digress.

As always, comments and questions welcome (even if you don't understand how the program works at all!)

No comments:

Post a Comment