AcouSTO  version 2.0

◆ alloc_rule_pts()

static int alloc_rule_pts ( rule r,
unsigned  num_regions 
)
static
252 {
253  if (num_regions > r->num_regions) {
254  free(r->pts);
255  r->pts = r->vals = NULL;
256  r->num_regions = 0;
257  num_regions *= 2; /* allocate extra so that
258  repeatedly calling alloc_rule_pts with
259  growing num_regions only needs
260  a logarithmic number of allocations */
261  r->pts = (double *) malloc(sizeof(double) *
262  (num_regions
263  * r->num_points * (r->dim + r->fdim)));
264  if (r->fdim + r->dim > 0 && !r->pts) return FAILURE;
265  r->vals = r->pts + num_regions * r->num_points * r->dim;
266  r->num_regions = num_regions;
267  }
268  return SUCCESS;
269 }
#define SUCCESS
Definition: cubature.c:109
unsigned num_regions
Definition: cubature.c:235
unsigned num_points
Definition: cubature.c:234
double * vals
Definition: cubature.c:237
unsigned dim
Definition: cubature.c:233
double * pts
Definition: cubature.c:236
unsigned fdim
Definition: cubature.c:233
#define malloc(size)
Definition: allocation.h:38
#define FAILURE
Definition: cubature.c:110