[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