typedef struct
{
  char *name;
  unsigned long size, available, col;
  char **data;
  unsigned long **values;
} table;

int table_init (table *t, unsigned long size, char *name, int dims);
void single_table_inc (table *t, char *v, unsigned long amt);
void double_table_inc (table *t, char *v,
		       unsigned long amt1, unsigned long amt2);
void long_table_inc (table *t, unsigned long v, unsigned long amt);
void table_info (table *t);
int table_select (table *t, int n, int dim,
		  unsigned long *indexes, unsigned long *scratch);
int table_select_min (table *t, int n, int dim,
		      unsigned long *indexes, unsigned long *scratch);
