From f0bc8b8ddbd1ef1041f1249d510bb379903777d5 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 4 Oct 2015 13:36:25 -0400 Subject: Add support for Hilbert order. --- hilbert.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 hilbert.h (limited to 'hilbert.h') 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 * + * * + * 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 + +/** + * 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 -- cgit v1.2.3