[mathicgb] 93/393: Merge branch 'master' of https://github.com/broune/mathicgb

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


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

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

commit 2eaef52e4ae65d68750aa5a7396269bf6dea66bf
Merge: 5d333db be029b3
Author: Bjarke Hammersholt Roune <bjarkehr.code at gmail.com>
Date:   Fri Nov 2 10:57:52 2012 +0100

    Merge branch 'master' of https://github.com/broune/mathicgb

 src/cli/GBMain.cpp                 |  13 +++--
 src/mathicgb/BjarkeGeobucket.cpp   |  20 ++++----
 src/mathicgb/BjarkeGeobucket.hpp   |   5 +-
 src/mathicgb/BjarkeGeobucket2.hpp  |   4 +-
 src/mathicgb/BuchbergerAlg.cpp     |  32 ++++++------
 src/mathicgb/BuchbergerAlg.hpp     |   4 ++
 src/mathicgb/DivLookup.hpp         |  24 ++++-----
 src/mathicgb/F4MatrixBuilder.cpp   |  62 ++++++++++++++++++++--
 src/mathicgb/F4MatrixBuilder.hpp   |  14 ++++-
 src/mathicgb/F4MatrixReducer.cpp   |  54 +++++++++++++-------
 src/mathicgb/F4Reducer.cpp         |  11 ++--
 src/mathicgb/F4Reducer.hpp         |   3 ++
 src/mathicgb/FreeModuleOrder.cpp   |   8 +--
 src/mathicgb/GroebnerBasis.cpp     |  74 +++++++++++++--------------
 src/mathicgb/GroebnerBasis.hpp     |   6 +--
 src/mathicgb/HashTourReducer.cpp   |  14 ++---
 src/mathicgb/KoszulQueue.hpp       |  10 ++--
 src/mathicgb/MTArray.cpp           |  18 +++----
 src/mathicgb/MonTableDivList.hpp   |   4 +-
 src/mathicgb/MonTableKDTree.hpp    |  14 ++---
 src/mathicgb/MonomialMap.hpp       |  46 ++++++++++++++++-
 src/mathicgb/PairTriangle.cpp      |   8 +--
 src/mathicgb/Poly.cpp              |   2 +-
 src/mathicgb/Poly.hpp              |  17 ++++++-
 src/mathicgb/PolyBasis.cpp         |  49 +++++++++---------
 src/mathicgb/PolyHashTable.cpp     |  10 ++--
 src/mathicgb/PolyRing.cpp          |  12 ++---
 src/mathicgb/PolyRing.hpp          |  37 +++++++++++++-
 src/mathicgb/QuadMatrixBuilder.cpp |  12 ++++-
 src/mathicgb/QuadMatrixBuilder.hpp |  26 ++++++++--
 src/mathicgb/Reducer.hpp           |   4 ++
 src/mathicgb/ReducerHash.hpp       |  18 +++----
 src/mathicgb/ReducerHashPack.hpp   |  14 ++---
 src/mathicgb/ReducerHelper.hpp     |  11 +++-
 src/mathicgb/ReducerPackDedup.hpp  |  10 ++--
 src/mathicgb/SPairs.cpp            | 102 ++++++++++++++++++-------------------
 src/mathicgb/SigSPairs.cpp         |  36 ++++++-------
 src/mathicgb/SignatureGB.cpp       |  12 ++---
 src/mathicgb/SparseMatrix.cpp      |  25 ++++-----
 src/mathicgb/SparseMatrix.hpp      |  10 +++-
 src/mathicgb/TypicalReducer.cpp    |  15 +++---
 src/mathicgb/TypicalReducer.hpp    |   2 +
 src/mathicgb/stdinc.h              |   3 --
 43 files changed, 557 insertions(+), 318 deletions(-)

diff --cc src/mathicgb/SparseMatrix.cpp
index ad22515,b5b90fd..37e8dcd
--- a/src/mathicgb/SparseMatrix.cpp
+++ b/src/mathicgb/SparseMatrix.cpp
@@@ -310,44 -311,22 +311,44 @@@ void SparseMatrix::growEntryCapacity() 
    MATHICGB_ASSERT(mBlock.mColIndices.size() == mBlock.mScalars.size());
    MATHICGB_ASSERT(mBlock.mColIndices.capacity() == mBlock.mScalars.capacity());
  
-   // TODO: handle overflow of multiplication below
-   const size_t minBlockSize = 1 << 20;
-   const size_t minMultipleOfPending = 2;
-   const size_t pendingCount = mBlock.mHasNoRows ?
-     mBlock.mColIndices.size() :
-     std::distance(mRows.back().mIndicesEnd, mBlock.mColIndices.end());
-   const size_t blockSize =
-     std::max(minBlockSize, pendingCount * minMultipleOfPending);
- 
-   reserveFreeEntries(blockSize);
+   // TODO: handle overflow of arithmetic here
+   if (mMemoryQuantum != 0 &&
+     (!mBlock.mHasNoRows || mBlock.mPreviousBlock == 0)
+   )
+     reserveFreeEntries(mMemoryQuantum);
+   else if (mBlock.mColIndices.capacity() == 0)
+     reserveFreeEntries(1 << 14); // minimum block size
+   else {
+     // do this if the quantum is not set or if the quantum is too small
+     // to store a single row being built.
+     reserveFreeEntries(mBlock.mColIndices.capacity() * 2);
+   }
  
    MATHICGB_ASSERT(mBlock.mColIndices.size() == mBlock.mScalars.size());
-   MATHICGB_ASSERT(mBlock.mColIndices.capacity() == blockSize + pendingCount);
-   MATHICGB_ASSERT(mBlock.mScalars.capacity() == blockSize + pendingCount);
  }
  
 +size_t SparseMatrix::memoryUse() const {
 +  size_t count = 0;
 +  for (auto block = &mBlock; block != 0; block = block->mPreviousBlock)
 +    count += block->memoryUse() + sizeof(Block);
 +  return count;
 +}
 +
 +size_t SparseMatrix::memoryUseTrimmed() const {
 +  size_t count = 0;
 +  for (auto block = &mBlock; block != 0; block = block->mPreviousBlock)
 +    count += block->memoryUseTrimmed() + sizeof(Block);
 +  return count;
 +}
 +
 +size_t SparseMatrix::Block::memoryUse() const {
 +  return mColIndices.memoryUse() + mScalars.memoryUse();
 +}
 +
 +size_t SparseMatrix::Block::memoryUseTrimmed() const {
 +  return mColIndices.memoryUseTrimmed() + mScalars.memoryUseTrimmed();
 +}
 +
  std::ostream& operator<<(std::ostream& out, const SparseMatrix& matrix) {
    matrix.print(out);
    return out;

-- 
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