Skip to content

ErikMcClure/buntils

Repository files navigation

Bunny Utility Library

This is a collection of miscellaneous utility code used to simplify common tasks in C/C++ programs.

  • Type safe variant object for algebriac types.
  • Allocators with a state
  • Logging
  • Reference counting
  • Generalized linked list manipulation
  • Array-based linked list
  • Threaded red-black tree implementation
  • AVL tree implementation
  • DLL-friendly simplified dynamic array implementation
  • Array-based stack implementation
  • Array-based queue implementation
  • cStr, an extension of the standard std::string object that supports UTF8 conversions and other operations.
  • A single-producer, single-consumer lockless queue
  • A multi-producer, multi-consumer microlock queue
  • Templatized implementations of cmpxchg,xchg,xadd, and other lockless primitives.
  • A template-based hash implementation based on khash
  • Command line parsing
  • Block, ring, and greedy allocation schemes
  • Fixed-size bit-based flag manipulation
  • High precision timer
  • Binary heap implementation
  • Priority queue based on binary heap
  • Priority heap based on Priority Queue that tracks entries to allow implementing Dijkstra's Algorithm
  • #defines to help deal with stupid windows.h conflicts and VC++ deprecated functions
  • Sorted array using a bisection algorithm
  • Map based on sorted array
  • Frighteningly efficient delegate implementation
  • Automatic differentiation with dual numbers
  • Fixed-point arithmetic.
  • Template-based SSE2 objects for automatic SSE optimizations.
  • Alias table for random number generation
  • Generic animation system
  • Circular array implementation
  • Disjoint Set Data Structure that implements Kruskal's minimum spanning tree algorithm.
  • Cross-platform extension to std::thread that allows signaling threads.
  • Stream splitting object using standard buffer implementation.
  • Integral rational data structure for precise fractions.
  • String table for localization.
  • High performance profiler with multiple output options.
  • Multi-consumer multi-producer lockless block allocator.
  • Generalized KD-tree implementation for querying how many rectangles are inside a given rectangle.
  • Implementation of Robert Bridson's Fast Poisson Disk Sampling algorithm.
  • An in-place compressed Trie data structure implementation.
  • Arbitrary scheduler class for delaying actions.
  • Thread pool implementation
  • Implementation of a graph representation that implements the push-relabel algorithm, along with reductions from circulation and lower-bound circulation graph problems.
  • Implements efficient breadth-first traversal of a tree or graph
  • Includes an ID hash system that can be rebased at any time, including a reversal extension.
  • Implements mathematically correct integer and float modulo
  • Includes an n-dimensional vector and matrix math library, with optimized 4x4, 3x3 and 2x2 operations.
  • Implementes the xorshift random number generation algorithm as a standards-compliant engine.
  • AA tree implementation
  • Universal object serializer
  • XML parser and serializer
  • JSON parser and serializer
  • UBJSON parser and serializer
  • INI parser and serializer

About

C/C++ Utility Library

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE
MIT
LICENSE-KHASH

Stars

Watchers

Forks

Packages

No packages published

Languages