diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2015-10-04 13:36:25 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2015-10-04 13:36:25 -0400 |
commit | f0bc8b8ddbd1ef1041f1249d510bb379903777d5 (patch) | |
tree | 4b11e28a59986e5d0e5d83326c1e6dabbefc6a04 /hilbert.h | |
parent | c6ae17f774721875a2833b1138bad9f516a72003 (diff) | |
download | kd-forest-f0bc8b8ddbd1ef1041f1249d510bb379903777d5.tar.xz |
Add support for Hilbert order.
Diffstat (limited to 'hilbert.h')
-rw-r--r-- | hilbert.h | 31 |
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 |