1. 30 Oct, 2009 3 commits
    • Mark Olesen's avatar
      Added HashTbl::shrink() - but it only be useful in particular situations · 1fbcb6e2
      Mark Olesen authored
      - for the hashTableTest3, it seemed to slow things down a bit
      
      loop 0 - Erased 100000 elements (size 2900000 capacity 4194304) 0.31 s
      loop 1 - Erased 100000 elements (size 2800000 capacity 4194304) 0.01 s
      loop 2 - Erased 100000 elements (size 2700000 capacity 4194304) 0 s
      loop 3 - Erased 100000 elements (size 2600000 capacity 4194304) 0 s
      loop 4 - Erased 100000 elements (size 2500000 capacity 4194304) 0.01 s
      loop 5 - Erased 100000 elements (size 2400000 capacity 4194304) 0 s
      loop 6 - Erased 100000 elements (size 2300000 capacity 4194304) 0 s
      loop 7 - Erased 100000 elements (size 2200000 capacity 4194304) 0 s
      loop 8 - Erased 100000 elements (size 2100000 capacity 4194304) 0.01 s
      loop 9 - Erased 100000 elements (size 2000000 capacity 4194304) 0.44 s
      loop 10 - Erased 100000 elements (size 1900000 capacity 4194304) 0.44 s
      loop 11 - Erased 100000 elements (size 1800000 capacity 4194304) 0.39 s
      loop 12 - Erased 100000 elements (size 1700000 capacity 4194304) 0.4 s
      loop 13 - Erased 100000 elements (size 1600000 capacity 2097152) 0.15 s
      loop 14 - Erased 100000 elements (size 1500000 capacity 2097152) 0.01 s
      loop 15 - Erased 100000 elements (size 1400000 capacity 2097152) 0 s
      loop 16 - Erased 100000 elements (size 1300000 capacity 2097152) 0 s
      loop 17 - Erased 100000 elements (size 1200000 capacity 2097152) 0.01 s
      loop 18 - Erased 100000 elements (size 1100000 capacity 2097152) 0 s
      loop 19 - Erased 100000 elements (size 1000000 capacity 2097152) 0.27 s
      loop 20 - Erased 100000 elements (size 900000 capacity 2097152) 0.2 s
      loop 21 - Erased 100000 elements (size 800000 capacity 1048576) 0.1 s
      loop 22 - Erased 100000 elements (size 700000 capacity 1048576) 0 s
      loop 23 - Erased 100000 elements (size 600000 capacity 1048576) 0 s
      loop 24 - Erased 100000 elements (size 500000 capacity 1048576) 0.12 s
      loop 25 - Erased 100000 elements (size 400000 capacity 524288) 0.04 s
      loop 26 - Erased 100000 elements (size 300000 capacity 524288) 0.01 s
      loop 27 - Erased 100000 elements (size 200000 capacity 262144) 0.02 s
      loop 28 - Erased 100000 elements (size 100000 capacity 131072) 0.02 s
      loop 29 - Erased 100000 elements (size 0 capacity 2) 0 s
      1fbcb6e2
    • Mark Olesen's avatar
      HashTbl avoid backward search in erase() · 2c73afb6
      Mark Olesen authored
      - The ideas as discussed in email
      
      - The speedup is really there.
      
      Before
      loop 0 - Erased 100000 elements:   3.82 s
      loop 1 - Erased 100000 elements:   11.45 s
      loop 2 - Erased 100000 elements:   19.46 s
      loop 3 - Erased 100000 elements:   27.73 s
      loop 4 - Erased 100000 elements:   38.74 s
      ^C
      
      After
      loop 0 - Erased 100000 elements (size 2900000 capacity 8388608) 0.01 s
      loop 1 - Erased 100000 elements (size 2800000 capacity 8388608) 0 s
      loop 2 - Erased 100000 elements (size 2700000 capacity 8388608) 0.01 s
      loop 3 - Erased 100000 elements (size 2600000 capacity 8388608) 0 s
      loop 4 - Erased 100000 elements (size 2500000 capacity 8388608) 0 s
      loop 5 - Erased 100000 elements (size 2400000 capacity 8388608) 0 s
      loop 6 - Erased 100000 elements (size 2300000 capacity 8388608) 0 s
      loop 7 - Erased 100000 elements (size 2200000 capacity 8388608) 0 s
      ...
      2c73afb6
    • Mark Olesen's avatar
      added HashTbl as development replacement for HashTable · 55a89e9d
      Mark Olesen authored
      - rename to HashTable later when it is considered stable
      55a89e9d
  2. 06 Aug, 2009 1 commit
  3. 22 Jun, 2009 1 commit
  4. 19 May, 2009 1 commit
    • Mark Olesen's avatar
      HashTable minor iterator issues · 1d2a94c3
      Mark Olesen authored
      - made const_iterator::operator* and const_iterator::operator() const only
      - added const versions of iterator::operator* and iterator::operator()
      1d2a94c3
  5. 27 Apr, 2009 1 commit
    • Mark Olesen's avatar
      consistency update · 48247a3d
      Mark Olesen authored
      - DynamicList gets append methods as per List
      - misc cosmetic changes
      48247a3d
  6. 04 Mar, 2009 1 commit
  7. 27 Feb, 2009 1 commit
    • Mark Olesen's avatar
      Preliminary work on hashing · 576d9388
      Mark Olesen authored
      - Hash returns unsigned
      - FixedList templated on unsigned int
      - include uLabel.H in UList, HashTable etc. so the output function is know
        throughout
      576d9388
  8. 26 Feb, 2009 2 commits
    • Mark Olesen's avatar
      HashTable changes · a46c85f5
      Mark Olesen authored
      - make table power-of-two, but since it seems to give 1-2% performance
        improvement, maybe forget it too.
      
      - remove two-argument form of hashing classes and do the modulus direclty
        within HashTable instead. This simplifies things a fair bit.
      
      - migrate Hash<void*> from db/dlLibrary to primitives/hashes/Hash
      a46c85f5
    • Mark Olesen's avatar
      PackedList bugfix, HashTable tweak · 2aeee852
      Mark Olesen authored
      - it was possible to create a PackedList::iterator from a
        PackedList::const_iterator and violate const-ness
      
      - added HashTable::printInfo for emitting some information
      
      - changed default table sizes from 100 -> 128 in preparation for future
        2^n table sizes
      2aeee852
  9. 20 Jan, 2009 1 commit
  10. 11 Jan, 2009 1 commit
  11. 09 Jan, 2009 2 commits
  12. 05 Jan, 2009 1 commit
    • Mark Olesen's avatar
      rename xfer<T> class to Xfer<T> · 19503c93
      Mark Olesen authored
      - The capitalization is consistent with most other template classes, but
        more importantly frees up xfer() for use as method name without needing
        special treatment to avoid ambiguities.
      
        It seems reasonable to have different names for transfer(...) and xfer()
        methods, since the transfer is occuring in different directions.
        The xfer() method can thus replace the recently introduced zero-parameter
        transfer() methods.
        Other name candidates (eg, yield, release, etc.) were deemed too abstract.
      19503c93
  13. 02 Jan, 2009 1 commit
    • Mark Olesen's avatar
      HashTable / StaticHashTable changes · a0101214
      Mark Olesen authored
      StaticHashTable:
      - erase(iterator&) now actually alters the iterator and iterator++() handles
        it properly
      - clear() also sets count to zero
      - operator=(const StaticHashTable&) doesn't crash after a previous transfer
      - operator(), operator==() and operator!=() added
      
      HashTable:
      - operator=(const HashTable&) gets tableSize if required, eg, after a
        previous transfer)
      
      HashSet / Map
      - add xfer<...> constructor for underlying HashTable
      a0101214
  14. 31 Dec, 2008 1 commit
  15. 18 Dec, 2008 1 commit
  16. 12 Dec, 2008 1 commit
  17. 10 Oct, 2008 1 commit
  18. 06 Aug, 2008 1 commit
  19. 25 Jun, 2008 2 commits
  20. 25 May, 2008 1 commit
  21. 08 May, 2008 1 commit
    • Mark Olesen's avatar
      Added set() method to HashTable. · 8bdd3501
      Mark Olesen authored
      Added replace() method to DLListBase.
      Modified the dictionary merge code to avoid scrambling the order, but left the old version active for now.
      8bdd3501
  22. 15 Apr, 2008 1 commit