UltraNest
|
Constrained draw method: RadFriends/MCMC hybrid. More...
#include <gsl/gsl_randist.h>
#include <gsl/gsl_rng.h>
#include "common.h"
Go to the source code of this file.
Data Structures | |
struct | ultranest_draw_state |
Functions | |
ultranest_draw_state * | ultranest_draw_init (LikelihoodFunc, const unsigned int ndim, const unsigned int nsteps, const double proposal_scale) |
unsigned int | ultranest_draw_generate_direct (ultranest_draw_state *state, point *current, const point **members, const unsigned int nmembers) |
unsigned int | ultranest_draw_next (ultranest_draw_state *state, point *current, const point **live_points, const unsigned int nlive_points) |
void | ultranest_draw_print_stats (const ultranest_draw_state *state) |
Constrained draw method: RadFriends/MCMC hybrid.
unsigned int ultranest_draw_generate_direct | ( | ultranest_draw_state * | state, |
point * | current, | ||
const point ** | members, | ||
const unsigned int | nmembers | ||
) |
Draw from Cube directly, reject points via RadFriends (optional).
current | point to update |
members | live points for RadFriends |
nmembers | number of live points |
Set nmembers = 0 to draw from Cube without using RadFriends.
References point::coords, ultranest_draw_state::ndim, ultranest_draw_state::ndirect, point::phys_coords, ultranest_draw_state::region_high, ultranest_draw_state::region_low, and ultranest_draw_state::rng.
Referenced by ultranest_draw_next(), and ultranest_sampler_init().
ultranest_draw_state* ultranest_draw_init | ( | LikelihoodFunc | , |
const unsigned int | ndim, | ||
const unsigned int | nsteps, | ||
const double | proposal_scale | ||
) |
Create the RadFriends/MCMC hybrid drawing method
For use with ultranest_sampler_init.
proposal_scale | Initial guess on the size of the proposal. Is calibrated on first MCMC chain. Use 1 or pow(2, 1./ndim) |
See ultranest for documentation on the other parameters.
References ultranest_draw_state::maxdistance, ultranest_draw_state::mcmc_naccepts, ultranest_draw_state::mcmc_naccepts_total, ultranest_draw_state::mcmc_nrejects, ultranest_draw_state::mcmc_nrejects_total, ultranest_draw_state::mcmc_nskip, ultranest_draw_state::ndim, ultranest_draw_state::ndirect, ultranest_draw_state::ndirect_accepts, ultranest_draw_state::nfriends, ultranest_draw_state::nfriends_accepts, ultranest_draw_state::niter, ultranest_draw_state::nsteps, ultranest_draw_state::phase, ultranest_draw_state::proposal_scale, ultranest_draw_state::region_high, ultranest_draw_state::region_low, and ultranest_draw_state::rng.
Referenced by ultranest().
unsigned int ultranest_draw_next | ( | ultranest_draw_state * | state, |
point * | current, | ||
const point ** | live_points, | ||
const unsigned int | nlive_points | ||
) |
Draw a new point using the hybrid RadFriends/MCMC method.
current | point to update |
live_points | live points for RadFriends |
nlive_points | number of live points |
Automatically switches over to MCMC when RadFriends becomes excessively inefficient.
References point::L, ultranest_draw_state::maxdistance, ultranest_draw_state::mcmc_naccepts_total, ultranest_draw_state::ndim, ultranest_draw_state::nfriends, ultranest_draw_state::nfriends_accepts, ultranest_draw_state::niter, ultranest_draw_state::nsteps, ultranest_draw_state::phase, point::phys_coords, ultranest_draw_state::region_high, ultranest_draw_state::region_low, and ultranest_draw_generate_direct().
Referenced by ultranest_sampler_next().
void ultranest_draw_print_stats | ( | const ultranest_draw_state * | state | ) |
Print some statistics on the performance of the MCMC proposal.
References ultranest_draw_state::mcmc_naccepts_total, ultranest_draw_state::mcmc_nrejects_total, and ultranest_draw_state::mcmc_nskip.