The Tiny HTM Library
Overview

Tiny HTM is a minimal C99 library providing spherical geometry primitives and methods for HTM indexing them. The implementation also exports selection algorithms in its API; these are required by the library implementation but may be more generally useful.

Please refer to the modules tab to see a list of functions and types grouped by area of functionality. In general:

tinyhtm/common.h contains utilities, including a defintion of the error codes used by the library and the means to map those to error messages.
tinyhtm/geometry.h contains types and functions related to spherical geometry, including vectors , spherical coordinates , ellipses and convex polygons . Spherical circles are easily represented as a position and a radius.
tinyhtm/htm.h contains types and functions for HTM indexing of points, circles, ellipses and polygons.
tinyhtm/select.h contains linear time selection algorithms over arrays of doubles, e.g. for finding medians.
tinyhtm/tree.h contains algorithms for determining how many points are inside a region. Points and HTM trees over them are external, allowing these algorithms to operate quickly on very large data sets (billions of points).

The top-level header tinyhtm.h will include all of the above.

To link against the library (which is static), pass -ltinyhtm -lm to the linker.