Skip to content
/ tlx Public
forked from tlx/tlx

Collection of Sophisticated C++ Data Structures, Algorithms, and Miscellaneous Helpers

License

Notifications You must be signed in to change notification settings

songhtdo/tlx

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tlx - Collection of C++ Data Structures, Algorithms, and Miscellaneous Helpers

tlx is a collection of C++ helpers and extensions universally needed, but not found in the STL.The most important design goals and conventions are:

  • high modularity with as little dependencies between modules as possible.
  • attempt to never break existing interfaces.
  • compile on all platforms with C++ – smartphones, supercomputers, windows, etc.
  • zero external dependencies: no additional libraries are required.
  • warning and bug-freeness on all compilers.
  • keep overhead down – small overall size such that is can be included without bloating applications.

--->> Doxygen Documentation <<---

Build Status Build status Coverage Status

List of the most commonly used components:

  • CountingPtr – an intrusive reference counting pointer
  • die() - Simple Invariant Testing : die(), die_unless(), die_if(), die_unequal().
  • logger.hpp : LOG, LOG1, LOGC, sLOG.
  • Miscellaneous: unused(), vector_free().
  • Algorithms : merge_combine(), exclusive_scan(), multiway_merge(), parallel_multiway_merge(), multisequence_selection(), multisequence_partition().
  • Data Structures : RingBuffer, SimpleVector, B+ Trees, Loser Trees, RadixHeap, (Addressable) D-Ary Heap
  • Defines and Macros : TLX_LIKELY, TLX_UNLIKELY, TLX_ATTRIBUTE_PACKED, TLX_ATTRIBUTE_ALWAYS_INLINE, TLX_ATTRIBUTE_FORMAT_PRINTF, TLX_DEPRECATED_FUNC_DEF.
  • Message Digests : MD5, md5_hex(), SHA1, sha1_hex(), SHA256, sha256_hex(), SHA512, sha512_hex().
  • Math Functions : integer_log2_floor(), is_power_of_two(), round_up_to_power_of_two(), round_down_to_power_of_two(), ffs(), clz(), abs_diff(), bswap32(), bswap64(), popcount(), Aggregate, PolynomialRegression.
  • String Algorithms : starts_with(), ends_with(), contains(), contains_word(), trim(), replace_all(), erase_all(), join(), split(), split_words(), union_words(), split_quoted(), join_quoted(), to_lower(), hexdump(), word_wrap(), escape_html(), parse_si_iec_units(), format_iec_units(), ssprintf(), expand_environment_variables(), levenshtein(), hash_djb2(), hash_sdbm().
  • Meta-Template Programming : call_foreach(), apply_tuple(), vmap_foreach(), Log2Floor, FunctionChain, FunctionStack, is_std_pair, is_std_tuple, is_std_vector, is_std_array, TLX_MAKE_HAS_MEMBER.
  • Sorting Algorithms : sort_strings() (using radix sort and multikey quicksort), parallel_mergesort() (experimental parallel mergesort from MCSTL).
  • Backtrace Printing : print_cxx_backtrace().
  • Command Line Parsing : CmdlineParser.
  • Fast Delegates : Delegate - a better std::function<> replacement.
  • SipHash : simple string hashing siphash()
  • StackAllocator : stack-local allocations
  • Threading : ThreadPool, Semaphore.

About

Collection of Sophisticated C++ Data Structures, Algorithms, and Miscellaneous Helpers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.1%
  • CMake 1.9%
  • Perl 1.5%
  • Gnuplot 1.4%
  • Shell 0.1%