These functions added in raytrace.h define, as per my conversation with Sean on IRC, an api around accessing ray bundles with both (a) a reasonable current implementation and (b) the ability to change the way that ray bundles are stored internally. The api functions are intentionally named differently from the existing functions/structures, and do not replace them in the file, as those structures will need to be maintained according to the deprecation policy states. The additions to raytrace.h describe the public api around generators, including a few functions to access chunks of rays from the bundle both linearly and in parallel. The private api (to be used only in mkbundle.c) contains another function: /** * Ray bundle generators sometimes have to compute multiple rays from * a bundle in order to compute a single ray (e.g., rt_gen_stencil). * In this case, they can call bundle_add_cache_entry to add the * "extra" rays to the bundle cache, making future accesses efficient. * If caching has been disabled by the application, this is * essentially a noop. */ HIDDEN int bundle_add_cache_entry(int n, ray_bundle_generator *gen);