slm: OpenCL code base
0.1
|
Streamline trajectory integration kernel and related tracing functions. More...
Go to the source code of this file.
Macros | |
#define | BYTE_REVERSAL(initial_rng_state) |
Byte reversal. More... | |
#define | INITIALIZE_RNG(initial_rng_state) |
Initialize the Lehmer random number generator. More... | |
Functions | |
__kernel void | integrate_trajectory (__global const float2 *seed_point_array, __global const bool *mask_array, __global const float2 *uv_array, __global char2 *trajectories_array, __global ushort *traj_nsteps_array, __global float *traj_length_array, __global uint *slc_array, __global uint *slt_array) |
GPU kernel that drives streamline integration from seed positions given in seed_point_array , controlled by the 'flow' vector field given in uv_array , and either terminated at pixels masked in mask_array or because a streamline exceeds a threshold distance (length or number of integration points) given by parameters stored in info. More... | |
Streamline trajectory integration kernel and related tracing functions.
Fix big-DTM crash issue
Perhaps use compiler directive volatile where variables not const?
Update doc about trajectory integration to describe subpixel seeding & jittering
Definition in file integration.cl.
#define BYTE_REVERSAL | ( | initial_rng_state | ) |
Byte reversal.
Macro to perform byte reversal per GJS's suggestion.
[in,out] | initial_rng_state | RNG state (thus initally the seed) and RNG variate |
Definition at line 25 of file integration.cl.
#define INITIALIZE_RNG | ( | initial_rng_state | ) |
Initialize the Lehmer random number generator.
Macro to scramble the initial RNG state to reduce correlation of neighboring streamline jitters
[in,out] | initial_rng_state | RNG state (thus initally the seed) and RNG variate |
Definition at line 41 of file integration.cl.