UltraNest
Data Structures | Functions
draw.h File Reference

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_stateultranest_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)
 

Detailed Description

Constrained draw method: RadFriends/MCMC hybrid.

Function Documentation

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).

Parameters
currentpoint to update
memberslive points for RadFriends
nmembersnumber 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 
)
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.

Parameters
currentpoint to update
live_pointslive points for RadFriends
nlive_pointsnumber 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.