/* monte/gsl_monte_plain.h
 * 
 * Copyright (C) 1996, 1997, 1998, 1999, 2000 Michael Booth
 * 
 * Plain Monte-Carlo. 
 * Author: MJB
 */


typedef struct {
  size_t dim;
  double *x;
} gsl_monte_plain_state;

int
gsl_monte_plain_integrate (const gsl_monte_function * f,
                           const double xl[], const double xu[],
                           const size_t dim,
                           const size_t calls, 
                           gsl_rng * r,
                           gsl_monte_plain_state * state,
                           double *result, double *abserr);

gsl_monte_plain_state* gsl_monte_plain_alloc(size_t dim);

int gsl_monte_plain_init(gsl_monte_plain_state* state);

void gsl_monte_plain_free (gsl_monte_plain_state* state);

