[mathicgb] branch upstream created (now c72c945)

Doug Torrance dtorrance-guest at moszumanska.debian.org
Fri Apr 3 15:58:19 UTC 2015


This is an automated email from the git hooks/post-receive script.

dtorrance-guest pushed a change to branch upstream
in repository mathicgb.

        at  c72c945   Connected the module input library basis to a module backend and added a unit test for it that passes.

This branch includes the following new commits:

       new  31d363b   Initial commit of mathicgb code.
       new  3503d8f   Added .gitignore files to ignore files generated by Emacs and autotools.
       new  bdd3fe6   Added option for less verbose automake output (pass --enable-silent-rules to configure or V=0 to make)
       new  d15546b   Moved BitTriangle out of mathicgb and into mathic.
       new  e0da914   Added .exe to .gitignore to ignore executable files on Cygwin.
       new  a78d6f1   Updated README.md to describe Mathicgb in more detail.
       new  4d253c6   changed copyright header
       new  3af75ef   Making a BjarkeGeobucket2 class that will eventually replace BjarkeGeobucket.  For now, this is being added in order to incrementally test mathic::HashTable
       new  c2445ce   working on HashTable, soon to be HashMap in mathic, and how it is used in mathicgb.  So far, BjarkeGeobucket2 is in the midst of being simlpified.
       new  fc7be21   Changed code to compile with changed interface to HashTable.  But code doesn't yet really use new HashTable code.
       new  f1f9d91   Fixed Makefile.am to rebuild unittest.exe when non-test files are changed. Also commented out printing from BjarkeGeobucket2 that were slowing tests.
       new  12e99be   Removed AM_PROG_AR macro from configure.ac since it isn't needed now and apparently isn't supported on all systems.
       new  c1c0614   Made mathicgb turn asserts on/off based on MATHICGB_DEBUG rather than DEBUG.
       new  5322a2e   Moved grobner basis tests from testing all combinations to testing only all pairs of combinations. This drastically reduces the time taken to run the tests.
       new  2975521   Added make-Makefile.sh which will write out a Makefile that downloads and sets up memtailor, mathic and mathicgb with release, debug and other targets.
       new  314fd4b   Transformed PairQueue to use mathic::PairQueue in place of its own previous implementation.
       new  ccd826d   Added more targets to and improved code for make-Makefile.sh
       new  14c7242   Added support for MATHICGB_SLOW_DEBUG and MATHICGB_SLOW_ASSERT to disable the very slowest asserts for a standard build with asserts. make check is now much faster.
       new  e5f0f97   Updated make-Makefile to support targets setting LDFLAGS which was necessary to support profile builds correctly.
       new  a35d196   Removed support for stopping siggb computations early on a Grobner basis since if turning that option on was a win, then using classic buchberger was better in all our experiments and the feature was complex.
       new  e0cba69   Renamed SPairHandler to SigSPairs, moved responsibility for ordering sig S-pairs into FreeModuleOrder.cpp and speed up sig S-pair ordering by using scrambled signatures.
       new  015259a   Fixed issue with configure.ac that wasn't working on my Cygwin installation.
       new  5d5648b   Added improved modular inverse code and typedefs for uint8, uint16, uint32, uint64.
       new  23b7ad6   Fixed previous commit that unintentionally included an intentional debugging error.
       new  c106f4c   Added a sparse matrix class in preparation for F4 along with a few tests.
       new  a34360b   Added QuadMatrixBuilder for building F4 matrices along with tests of this class.
       new  69ff7f8   Added support for sorting columns in the F4 QuadMatrixBuilder + tests.
       new  88bd2d1   Changed Reducer to only offer a higher level interface. Moved all its implementation stuff into TypicalReducer and made all 13 reducer classes derive from that instead (ugh). This is in preparation for F4 reduction which requires a significantly different representation than the current reducer classes.
       new  f6980a1   Added an F4MatrixBuilder and an F4Reducer - they do not work yet.
       new  61c61e4   Fixed a few typos in the help system.
       new  ac3506d   Added tests for F4MatrixBuilder and fixed it so that now it seems to work. Also introduced a QuadMatrix class and used it as output of both QuadMatrixBuilder and F4MatrixBuilder.
       new  ead56f0   Enabled support for some C++11 features and changed all uses of std::auto_ptr to std::unique_ptr.
       new  bad8d21   Added missing #include to TypicalReducer.
       new  907cd4a   Added F4MatrixReducer which reduces an F4 matrix to reduced row echelon form. Also added a single non-trivial test that passes, so maybe it actually works. This is a code dump of the prototype code I wrote for matrix reduction previously so it needs to be cleaned up - I only did some search-replace to make it compile and a bit of effort to hook things up correctly and shake out the bugs in the glue code.
       new  14a7b33   Made F4MatrixReducer remove empty rows in each subcomputation and added tests for this. Also removed unused reduction code in F4MatrixReducer.
       new  9c3143e   Added a make_unique function that simulates variadic templates so that it should work on MSVC too even though it does not have variadic templates.
       new  577509a   F4Reducer now successfully computes the same result as the fallback reducer for all reductions of classic S-pairs that I've tried.
       new  5edd095   Migrated QuadMatrixBuilder to use a hash table and made F4Matrix not defer to a fallback on clasically reducing an S-pair. Fixed some bugs that was corrupting hash values.
       new  7ae17cc   Added an option -sPairGroupSize that makes MathicGB reduce that many S-pairs at the same time. As you would expect, this is a big benefit for the F4Reducer (reducer 25).
       new  3e3fdf3   Added a -threadCount option that sets the number of parallel threads used during reduction. The tests also use this.
       new  1843f48   Fixed a bug where hash values are stored as exponents but calculated with as size_t which was causing an ASSERT if those types are different. Also, made allocMonomial fill the returned buffer full of set bits to make it more likely for asserts to trigger on uninitilized values.
       new  9955f49   Fixed a capitalization error in an #include
       new  7d2fb8e   added example dir and two example files
       new  92a1db9   Merge branch 'master' of https://github.com/broune/mathicgb
       new  bfc0b25   Fixed a bug: we were inappropriately assuming that all input polynomials have their terms already sorted. Also added asserts in places checking that a polynomial is sorted.
       new  dce4e88   Added support for reducing a set of polynomials in addition to the support for reducing a set of S-pairs. BuchbergerAlg uses this features now. This made the F4 reducer faster even though it is still just doing inter-reductions one at a time using the fall-back (non-matrix) reducer, presumably because collecting all the reductions and updating the basis fully allows a fuller reduction which could imply fewer rounds of interreduction.
       new  4777120   Moved ./src/examples/ to ./examples/ and added files generated by MGB when running on an example to .gitignore.
       new  27f3d71   Now only add 1 bottom row to F4 matrices per S-pair.
       new  b6a273c   F4Reducer now uses F4 reduction to reduce sets of polynomials (as opposed to just sets of S-polynomials). Also did a few microreductions that increased speed on hcyclic8 by about 10%.
       new  02cdb6a   No longer sort rows by increasing pivots. Also, decreased the load factor on the hash table.
       new  c417558   Got rid of matrix concatenation of left and right matrices in F4, though strangely this turned out to slow things down a little bit - but it still halves the memory used on matrices. The current version of storing the right part and then processing the right part later was faster than processing the right part right away or in a second loop without storing - at least on hcyclic8.
       new  4c8ffc7   Now makes a new matrix for each degree. This is a speed up on homogenous ideals though it needs to be turned off for non-homogenous matrices - currently there is no option to do so.
       new  9544aed   Changes to remove some errors and warnings when compiling with MS V++ 2012.
       new  d03aae2   Made std::unordered_map in QuadMatrixBuilder use an Arena for allocation. Fixed MSVC warnings and MSVC OpenMP issue (only allows signed index variables). Fixed a bug for threadCount == 0.
       new  296a1f4   Added Visual Studio 2012 pro project files.
       new  13e888d   Fixed erroneous intermediate directory in MSVC project files.
       new  935e5aa   Added notes on how I made Visual Studio Pro 2012 project files. I had to figure out more about this topic than I ever wanted to know.
       new  73b5e4e   Miscellaneous code improvements. Removed many MSVC warnings, changed pointers to references or unique_ptr.
       new  5a1c8e4   Fixed overflow issue that would only happen on 64 bit compiles with hash tables or geobuckets larger than 2^31. After this change, all remaining issues found by the static analysis of Visual Studio 2012 Professional are false positives.
       new  dca8151   Fixed what is, to the best of my ability to determine, an issue caused by a bug in the MSVC implementation of OpenMP. Go read the comment I added for the details. So that was more than a few hours out of my life. Great. I really enjoyed that. Wonderful. No really. (if someone has an explanation other than "compiler bug", I'd really be interested to hear it).
       new  c4cf0ff   Added a MonomialMap template. This removes a lot of complexity and ifdef'ing from QuadMatrixBuilder. Also, I expect to use this outside of QuadMatrixBuilder in future.
       new  2261565   Matrix construction is now a bit faster due to hash table allowing look-up of a product without storing the product anywhere.
       new  8547192   Made SparseMatrix require explicit addition of new columns.
       new  17914b2   Moved a lot of code out of the header file for SparseMatrix and also changed its interface to expose less details of its implementation.
       new  7f0111e   Moved basis output to C file IO which doubled performance. Also turned the output off.
       new  2431c70   Changed MonomialMap interface to use pointers instead of iterators to be able to support the case where std::unordered_map::iterator and std::unordered_map::local_iterator are not compatible. This was required to compile on GCC.
       new  4f7f944   Added custom chained hash table for MonomialMap and now uses a bit-technique for faster equality check when looking up monomials in a hash table. Takes hcyc8 from 8.4s to 8.0s for a 4.8% improvement.
       new  2450633   Made monomials be inline of nodes in the hash table, which reduced time from 8.0s to 7.7s for hcyc8 for a 3.8% improvement.
       new  f5efe9b   Added a RawVector class that works like std::vector but has manual memory management. This allowed to optimize appendEntry on SparseMatrix which reduced hcyc8 from 7.7s to 7.4s for a 3.8% performance increase.
       new  433cf6e   Now uses exponent and coefficient typedefs in more places where they should be used. Also added OMPIndex typedef for use in OpenMP loops where the loop variable is (perversely) not allowed to be unsigned by MSVC 2012. I tried to make it possible to have coefficient be unsigned, but there is some bug somewhere, so for now it remains signed.
       new  8f19bbe   Removed 4 .cpp files with no content that MSVC was complaining about.
       new  e0fb348   Oops, removed one too many files from Makefile build list in last commit.
       new  282e2f8   I made the hash-table verification of a hit process two exponents at a time by comparing them as an int64 instead of two int32's. Turns out the strict aliasing rule makes this very tricky to get right, and, after a lot of effort, I finally found out that the only correct solution that also achieves good performance uses... memcpy. Yes, on individual int64 values. Turns out at least MSVC and GCC understand memcpy and won't actually call a memcpy function for something [...]
       new  e867046   updated .gitignore to include more file types generated by Visual Studio.
       new  f5a3acf   Changed SparseMatrix to use pointers instead of interger indices to keep track of where the data for a row is. This is in preparation for eliminating copy operations (they take about 5% of time) and making parallel matrix construction easier to do. I would have expected a tiny slowdown from this step, but I actually got a 17% speed increase on hcyc8! I don't understand it. My best guess is that the compiler somehow better understands what is going on. Maybe also beca [...]
       new  980501c   Fixed a memory leak in SparseMatrix. Also miscellaneous code cleanup in SparseMatrix.
       new  bdcdbbc   Made SparseMatrix allocate memory in multiple blocks instead of reallocating an ever-larger buffer. This saves the copy and will make the parallelization-to-come easier. It was a 4% performance improvement at 2 threads on hcyc8.
       new  bb9af1e   Moving closer to adding support for parallel matrix construction. This changed the order that rows are constructed which surprisingly gave an 8% speedup on hcyc8 on Cygwin when running on 2 cores.
       new  88ed03b   Turned off link time optimization for Visual Studio in the Release-Assert configuration since that allows a faster compile-test cycle.
       new  fca6893   Finally parallelized the main step in matrix construction. Getting 7% less time on hcyc8 on 2/2 threads/cores.
       new  0921cbe   Parallelized the sorting and reordering of matrices. Also added a set of macroes that give a way to tell the optimizer extra information, such as saying that two pointers are not aliases.
       new  e3304d3   Minor code improvements.
       new  d3ad560   Parallelized also the construction of the bottom matrix of S-pairs and removed some memory leaks of monomials.
       new  928528a   Fixed bug in hash table hit-verification code.
       new  0d95f8f   Made F4MatrixReducer a bit simpler, mainly by removing a lot of unused code.
       new  1948f45   More simplification of F4MatrixReducer and improvement to tracing output for showing matrix dimensions and number of non-zero entries in a more visual way.
       new  4cf5281   Corrected MATHIC_INLINE to MATHICGB_INLINE.
       new  8f98b58   Fixed a performance regression on MSVC 2012 due to the compiler erroneously thinking that two pointers might be aliases.
       new  e1e1ae7   Made the memory quamtum of the matrices a command line parameter.
       new  cb11a5b   Got a 2% speed-up by processing two hash table monomial product queries at the same time.
       new  be029b3   All code now uses MATHICGB_ASSERT - ASSERT is gone.
       new  5d333db   Improved tracking output for size and memory used by matrices. Use -trac 5 -cla -reducer 25 to see.
       new  2eaef52   Merge branch 'master' of https://github.com/broune/mathicgb
       new  44cb064   Added make_unique_array to stdinc to go with make_unique.
       new  f0f1d62   Fixed missing MATHICGB_RESTRICT macro for non MSVC.
       new  6c3cf91   Made some changes to MonomialMap to prepare for using a single concurrent hashtable instead of per-thread hash tables. This (temporarily) has made it fixed-size. Performance is, unexpectedly, better by 1% single-core. This happened when forcing the internal table pointer and mask onto the stack of clients (via a handle). I'm not sure if the cause of the better performance is due to better compiler information (const-on-stack is easy to prove things about for compiler [...]
       new  c3802e6   MonomialMap now grows automatically again.
       new  0f0202f   FixedSizeMonomialMap is not exposed instead of being an implementation detail of MonomialMap. MonomialMap is now concurrent and also performant. Horribly, the std::atomic of MSVC 2012 has abysmal performance, so there was no other option than to write my own :( On other compilers the new Atomic class is just implemented in terms of std::atomic, but on x86 and x64 for MSVC it uses compiler intrinsics to implement std::atomic using memory barriers. The implementation o [...]
       new  6fda319   Now not forcing inlining in debug builds.
       new  25ead0b   Hash table not initializes itself to null as it should. It seems MSVC was doing this while GCC was not - std::atomic has trivial constructor so that may be the difference.
       new  ef2bb8c   Removed method from FixedsizeMonomialMap elementCount since it was returning mEntryCount which now does not exist.
       new  e51faa8   Fixed typo in not-called function MonomialMap::entryCount.
       new  69ed581   Apparently GCC does not zero initialize on new T[x]() though it is supposed to. So manual zeroing it is.
       new  33ca3fc   More modular implementation of x86 and x64 Atomic which will allow having that implementation also work on GCC instead of only MSVC, since apparently the GCC 4.6 implementation is also slow.
       new  c1105ec   Added a custom Atomic implementation for GCC. The GCC 4.6.3 built-in std::atomic makes the program slow to a crawl while the custom Atomic that is now added gets the same speed as running with no atomic constraints at all (single-core). There is now a macro MATHICGB_USE_FAKE_ATOMIC that makes Atomic not actually impose any ordering constraints, though it is still atomic since that is derived merely from the size of the values and from being aligned, at least on x86 a [...]
       new  37851e8   SparseMatrix cannot efficiently keep track of its number of columns during concurrent matrix construction with a shared hash table, so it no longer does to prepare for that.
       new  d25ac48   Now using a single concurrent hash map for building the matrix. It makes no difference single-core, but now using more threads than cores is actually a win - I'm seeing 12% speed-up of 3 threads on dual core compared to 2 threads where before there was no advantage. I suspect that this is caused by the third thread no longer having to create its own hash table and also now the third thread can use the idle core if the second thread is waiting while the first thread l [...]
       new  c0a540a   Added use of tbb for threading. Doesn't work on Cygwin as tbb doesn't work there, apparently.
       new  f6010fc   Migration from OpenMP to TBB complete.
       new  fb8ba47   Matrix construction now uses parallel_do instead of parallel_for, which allows to dynamically add new work items.
       new  c3bede3   In building F4 matrices: changed task data representation so that dynamically added tasks incur no allocation. Before there was an allocation for representing the monomial to be multiplied onto the polynomial to make a row, but now instead the monomial is product with the lead monomial (so the monomial of the new column), which implies that we can just reuse the monomial for the column that is already stored in the hash table. This is significant for parallelism sinc [...]
       new  b04df39   Small changes that allow for exponent to be a char/int8. That was a problem with IO code since >>char is different from >>int in that the former reads a single character while the latter reads a possibly multi-character integer.
       new  399c07b   Made two separate actions gb and siggb for classic and signature grobner basis computation respectively.
       new  6a535fb   Since tbb uses a global object to set the number of threads there is no longer a purpose of passing threadCount parameters around everywhere. Those are all removed now.
       new  4753243   Added an option to output all F4 matrices with more than the specified number of non-zero entries. The matrix format is as for Lachartre and Fayssal's code, except each file contains the 4 sub-matrices instead of one big matrix. There is now also a matrix action in addition to gb and siggb. It currently just reads a matrix and writes it out - I'm stopping today at the point where I got the written matrix to actually match the read matrix byte-for-byte. :) This also i [...]
       new  066c4f7   Fixed a matrix write bug and now the matrix action reduces the input file and either writes the reduced bottom right matrix out if a reference matrix does not exist or checks that the computed matrix matches the reference matrix if the reference matrix does exist.
       new  c81a09b   The matrix action now takes several input files and processes each of them separately. There is not an -inputFile option any more.
       new  22a6ef5   The unreduced bottom right matrix is now written out by the matrix action (not the gb action). This allows to run only the row reduction of the bottom right matrix - it is not required to reduce the full matrix to get at this computation. Simply specify the file with the bottom right matrix as the input file.
       new  e51966e   Fixed bug where F4Reducer would print out matrices when it should not.
       new  52ca2f2   Added new logging framework with fine-grained control of what is logged along with -log options and a "help log" feature for listing all log domains compiled into the executable.Currently there is only a single log domain defined, but eventually this should replace tracing level or alternatively tracing level could be defined in terms of log domains. The main feature here is that the logging overhead is precisely zero if a logging domain is turned off at compile time [...]
       new  828eeee   First version of Shrawan's Gaussian elimination code.
       new  a382a51   Fixed bug in Atomic.hpp (relaxed load/store needs to be not cached in registers) and generally cleaned up the atomics code.
       new  1f656d0   Second version of Shrawan's Gaussian elimination code.
       new  6958945   Fixes to make the code compile on GCC 4.6.3.
       new  b7e4378   merge
       new  e221488   Merge branch 'master' of https://github.com/broune/mathicgb
       new  9924fa7   Non-working version, but closer to correct.
       new  e597eba   Improved logging, now with timing support
       new  deda067   Merge. Working version. (yay\!)
       new  6f6017e   Changes to make code compile on GCC 4.6.3.
       new  87af1a7   Timed logging now actually works.
       new  1d06315   Improved the logging output of reducing matrices. It now contains much more information, the information is more clearly labeled and it looks nicer.
       new  929206e   Improved comments on DenseRow::addRowMultiple and unrolled a small loop manually once. This is a 5% performance improvement for matrix reduction on MSVC 2012.
       new  2593093   Made the bit widths used in matrix reduction more explicit. This was done to enable experiments with using cmov instructions to keep the modular sums in 64 bits instead of 32, but that turned out to be a lot slower, so that experiment was not committed.
       new  c850f4d   Fixed bug in F4 matrix reduction.
       new  7b7fccb   Added .pbm image output to matrix action. Useful for debugging as it allows visual inspection of the matrix.
       new  96e91c9   Updated test list from pict.
       new  f3dfcb3   Added new matrix construction code that decouples left/right splitting from the initial matrix construction. I want this to be as fast as the previous code, so the previous code is still there for now for comparison. The new code can be called using reducer 26.
       new  1cfea3e   Fixed floating point division by zero in statistics output code that was causing double-spaced output on Cygwin terminals.
       new  eff5b6b   Better log summary at end of run and now loggers for matrix construction.
       new  8a7c9d3   Better log summary at end of run and now loggers for matrix construction.
       new  ef8ca1e   whitespace changes.
       new  f608f08   Simplified F4MatrixBuilder2 by avoiding the initial top/bottom division that anyway is undone right after.
       new  a801c6e   Moved reducer 26 to using preblocks (no scalars) for the first version of the F4 matrix.
       new  b88cbcc   Made F4-26 reducer reindex while splitting left-right, which now makes it a tiny bit faster than F4-25 for hcyclic6. :)
       new  098815e   Refactoring F4-26 matrix construction code.
       new  32eee99   Simplified and improved performance for sorting columns and constructing column permutation map in F4-26.
       new  c3e0af2   Refactoring F4-26 matrix construction.
       new  0225b94   whitespace change.
       new  3c3d03e   Updated to match mathic ColumnPrinter change from ratio to ratioInteger and ratioDouble.
       new  6336cbf   Same thing as last commit, now with ColumnPrinter::percent.
       new  3e56baa   Now reports an IO error if there is one while using the C file IO for reading/writing sparse matrices (silences warnings from gcc 4.6.3).
       new  345b40d   std::vector<const char> apparently causes errors on gcc 4.6.3, so I made it non-const to get it to compile.
       new  90e0a28   Changed a reference to a universal reference in LambdaRunner of the logging system to get around a compilation issue with gcc 4.6.3.
       new  a524a9e   Added missing file references to Makefile.am.
       new  1ad1603   Moving F4-26 towards row reordering after column reindexing.
       new  74b82b0   F4-26 now has support for top/bottom split after left/right bottom, though the implementation is slow so it is not done by default.
       new  4a9fad4   Merge branch 'master' of https://github.com/broune/mathicgb
       new  8724a90   Made the copying of a row of a matrix faster through using memcpy.
       new  c3952d4   Added support for logs that count and used it to add a log for counting the total number of rows added in all matrices in F4.
       new  af0ea4b   Added included needed by GCC 4.6.3
       new  b4b4a6c   Added row counter log for top and bottom rows of F4 matrices.
       new  82b1b64   Avoided calls for reductions of zero polynomials.
       new  be633a0   Significant speed-up from choosing sparser and older reducers. This was already implemented, I thought, but it turns out that only applied to siggb, not gb.
       new  28fb32e   Fixed compile-error on gcc 4.6. I suspect it is an error in the compiler, but it was easy to avoid.
       new  93e2e29   adds homogeneous katsura examples
       new  cc9dfbf   Moved PreBlock code out of F4MatrixBuilder2 into its own file and renamed it to ProtoMatrix.
       new  3b5b42f   Merge branch 'master' of https://github.com/broune/mathicgb
       new  435edb1   Fix double-fclose bug diagnosed by Christian Eder.
       new  e82e032   Moved the matrix projection code out of F4MatrixBuilder2 and into F4MatrixProjection.
       new  e86f556   fixes make for F4ProtoMatrix
       new  4fbf785   Merge pull request #2 from ederc/make-fix
       new  c0732a9   Improved code in F4MatrixProjection and added ScopeExit functionality.
       new  968d699   Further refactoring of F4MatrixProjection.
       new  9027e59   merge
       new  0401bf0   Refactoring to eliminate the code duplication for computing a top/bottom projection inside F4MatrixProjection.
       new  8e55eeb   fixes debug assert
       new  9e51152   Merge pull request #1 from ederc/examples
       new  47fcd09   Merge pull request #3 from ederc/debug-fix
       new  210c74c   Fix to make non-assert mode compile.
       new  2cffdef   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.
       new  5f7e5ac   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  [...]
       new  41df6c1   Added new log functionality to enable streaming output and the summary at the end independently.
       new  8872c00   Improved the help system's description of logging.
       new  b32e8d0   Added support for log aliases.
       new  71fa758   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.
       new  f086b23   Minor improvements in functionality to PolyRing.
       new  b7027fc   Added a library interface to MathicGB along with tests.
       new  78da45a   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 quit [...]
       new  78e37fb   Fixes to make MathicGB compile on GCC 4.5.3 on Cygwin.
       new  2cc0955   MathicGB now compiles and tests pass on Cygwin with GCC without TBB. Still some configure issues.
       new  f10ccf0   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.
       new  b80ae33   Fixed recent error in make-Makefile that would link up the built executable to a wrong installed directory. Also fixed GCC compile warning.
       new  4cb8598   Added link of the rt library, which is apparently needed on gcc for some platforms. It seems to implement the time functionality from time().
       new  dc5c9bf   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 a [...]
       new  94af58f   Improvement to output stating that gtest is not enabled.
       new  54d30e7   Outer Makefile now uses only a single download of gtest for all of mathic, memtailor and mathicgb.
       new  5726f28   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.
       new  06a06d5   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.
       new  039253c   MathicGB now also installs itself as a header+library in addition to as a console program.
       new  bdbf8e6   Added missing pkgconfig file that should have been committed in last commit.
       new  f86a4b2   Added a PrimeField class along with tests. This class is supposed to take over the coefficient code in PolyRing.
       new  3ec7f14   Removed incorrect reference to PrimeField.cpp in Makefile.am
       new  7849dfd   Added MonoMonoid along with tests. The purpose of MonoMonoid is to take over the monomial functionality from PolyRing.
       new  4785e4c   Added ordering to MonoMonoid.
       new  b80fef2   Added hash functionality to MonoMonoid. Still need more tests.
       new  775586d   Minor cleanup to MonoMonoid.
       new  f6e9bbb   Minor cleanup to MonoMonoid and added product along with tests.
       new  5211880   Added division and divisibility code to MonoMonoid along with tests.
       new  a89952b   More division code.
       new  f3b33fa   Removed unused code from PolyRing.
       new  b8f946d   Removed unused code from PolyRing.
       new  69ba192   Added full support for comparison to MonoMonoid, along with module monomial and non-total-degree grading. Also forwarded compare from PolyRing to MonoMonoid.
       new  15092b8   Added functions for testing a*b==c to MonoMonoid and forwarding from PolyRing.
       new  94230a4   PolyRing now forwards to PrimeField. Also got rid of PolyRing::getMonomialPool() in an effort to reduce the size of the interface of PolyRing.
       new  d241a72   PolyRing can now forward to MonoMonoid and PrimeField for almost everything. Added lots of new methods on those two to make that possible.
       new  0b8b2b6   Added test to the new methods on MonoMonoid and PrimeField.
       new  ddf5858   Made changes to compile on MSVC without warnings.
       new  f4bec2c   Slight performance improvement to MonoMonoid::lcm and (temporary) ability to do MonoMonoid::lcmRaw.
       new  174d8b4   Made MonoMonoid a template on options for what the representation stores and updated tests to test all those representations. Internally the new template parameters don't actually do anything yet.
       new  9221fb9   Added yang1 ideal to examples. This ideal stresses S-pair handling.
       new  2f3e535   MonoMonoid now ignores fiels that are disabled via template parameters. The fiels that can be disabled are component, degree and hash.
       new  e6619bf   MonoMonoid now correctly uses less memory when the hash field is disabled. That was already the case for component and order.
       new  ee2fa72   Old PolyRing implementation removed - now it can only forward to MonoMonoid and PrimeField.
       new  129b86c   Moving SPairs towards proper use of MonoMonoid.
       new  663b696   SPairs now uses a dedicated hash-less monoid for ordering.
       new  ae7fecf   SPairs no longer uses PolyRing, except to access a MonoMonoid. Also, it has about the same speed as previously by using a MonoVector.
       new  72dd7f4   configure now checks whether librt is needed before using it. Also removed a few tabs.
       new  3261bee   Added back erroneously removed deb outer makefile target and changed /bin/evn to /usr/bin/env.
       new  daa0287   Changes to build system intended to detect if linking with librt is necessary.
       new  a987dd1   Added missing macro for autoconf.
       new  bfd7765   Avoid printing looking for TBB twice in configure.
       new  b7cfd4a   added cyclic5 test.  Not sure if it is compiling yet
       new  26784b9   Work-around for issue GCC 4.7 seems to have with properly resolving private copy constructors versus public move constructors.
       new  9857924   Merge branch 'master' of https://github.com/broune/mathicgb
       new  17a8ed7   Fixed issue with ordering S-pairs where some of the components have been retired.
       new  b7fa809   Library interface now has an option for using a classic reducer or a matrix reducer.
       new  c5ee21c   The library interface now allows not specifying the number of polynomials or terms to follow.
       new  c1867bc   SPairGroupSize is now set to something appropriate by default for both the CLI and library interfaces.
       new  852dc36   It is now possible to set the max number of threads in the library interface.
       new  01faa35   Library interface now allows limited access to the logging framework.
       new  46a42ef   Fixed missing dependency of tests on libmathicgb that caused test not to be recompiled in some cases.
       new  c35380f   Fixed issue where memory consumption would suddenly explode due to converting a submatrix of a very sparse and large matrix into dense format. Very sparse matrices now have their own code-path that avoids this.
       new  6a75199   Added in logging functions for incremental viewing: F4Incremental alias, and F4MatrixSizes,F4SPairDegree,F4MatReduceTop,F4RedBottomRight
       new  e700934   Renamed some F4 aliases and fixed descriptions of logs and a comment in stdinc.h.
       new  204be2b   Added reset functionality to the logging system. All logs are now reset for each Groebner computation done through the library interface. Also, moved the new top/bottom F4 reducer log timing commands to be right next to the combined timer for that - without this, the time would be significantly different between the 2 kinds of logs because an expensive IO happened after starting one and before starting the other.
       new  eb80555   Added more precise timing when not using TBB.
       new  a39509f   Removed unnecessary duplicate code path in BuchbergerAlg.cpp
       new  f439c1f   Removed old unused code for Buchberger criteria from PolyBasis.
       new  7d83621   The library interface now allows setting the maximum S-pair group size.
       new  8cad955   Added option to set monomial order to library interface. The interface is now more general than the actual capabilities of the code, so not everything actually works yet.
       new  aff8e43   added test file
       new  d17a575   Matrix ordering supposed to work now, though it has not been tested with a full GB computation. It does pass unittests.
       new  713e500   Merge branch 'master' of https://github.com/broune/mathicgb
       new  3dab355   Added elimination order GB test for the library interface
       new  a7884a2   Fixed a few ASSERTs and bugs for varCount==0 that needed to be fixed for multigraded ordering.
       new  dbe3b93   Fixed an assert error by removing stuff out of PolyRing.
       new  d30c6b1   Fixed a wrong test for monomials.
       new  dc95da3   Fixed bug in copy among different monoids.
       new  93254f7   added in the answer to the simple elimination test example
       new  d2913b2   Moved support for reading in rings from PolyRing to MonoMonoid as well as other things moved there.
       new  ba8ab91   Merge branch 'master' of https://github.com/broune/mathicgb
       new  dda2af6   Reduced the interface and state of PolyRing.
       new  c2c3f84   Removed computation of size of monomials from PolyRing.
       new  4e3ce21   Moved signature comparison remnant out of PolyRing.
       new  a990e63   Reduced the interface for PolyRing and added release/recapture support for pool-allocated monomials.
       new  c1f3df3   Moved monomial pool out of PolyRing. PolyRing's state now consits only of a monoid and a field.
       new  c89c9e7   Added test for reading and writing monoids.
       new  6e08a20   Fixed bug in copy constructor of MonoMonoid that set all monomials to have a hash value of 0, leading to huge slowdowns.
       new  7a71ecb   Added command line option -outputResult to mgb
       new  e5a7ec6   IO format now includes lex or revlex ordering explicitly. It still doesn't do anything yet.
       new  12f7917   Merge branch 'master' of https://github.com/broune/mathicgb
       new  4ae2584   Changed the default threadCount command line value to 0
       new  7748973   Merge branch 'master' of https://github.com/broune/mathicgb
       new  ffa8fc8   Now with actual lex ordering enabled. It passes unit tests. It might even work.
       new  0c1f7c5   Merge branch 'master' of https://github.com/broune/mathicgb
       new  0134818   Added a log alias named default and made -log do that one instead of the all alias.
       new  acb1d8d   Reduced code size for comparison in MonoMonoid.
       new  2c33c6e   simple change to a log message
       new  e1e4933   Reduced one of the Schreyer orders to the other one by doing a transformation up front.
       new  925c9b8   Merge branch 'master' of https://github.com/broune/mathicgb
       new  c10f39a   Reduced another free module order to another one by preprocessing up front. In particular, by reversing and unreversing components.
       new  f896a69   Another order bites the dust.
       new  8090930   Added tests for free module orders 6 and 7.
       new  846aba0   Reduced free module order 6 to order 7 with preprocessing.
       new  2fa1bea   Changed order 3 to be consistently Schreyer instead of half-Schreyer.
       new  3c4cf87   Turned the Schreyer part of all remaining orders into preprocessing.
       new  b53b43a   Removed a lot of now unused free module order code.
       new  191e6d1   Simplified interface and implementation of FreeModuleOrder.
       new  765ddd1   Simplified and improved the pre/postprocessing code for module monomial ordering.
       new  a6f2697   Renamed Ideal to Basis to avoid name conflict with Frobby.
       new  97d909f   Set up support for a callback to control the computation in the library interface. The interface is there now, though it doesn't do anything yet.
       new  6f39e3c   Implemented the functionality of the callback in the library interface. Also added tests for it which pass.
       new  aa99ea6   Added library interface support for retrieving values from logs.
       new  ac904ef   Renamed logCharacteristic to logNumber in the library interface.
       new  38e6f23   Added a class that describes a monomial order and added a constructor in MonoMonoid that takes that as a parameter. MonoOrder is not yet used otherwise.
       new  2b0bdf1   MonoOrder is improved, now immutable and used by MonoMonoid::readMonoid.
       new  12eb95e   Added base class for MonoMonoid to eliminate duplication of code in constructors.
       new  0ab694c   merge
       new  28908de   Added support in MonoMonoid for comparing components before, after or in-between gradings, rather than only at the end.
       new  1c518d3   Added some small test examples.
       new  f725bcf   Allowed component/revcomponent distinction to be passed on to the monoid in tests. Used this to get rid of OrderE entirely from FreeModuleOrder.
       new  30e7797   Added support for specifying (rev)component for after base ordering. Used this to move all component/revcomponent distinction out of the order number.
       new  fee815c   Moved handling of Schreyer order into Basis and added syntax for that to ring description. The number given to a free module order then no longer does anything at all, so code passing that around has been removed.
       new  61282bf   Added a new Scanner class that makes reading formatted input SOOO much nicer.
       new  418b637   Added option to match on a string to Scanner.
       new  613868a   Adding new external-to-MonoMonoid IO class MathicIO along with tests.
       new  136ab81   Simplified MonoMonoid::create.
       new  58292bf   Added writeTerm to MathicIO and now test both readTerm and writeTerm.
       new  84e370f   Added readPoly and writePoly to MathicIO along with tests.
       new  8b4ad50   Added readPoly and writePoly to MathicIO along with tests.
       new  b400a54   Added readBasis and writeBasis to MathicIO along with tests.
       new  bbb09cb   Removed Basis::parse in favor of MathicIO. Added support for negative modular coefficients.
       new  10de2ba   Added support for setting a module monomial order to the library interface. This is not used for anything yet.
       new  6520739   Moved NonCopyable to its own file. Made KoszulQueue movable but non-copyable and removed use of FreeModuleOrder from KoszulQueue and SigSPairs.
       new  6739198   Moved NonCopyable to its own file. Made KoszulQueue movable but non-copyable and removed use of FreeModuleOrder from KoszulQueue and SigSPairs.
       new  f70dcf3   Moved KoszulQueue to using Monoid fully, made it movable and changed to use its own MonoPool.
       new  4a48b0a   Removed FreeModuleOrder from PolyBasis and GroebnerBasis as well as all the code that uses the order from those. Also removed most of the code from FreeModuleOrder.
       new  05b5721   Finally got rid of FreeModuleOrder. Completely Gone. Yahoo\!
       new  8c5eca7   Renamed BuchbergerAlg to ClassicGBAlg and GroebnerBasis to SigPolyBasis.
       new  6b201a7   Added program for checking proper format of code files.
       new  0a6fe2a   Went through ALL source files to give them a common copyright header, to put everything in namespace mgb to avoid name clashes and to normalize header inclusion order of system versus non-system headers. Apparently there is a bug or some issue here somewhere that requires using ::std::X to refer to std::X. That was really fun. Yep.
       new  7b531a0   Removed C++11 auto's from public header file mathicgb.h and fixed a comment in the tests for that file.
       new  17eb612   merge
       new  fcb1f37   Added a C function to library for easier detection from autoconf.
       new  1de9829   Library interface not actually registers it when setComponentsAscending() is called.
       new  5d35591   Added check to library interface setMonomialOrder that rejects non-global orders. Also added tests for this.
       new  c29d43d   Changes to make this compile in MSVC.
       new  a5c8d7d   Renamed to mgb::tbb to mgb::mtbb to avoid frequent issue of ambiguous resolution of tbb - it could be ::tbb or ::mgb::tbb in some cases, causing MSVC to complain.
       new  1ca22f5   Added support for both left and right variants of lex and revlex to the library interface and in the engine. The file IO format does not support these new orders so far.
       new  a090dea   Changed the way that module-component rows are stored in MonoOrder. This fixed a bug where MathicGB would get confused in the library interface when given a non-last position for the module comparison.
       new  118c1f5   Moved all IO code out of MonoMonoid. Use MathicIO instead.
       new  d42655e   Change to make code compile on gcc 4.7.3.
       new  1f27738   Removed MonTableNaive, which wasn't necessary any more.
       new  b2bead3   Merge branch 'master' of https://github.com/broune/mathicgb
       new  60844ca   Fixes problem from removing MonTableNaive, which was still included from a few test files.
       new  0c82d09   Starting on clean-up of monomial data structure code. Tidied DivLookupConfigureion.
       new  c14e36a   Moving to use of lambdas in DivLookup.hpp
       new  afde969   DivLookup.hpp is now fully lambdaed.
       new  74107dd   Tidying DivisorLookup.cpp
       new  6a48fd1   Moved configuration for DivLookup into the class as a private sub-class and moved as much stuff out of the configuration as possible.
       new  e2703b8   Made DivLookup entirely non-virtual and instead added a virtual wrapper in DivisorLookup.cpp that also took over responsibility for some of the information such as the basis.
       new  1e01832   Renamed DivLookup to StaticMonoLookup and DivisorLookup to MonoLookup.
       new  3654c0f   Pruned unused or less important stuff from the MonomialTableArray interface.
       new  d967600   Further simplification of MonomialTableArray.
       new  8c23210   Moved the implementation of the MonomialTableArray children to use StaticMonoLookup instead of implementation that functionality twice.
       new  681dfdf   Renamed MonomialTableArray to ModuleMonoSet and renamed StaticMonoLookup to StaticMonoMap.
       new  ff9664c   Further clean-up on the ModuleMonoSet and MonoLookup interfaces.
       new  0d439fd   Improved logging for signature algorithm a bit, made schreyer ordering the default for text input on the command line and did a bit of code cleanup.
       new  2c706c1   Changed the default back so that an input file again has to explicitly ask for a Schreyer order to get it. The other way was too strange and it also would require changing the tests.
       new  f79c1d8   Moving towards replacing const_monomial entirely with the types on Monoid.
       new  adf16d8   Simplified PolyHashTable and gave BjarkeGeobucket2 a new hash table based on MonmialMap that is significantly faster than the old one.
       new  5738142   Moved a line in BjarkeGeobucket2 that is a boost to performance.
       new  3ed4d58   Moved PolyHashTable closer to BjarkeGeobucket2's hash table and removed several superfluous reducers.
       new  908fb76   Improved the implementation of ReducerHashPack so that it is a bit faster and so that it does not move monomials out of hash table nodes. The latter was a barrier to making changes in PolyHashTable.
       new  1eab165   Replaced the interface and implementation of PolyHashTable with the better hash table from BjarkeGeobucket2. That made BjarkeGeobucket2 superfluous, so it was removed.
       new  3666e57   Moved some of the code of PolyHashTable into its implementation file.
       new  f0241a8   Clean up of Reducer header file and remove statistics functionality from there. If we need that functionality in future, it should be implemented using the logging facility, not as a part of the main-line code.
       new  090f202   Made registering a reducer type depend on a decentralized method instead of having a big function in Reducer.cpp do it, leading to long compile times when that file needs to be recompiled. The new method is now implemented and being used for ReducerPack. The remaining reducers are using the new method, but it is still being done from Reducer.cpp. Next up: migrate all new reducers to this new way of doing it.
       new  6b7e094   Moved the implementation and even declaration of all reducers out of their header files. Registration of all the reduers now happens in a decentralized fashion in each reducer's .cpp file. Reducer.cpp no longer takes so long to compile.
       new  f2c8373   Light cleanup of the reducer implementatio files.
       new  2fd2f02   Converted all non-F4 reducers to new MonoMonoid monomials and documented them.
       new  9989153   Documentation improvements and slight clean-up on F4 code.
       new  7ef2c1d   Made the list of reducer types in the help message ordered by id.
       new  229b902   Clean-up on F4MatrixBuilder2, FixedSizeMonomialMap and MonomialMap, migrating them to use a monoid.
       new  bc394f4   Migrated F4MatrixBuilder, QuadMatrix and a few related classes to use MonoMonoid.
       new  5e136b5   Removed ChainedHashTable and MonomialHashTable since they were not used any more, except by a single unit test.
       new  28fb618   Removed PairTriangle as it is no longer used (it's replaced by the mathic version). Also tiny amount of clean-up.
       new  9008776   Moved several classes closer to using MonoMonoid.
       new  cee466a   Moving S-pair handling to using MonoMonoid.
       new  75fdbdf   Starting cleanup of interface of SigPolyBasis.hpp
       new  75df7aa   Moved interface of SigPolyBasis to using MonoMonoid.
       new  28cdd9d   Moved the implementation of SigPolyBasis to use MonoMonoid.
       new  b16590d   Changed PolyBasis to use MonoMonoid.
       new  a71ec54   Starting clean-up of interface of Poly.
       new  6257483   Further clean-up on Poly.
       new  a73276e   Poly mostly clean now.
       new  cfef9d0   Added missing Zip.hpp file.
       new  7bfa734   Moved Zip into Range.hpp and extended the functionality for manipulating ranges significantly. Added tests for that functionality and used it in Poly.
       new  a921b98   Poly::assign can now accept a range and the implementation of Poly::polyWithTermsDescending is now a bit simpler - there are no loops in there any more and what is sorted is no longer a set of pairs (term, index) pairs since the index was not being used anymore anyway.
       new  f42b685   Made Poly use PolyRing::Field and other slight cleanup.
       new  6124daf   It is no longer possible to ask for the i'th term/coef/mono of a polynomial.
       new  71bcaa6   Poly now uses containers from Field and Monoid to store coefficients and monomials. Poly.cpp was removed since it is no longer needed.
       new  943df98   This time Poly.cpp is removed from git too.
       new  3fe28d9   Added documentation and a description.txt file that explains a lot about MathicGB.
       new  93d8985   Fixed ana Makefile target to work by removing option -fsyntax-only. We only really need the syntax check, but autotools thinks something is wrong since it cannot make executables with that flag.
       new  3b350fd   Added slides and added extra content to the description of MathicGB in doc/description.txt.
       new  133e1f0   Minor edit to doc/description.txt, now with a table of contents.
       new  557a3b9   Implemented module input algorithm - an early version. It doesn't work with KD trees right now, so you have to select the list data structures. You also have to use the -module parameter. Only works with the classic GB algorithm, though the F4 reducer seems to work (supposing this works at all). No testing has been done yet, so there may well be lots of issues. Also made the header for ClassicGBAlg expose less information.
       new  c48c1c1   Added flatten() to the Range.hpp. It flattens a range of ranges into a single range.
       new  af5a337   The Visual Studio project files should now work on any computer, including with Visual Studio Express. Added MonoArena and fixed a bug in flatten.
       new  3acd016   Changed the library interface to accept module inputs. This is currently still only connected to the same non-module backend as before.
       new  c72c945   Connected the module input library basis to a module backend and added a unit test for it that passes.

The 393 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/mathicgb.git



More information about the debian-science-commits mailing list