1. 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
  2. 23 Nov, 2009 1 commit
  3. 12 Nov, 2009 1 commit
  4. 04 Nov, 2009 1 commit
  5. 03 Nov, 2009 2 commits
  6. 26 Oct, 2009 1 commit
  7. 13 Aug, 2009 1 commit
  8. 10 Aug, 2009 1 commit
  9. 23 Jul, 2009 2 commits
  10. 25 Jun, 2009 1 commit
  11. 23 Jun, 2009 1 commit
  12. 22 Jun, 2009 2 commits
  13. 18 Jun, 2009 1 commit
  14. 18 May, 2009 1 commit
    • Mark Olesen's avatar
      introduce readList<T> function · a0a9cd33
      Mark Olesen authored
      - Read a bracket-delimited list, or handle a single value as list of size 1.
        Mostly useful for handling command-line arguments.
        eg,
            if (args.options().found("patches"))
            {
                patches = readList<word>(IStringStream(args.options()["patches"])());
            }
        can handle both of these:
            -patches  patch0
            -patches \( patch1 patch2 patch3 \)
      a0a9cd33
  15. 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
  16. 22 Apr, 2009 1 commit
  17. 21 Apr, 2009 1 commit
  18. 16 Mar, 2009 2 commits
  19. 12 Mar, 2009 3 commits
  20. 10 Mar, 2009 1 commit
  21. 04 Mar, 2009 2 commits
    • Mark Olesen's avatar
      96118536
    • Mark Olesen's avatar
      Switched from old hashing functions to use Bob Jenkins' hash routine · 17548296
      Mark Olesen authored
      - If the underlying type is contiguous, FixedList hashes its storage directly.
      - Drop labelPairHash (non-commutative) from fvMeshDistribute since
        FixedList::Hash does the right thing anyhow.
      - Hash<edge> specialization is commutative, without multiplication.
      - Hash<triFace> specialization kept multiplication (but now uLabel).
        There's not much point optimizing it, since it's not used much anyhow.
      
      Misc. changes
      
      - added StaticAssert to NamedEnum.H
      - label.H / uLabel.H : define FOAM_LABEL_MAX, FOAM_ULABEL_MAX with the
        values finally used for the storage.  These can be useful for pre-processor
        checks elsewhere (although I stopped needing them in the meantime).
      17548296
  22. 27 Feb, 2009 4 commits
    • Mark Olesen's avatar
      StaticAssert added · 106d417d
      Mark Olesen authored
      - catch people using silly template sizes for FixedList, PackedList
      106d417d
    • mattijs's avatar
      operator== on result of operator[] behaves weird · 0f7b03e6
      mattijs authored
      0f7b03e6
    • Mark Olesen's avatar
      PackedList iterator bugfix · dbc9b742
      Mark Olesen authored
      - compare iteratorBase == iteratorBase by value, not position
        thus this works
            list[a] == list[b] ...
      
      - compare iterator == iteratorBase and const_iterator == iteratorBase
        by position, not value. The inheritance rules means that this works:
            iter == list.end() ...
        this will compare positions:
            iter == list[5];
        Of course, this will still compare values:
            *iter == list[5];
      dbc9b742
    • 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
  23. 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
  24. 25 Feb, 2009 1 commit
  25. 06 Feb, 2009 1 commit
    • Mark Olesen's avatar
      consistency update · 69918f23
      Mark Olesen authored
      - OSspecific: chmod() -> chMod(), even although it's not used anywhere
      
      - ListOps get subset() and inplaceSubset() templated on BoolListType
      
      - added UList<bool>::operator[](..) const specialization.
        Returns false (actually pTraits<bool>::zero) for out-of-range elements.
        This lets us use List<bool> with lazy evaluation and no noticeable
        change in performance.
      
      - use rcIndex() and fcIndex() wherever possible.
        Could check if branching or modulus is faster for fcIndex().
      
      - UList and FixedList get 'const T* cdata() const' and 'T* data()' members.
        Similar to the STL front() and std::string::data() methods, they return a
        pointer to the first element without needing to write '&myList[0]', recast
        begin() or violate const-ness.
      69918f23
  26. 29 Jan, 2009 3 commits
    • Mark Olesen's avatar
      PackedList - activated lazy evaluation · 1f6733d9
      Mark Olesen authored
      - moving back to original flat addressing in iterators means there is no
        performance issue with using lazy evaluation
      - set() method now has ~0 for a default value.
        We can thus simply write 'set(i) to trun on all of the bits.
        This means we can use it just like labelHashSet::set(i)
      - added flip() method for inverting bits. I don't know where we might need
        it, but the STL has it so we might as well too.
      1f6733d9
    • Mark Olesen's avatar
      PackedList with unsigned template parameter · 55d4fb2e
      Mark Olesen authored
      55d4fb2e
    • Mark Olesen's avatar
      PackedList improvements · 4e56643e
      Mark Olesen authored
      - dropped auto-vivification for now (performance issue), but reworked to
        allow easy reinstatement
      - derived both iterator and const_iterator from iteratorBase and use
        iteratorBase as our proxy for non-const access to the list elements.
        This allows properly chaining assignments:
           list[1] = list[2];
           list[1] = list[2] = 10;
      - assigning iterators from iteratorBase or other iterators works:
           iterator iter = list[20];
      - made template parameter nBits=1 the default
      4e56643e
  27. 28 Jan, 2009 1 commit
    • Mark Olesen's avatar
      PackedList gets count() and trim() methods · 7c739978
      Mark Olesen authored
      - the bit counting is relatively fast:
        under 0.2 seconds for 1M bits counted 1000 times
      
      - trim()'ing the final zero elements tested for a few cases,
        but might need more attention
      7c739978