Mathematics: Low Level

Template classes to provide 2D, 3D, and 4D array access and allow either the memory to be created by the class or the memory to be passed in but owned by the caller. The objects are stored in contiguous memory. The classes minimize the number of number of new and delete calls to the memory allocator.
Implementations of atomic minimum and atomic maximum computations, which are based on std::atomic_compare_exchange_strong.
Support for creating hash functions to be used by std::unordered_map and std::unordered_set.
Template classes to provide 2D array access that conforms to row-major order or column-major order, whichever the user selects via a Boolean template parameter.
The source code uses a logging system to wrap exception handling.
Implementatino of a priority queue with the additional behavior that non-root heap nodes can have their weights modified followed by an update that restores the heap to a min-heap. This is useful in several geometric algorithms. The comments in the header file provide more details and an example use in a geometric algorithm.
The function gte::reverse supports reverse iteration in range-based for-loops using the auto keyword.
Comparison operators for std::shared_ptr. C++ shared pointers already have comparison operators, but the comparision is for the pointer values themselves. The operators provided here compare the objects referenced by the pointers.
Sorting points in a circular manner about a center point.
Utilities for converting between narrow and wide strings and for converting to lower case or to upper case.
A simple wrapper for a std::map using a std::mutex to guard against concurrent access. The D3D11 engine uses this with a bridge pattern to store resources created potentially in different threads.
A simple wrapper for a std::queue using a std::mutex to guard against concurrent access. This is used for a producer-consumer model in resource management.
Encapsulation of a 64-bit timer for performance measurements.
Comparison operators for std::weak_ptr. C++ weak pointers do not have comparison operators. The operators provided here compare the objects referenced by the pointers.