1. 29 Mar, 2010 1 commit
  2. 27 Jan, 2010 1 commit
    • mattijs's avatar
      BUG: slicing of empty list · adc15181
      mattijs authored
      An empty list (m_) has no pointer so cannot be referenced. Instead we
      now return a null pointer (which is no problem for UList)
      adc15181
  3. 15 Jan, 2010 1 commit
  4. 15 Dec, 2009 2 commits
  5. 08 Dec, 2009 2 commits
    • Mark Olesen's avatar
      HashSet and PackedList get an unset() method · d2d39c32
      Mark Olesen authored
      - provides a convenient (and lazy) means of removing entries
      d2d39c32
    • Mark Olesen's avatar
      Applied Mattijs' PackedList improvements · 16c715ce
      Mark Olesen authored
      - resize with factor 2 as per DynamicList
      
      Old insertion speed:
          1000000 in 0.61 s
          2000000 in 2.24 s
          3000000 in 3.97 s
          4000000 in 5.76 s
          5000000 in 7.54 s
          6000000 in 9.41 s
          7000000 in 11.5 s
      
      New insertion speed:
          1000000 in 0.01 s
          2000000 in 0.02 s
          3000000 in 0.01 s
          4000000 in 0.02 s
          5000000 in 0.01 s
          6000000 in 0.01 s
          7000000 in 0.01 s
      16c715ce
  6. 07 Dec, 2009 1 commit
  7. 04 Dec, 2009 1 commit
  8. 02 Dec, 2009 2 commits
  9. 03 Dec, 2009 1 commit
    • Mark Olesen's avatar
      PackedBoolList specializaton for operator= · 063d8ede
      Mark Olesen authored
      - now that I re-examined the code, the note in commit 51fd6327
        can be mostly ignored
      
        PackedList isMaster(nPoints, 1u);
        is not really inefficient at all, since the '1u' is packed into
        32/64-bits before the subsequent assignment and doesn't involve
        shifts/masking for each index
      
        The same misinformation applies to the PackedList(size, 0u) form.
        It isn't much slower at all.
      
        Nonetheless, add bool specialization so that it is a simple assign.
      063d8ede
  10. 02 Dec, 2009 1 commit
  11. 01 Dec, 2009 2 commits
  12. 25 Nov, 2009 1 commit
    • Mark Olesen's avatar
      Lists get first() and last() member functions · b2d7439b
      Mark Olesen authored
      - this builds on Mattijs' commit 968f0bbd but with a first()
        as well.
      
      - Added both to FixedList, IndirectList, UIndirectList and *PtrList and
        since they can certainly be useful there. Did not add to BiIndirectList,
        since I'm not sure what it should mean there. Did not add to PackedList,
        since it's not clear how useful they'd be yet in these contexts (and I'm
        not sure how it would interact with the iterator proxy implementation).
      
      - Note: STL defines front() and back() for these methods.
      b2d7439b
  13. 23 Nov, 2009 1 commit
  14. 20 Nov, 2009 1 commit
  15. 12 Nov, 2009 1 commit
  16. 06 Nov, 2009 1 commit
  17. 04 Nov, 2009 3 commits
  18. 03 Nov, 2009 4 commits
  19. 31 Oct, 2009 2 commits
  20. 30 Oct, 2009 5 commits
    • Mark Olesen's avatar
      HashTbl: improve efficiency when deleting many keys and in operator== · a61c03a6
      Mark Olesen authored
      - fix off by one error in erase/increment code
      a61c03a6
    • Mark Olesen's avatar
      HashTbl changes · 946aac50
      Mark Olesen authored
      - iterators store pointers instead of references to the HashTbl.
        This lets us use the default bitwise copy/assignment
      
      - add empty constructor for iterators. It returns the equivalent to end().
        This lets us do this:
            HashTbl<label>::iterator iter;
            // some time later
            iter = find(Value);
      
      - erase(const HashTbl<AnyType, Key, AnyHash>&) is now more generous.
        Only the Key type matters, not the hashing function.
      946aac50
    • 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
  21. 26 Oct, 2009 1 commit
  22. 13 Aug, 2009 1 commit
  23. 10 Aug, 2009 1 commit
  24. 06 Aug, 2009 1 commit
  25. 23 Jul, 2009 2 commits