Exemplo n.º 1
0
static void
chart_free(chart c, size_t n)
{
  size_t i;

  for (i=0; i<CHART_SIZE(n); i++)
    free_sihashf(c[i]);

  FREE(c);
}
Exemplo n.º 2
0
static chart
chart_make(size_t n)
{
  size_t  i, nn = CHART_SIZE(n);
  chart   c = MALLOC(nn*sizeof(sihashf));
  
  for (i=0; i<nn; i++) 
    c[i] = NULL;	/* chart cell will be constructed in apply_unary() */ 
  
  return c;
}
Exemplo n.º 3
0
Arquivo: lncky.c Projeto: mjpost/cky
chart
chart_make(size_t n)
{
  size_t  i, left, right, nn = CHART_SIZE(n);
  chart   c = MALLOC(sizeof(struct chart));
  
  c->vertex = MALLOC((n+1)*sizeof(sihashcc));

  for (i = 0; i <= n; i++)
    c->vertex[i] = make_sihashcc(CHART_CELLS);

  c->cell = MALLOC(nn*sizeof(sihashcc));
  
  for (left = 0; left < n; left++)
    for (right = left+1; right <= n; right++) 
      CHART_ENTRY(c, left, right) = 
	make_sihashcc(left+1 == right ? NLABELS : CHART_CELLS);

  return c;
}
Exemplo n.º 4
0
Arquivo: lncky.c Projeto: mjpost/cky
void
chart_free(chart c, size_t n)
{
  size_t i;

  /* vertex cell values will be freed below */
  for (i=0; i<=n; i++) {
    FREE(c->vertex[i]->table);
    FREE(c->vertex[i]);
  }

  for (i = 0; i < CHART_SIZE(n); i++) {
    assert(c->cell[i]);
    free_sihashcc(c->cell[i]);
  }
  
  FREE(c->vertex);
  FREE(c->cell);
  FREE(c);
  FREE_CHART;
}