aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md33
1 files changed, 33 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..3997b26
--- /dev/null
+++ b/README.md
@@ -0,0 +1,33 @@
+CHilbert
+========
+
+This is an implementation of [Compact Hilbert
+Indices](https://doi.org/10.1109/CISIS.2007.16), based on the original by Chris
+Hamilton, but largely rewritten to improve and modernize the code:
+
+ * Header-only C++ 14 library.
+
+ * New bit vector types for avoiding dynamic allocation and/or using statically
+ known sizes, with more generic and standard interfaces.
+
+ * Support for using simple integer types where possible.
+
+ * Comprehensive unit test suite.
+
+ * Cleaned up and refactored code for more clarity and maintainability.
+
+For simple applications that do not require very large or compacted indices,
+the implementation of classic (non-compact) Hilbert Indices is also exposed.
+Simple integer types are supported, so this library can also be used for basic
+Hilbert Curve mapping with up to 64 dimensions without using the more
+sophisticated data types. Two simple example programs are included to
+demonstrate this: one that outputs an SVG file of a 2D Hilbert Curve, and
+another that outputs an OBJ file of a 3D Hilbert Curve.
+
+This implementation derives from the one used in
+[VOLAP](https://doi.org/10.1109/TPDS.2017.2743072) and [The Hilbert
+PDC-tree](https://doi.org/10.1145/2938503.2938549). To avoid confusion with
+the original implementation, this one is uniformly called `chilbert`.
+
+ -- David Robillard <d@drobilla.net>
+