Example #1
0
/* HTS_Window_load: load dynamic windows */
static void HTS_Window_load(HTS_Window * win, FILE ** fp, int size)
{
   int i, j;
   int fsize, length;
   char buff[HTS_MAXBUFLEN];

   win->size = size;
   win->l_width = (int *) HTS_calloc(win->size, sizeof(int));
   win->r_width = (int *) HTS_calloc(win->size, sizeof(int));
   win->coefficient = (double **) HTS_calloc(win->size, sizeof(double *));
   /* set delta coefficents */
   for (i = 0; i < win->size; i++) {
      HTS_get_token(fp[i], buff);
      fsize = atoi(buff);
      /* read coefficients */
      win->coefficient[i] = (double *) HTS_calloc(fsize, sizeof(double));
      for (j = 0; j < fsize; j++) {
         HTS_get_token(fp[i], buff);
         win->coefficient[i][j] = strtod_c(buff,NULL);
      }
      /* set pointer */
      length = fsize / 2;
      win->coefficient[i] += length;
      win->l_width[i] = -length;
      win->r_width[i] = length;
      if (fsize % 2 == 0)
         win->r_width[i]--;
   }
   /* calcurate max_width to determine size of band matrix */
   win->max_width = 0;
   for (i = 0; i < win->size; i++) {
      if (win->max_width < abs(win->l_width[i]))
         win->max_width = abs(win->l_width[i]);
      if (win->max_width < abs(win->r_width[i]))
         win->max_width = abs(win->r_width[i]);
   }
}
Example #2
0
float strtof_c(const char *nptr, char **endptr)
{
  return (float) strtod_c(nptr, endptr);
}