summaryrefslogtreecommitdiffstats
path: root/hilbert.h
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2015-10-04 13:36:25 -0400
committerTavian Barnes <tavianator@tavianator.com>2015-10-04 13:36:25 -0400
commitf0bc8b8ddbd1ef1041f1249d510bb379903777d5 (patch)
tree4b11e28a59986e5d0e5d83326c1e6dabbefc6a04 /hilbert.h
parentc6ae17f774721875a2833b1138bad9f516a72003 (diff)
downloadkd-forest-f0bc8b8ddbd1ef1041f1249d510bb379903777d5.tar.xz
Add support for Hilbert order.
Diffstat (limited to 'hilbert.h')
-rw-r--r--hilbert.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/hilbert.h b/hilbert.h
new file mode 100644
index 0000000..4628ad6
--- /dev/null
+++ b/hilbert.h
@@ -0,0 +1,31 @@
+/*********************************************************************
+ * kd-forest *
+ * Copyright (C) 2015 Tavian Barnes <tavianator@tavianator.com> *
+ * *
+ * This program is free software. It comes without any warranty, to *
+ * the extent permitted by applicable law. You can redistribute it *
+ * and/or modify it under the terms of the Do What The Fuck You Want *
+ * To Public License, Version 2, as published by Sam Hocevar. See *
+ * the COPYING file or http://www.wtfpl.net/ for more details. *
+ *********************************************************************/
+
+#ifndef HILBERT_H
+#define HILBERT_H
+
+#include <stdint.h>
+
+/**
+ * Compute the point corresponding to the given (compact) Hilbert index.
+ *
+ * @param dimensions
+ * The number of spatial dimensions.
+ * @param extents
+ * The bit depth of each dimension.
+ * @param index
+ * The (compact) Hilbert index of the desired point.
+ * @param[out] point
+ * Will hold the point on the Hilbert curve at index.
+ */
+void hilbert_point(unsigned int dimensions, const unsigned int extents[], uint32_t index, uint32_t point[]);
+
+#endif // HILBERT_H