lintsampler performs linear interpolant sampling to create a set of sample points from a density function. The code uses the evaluation of the density at the two endpoints of 1D interval, or the four corners of a 2D rectangle, or generally the 2k vertices of a dimensional hyperbox (or a series of such hyperboxes, e.g., the cells of a k-dimensional grid) to draw random samples within the hyperbox. lintsampler works by evaluating a given PDF on the nodes of a grid (or grid-like structure, such as a tree); the number of evaluations (and memory occupancy) grows exponentially with the number of dimensions.