File size: 843 Bytes
eec8d8f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#pragma once

/**

 * Hilbert encode 3D points

 *

 * @param x [N] tensor containing the x coordinates

 * @param y [N] tensor containing the y coordinates

 * @param z [N] tensor containing the z coordinates

 *

 * @return [N] tensor containing the z-order encoded values

 */
__global__ void hilbert_encode_cuda(

    size_t N,

    const uint32_t* x,

    const uint32_t* y,

    const uint32_t* z,

    uint32_t* codes

);


/**

 * Hilbert decode 3D points

 *

 * @param codes [N] tensor containing the z-order encoded values

 * @param x [N] tensor containing the x coordinates

 * @param y [N] tensor containing the y coordinates

 * @param z [N] tensor containing the z coordinates

 */
__global__ void hilbert_decode_cuda(

    size_t N,

    const uint32_t* codes,

    uint32_t* x,

    uint32_t* y,

    uint32_t* z

);