Fix to make non-assert mode compile.
Refactored classic S-pair ordering to not share as much code with the signature code. Also made the classic S-pair ordering prefer sparse or old S-pairs depending on the pre-existing option -preferSparseReducers. This results in ever-so-slightly smaller matrices compared to before, whichever way the option is set.
An S-pair aA-bB now has aA set as the reducer instead of using some other reducer for the cancelling term. Another S-pair aA-cC can then also be simplified to jsut cC without adding the reducer aA, as it is the same one. Due to a non-trivial interaction with the S-pair elimination/choice, this is guaranteed to simplify all S-pairs and the reducer aA is guaranteed to always be the preferred reducer that would have been used for that monomial anyway. For hcyclic8 this is a 5% speedup and it reduces the number of non-zero entries in the matrix by 6%. There is also now a new log F4MatrixEntryCount that counts the number of non-zero entries across all matrices, which is how I produced the 6% figure.
Added new log functionality to enable streaming output and the summary at the end independently.
Improved the help system's description of logging.
Added support for log aliases.
Added support for prefixes and suffices on log aliases. Added the log aliases none, all and SPairs. Made the default log none, while empty string is replaced with all, so that doing "-log" turns on all logs.
Minor improvements in functionality to PolyRing.
Added a library interface to MathicGB along with tests.
MathicGB no longer requires TBB. You still need TBB if you want parallel execution. Removing the requirement for TBB is achieved through an implementation of the parts of the TBB interface that MathicGB uses. This implementation does not do anything in paralle, so it was easy to write. So easy, in fact, that now I'm wondering whether it would make sense to make this implementation support OpenMP, in which case Cygwin would still have parallel execution, just not quite as fast.
Fixes to make MathicGB compile on GCC 4.5.3 on Cygwin.
MathicGB now compiles and tests pass on Cygwin with GCC without TBB. Still some configure issues.
The configure file now accepts an option --with-tbb=no. Use it to avoid a dependency on tbb, though then times in logs will be less accurate and there will be no support for multithreading. The Makefile created by build/setup/make-Makefile.sh now accepts an option mathicgb_conf, which is passed on to configure. So you can do make rel mathicgb_conf="--with-tbb=no" to set up a release mode build without tbb.
Fixed recent error in make-Makefile that would link up the built executable to a wrong installed directory. Also fixed GCC compile warning.
Added link of the rt library, which is apparently needed on gcc for some platforms. It seems to implement the time functionality from time().
configure now has a --with-gtest option that defaults to downloading gtest if it is not found. If --with-gtest=no then configure will succeed without gtest though then make check won't do anything other than to report that gtest was not found. The --with-tbb option now defaults to disabling tbb if it is not found. autogen.sh no longer downloads gtest. Hence a fresh git clone of mathicgb can now build out of the box with no options given even without tbb and without an internet connection. gtest is looked for at GTEST_PATH, so memtailor, mathic and mathicgb can now share the same download of gtest.
Improvement to output stating that gtest is not enabled.
Outer Makefile now uses only a single download of gtest for all of mathic, memtailor and mathicgb.
Fixed missing include directive for finding gtest in a non-standard location. Also, configure now detects failure to download gtest and continues without gtest in that case.
Removed -1.0 from the dependencies on mathic and memtailor. Not a single person who has seen this scheme appears to have understood what it's about (header versioning), even after extensive explanation in some cases, so the effort necessary to explain this scheme far overshadows the technical advantages.