AdaptiveSampling.jl is a Julia library to adaptively sample a given function.
For most users, the core functionality of the library can be accessed by calling
the sample function.
x, y = sample(f, a, b)where f is the function that you want to sample over the interval [a, b].
The sample function will adaptively subdivide the [a, b] interval to
accurately sample f with as little points as possible. Usage of sample over
a simple uniform grid is noticeable for the cases where the function has very
quick variations over a small sub-interval, and when f is expensive to
evaluate.
sample additional takes as keyword arguments tol, which sets the desired
tolerance to determine convergence of the sampling, and maxsamples which sets
the maximum number of samples to take before aborting.
Finally, a third optional argument can be passed to sample to determine the
choice of adaptive subdivision algorithm. See documentation for different
built-in options and for instructions on how to define a custom algorithm.