Skip to content
Black Sphere Studios utility library for C/C++
C++ C Other
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bss-util
include/bss-util
test
.gitignore
CHANGELOG.md
CONTRIBUTING.md
LICENSE
LICENSE-KHASH
README.md
base.mk
bss-util.mk
bss-util.sln
makefile
pack.bat
test.mk

README.md

Black Sphere Studios 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
You can’t perform that action at this time.