Ejemplo n.º 1
0
void
rangeTest(char *me, double imin, double imax) {
  double omin, omax;
  baneRange *range;
  int i;

  printf("input range (%g,%g) ---------------------\n", imin, imax);
  for (i=1; i<baneRangeLast; i++) {
    range = baneRangeNew(i);
    range->answer(&omin, &omax, imin, imax);
    printf("%s: range %s --> (%g,%g)\n",
           me, range->name, omin, omax);
    range = baneRangeNix(range);
  }
}
Ejemplo n.º 2
0
baneRange *
baneRangeNew(int type) {
  char me[]="baneRangeNew", err[BIFF_STRLEN];
  baneRange *range = NULL;
  
  if (!AIR_IN_OP(baneRangeUnknown, type, baneRangeLast)) {
    sprintf(err, "%s: baneRange %d not valid", me, type);
    biffAdd(BANE, err); return NULL;
  }
  range = (baneRange *)calloc(1, sizeof(baneRange));
  if (!range) {
    sprintf(err, "%s: couldn't allocate baneRange!", me);
    biffAdd(BANE, err); return NULL;
  }
  range->type = type;
  range->center = AIR_NAN;
  switch(type) {
  case baneRangePositive:
    sprintf(range->name, "positive");
    range->answer = _baneRangePositive_Answer;
    break;
  case baneRangeNegative:
    sprintf(range->name, "negative");
    range->answer = _baneRangeNegative_Answer;
    break;
  case baneRangeZeroCentered:
    sprintf(range->name, "zero-centered");
    range->answer = _baneRangeZeroCentered_Answer;
    break;
  case baneRangeAnywhere:
    sprintf(range->name, "anywhere");
    range->answer = _baneRangeAnywhere_Answer;
    break;
  default:
    sprintf(err, "%s: Sorry, baneRange %d not implemented", me, type);
    biffAdd(BANE, err); baneRangeNix(range); return NULL;
  }
  return range;
}