volesti
volesti copied to clipboard
No-U-Turn Sampler in HMC
This PR implements the No-U-Turn Sampler (NUTS) in HMC:
-- Implements a new structure for the random walk.
-- Optimizes the number of gradient computations in both HMC and NUTS; it reduces this number to half per step.
-- Implements a new C++ test for NUTS in ./test/logconcave_sampling_test.cpp
, namely benchmark_nuts_hmc
(for both truncated and non-truncated cases).
-- Extends the R interface to expose the NUTS sampler in R.
-- Implements a new R example in ./R-proj/examples/logconcave/nuts_rand_poly.R
.
This PR resolves the issue https://github.com/GeomScale/volesti/issues/123