AcouSTO  version 2.0

◆ adapt_integrate()

int adapt_integrate ( unsigned  fdim,
integrand  f,
void *  fdata,
unsigned  dim,
const double *  xmin,
const double *  xmax,
unsigned  maxEval,
double  reqAbsError,
double  reqRelError,
double *  val,
double *  err 
)
1064 {
1065  int ret;
1066  fv_data d;
1067 
1068  if (fdim == 0) return SUCCESS; /* nothing to do */
1069 
1070  d.f = f; d.fdata = fdata;
1071  d.fval1 = (double *) malloc(sizeof(double) * fdim);
1072  if (!d.fval1) {
1073  unsigned i;
1074  for (i = 0; i < fdim; ++i) {
1075  val[i] = 0;
1076  err[i] = HUGE_VAL;
1077  }
1078  return -2; /* ERROR */
1079  }
1080  ret = integrate(fdim, fv, &d, dim, xmin, xmax,
1081  maxEval, reqAbsError, reqRelError, val, err, 0);
1082  free(d.fval1);
1083  return ret;
1084 }
void * fdata
Definition: cubature.c:1045
#define SUCCESS
Definition: cubature.c:109
static int integrate(unsigned fdim, integrand_v f, void *fdata, unsigned dim, const double *xmin, const double *xmax, unsigned maxEval, double reqAbsError, double reqRelError, double *val, double *err, int parallel)
Definition: cubature.c:1000
double * fval1
Definition: cubature.c:1045
Definition: cubature.c:1045
static void fv(unsigned ndim, unsigned npt, const double *x, void *d_, unsigned fdim, double *fval)
Definition: cubature.c:1046
#define malloc(size)
Definition: allocation.h:38
integrand f
Definition: cubature.c:1045