10#define NEW(p) ((p) = (void *) getmem((long)sizeof *(p)))
11#define FREE(ptr) ((void)(freemem((ptr)), (ptr) = 0))
39 int cmp = xx[i] - yy[i];
40 if (cmp != 0)
return cmp;
void exponent_table_free(exponent_table **E)
const void ** exponent_table_to_array(exponent_table *E)
exponent_table * exponent_table_new(int hint, int nvars)
unsigned int exp_hash(const void *x)
int exp_cmp(const void *x, const void *y)
long exponent_table_put(exponent_table *E, const exponent expon, long value)
int exponent_table_length(exponent_table *E)
long exponent_table_get(exponent_table *E, const exponent expon)
Hash table specialisation for (exponent vector, unsigned long) pairs.
VALGRIND_MAKE_MEM_DEFINED & result(result)
Engine-wide GC allocator surface (getmem / getmem_atomic) and debug-allocation trap.
int Table_length(T *table)
void Table_free(T **table)
const void ** Table_toArray(T *table, void *end)
void * Table_get(T *table, const void *key)
void * Table_put(T *table, const void *key, void *value)
T * Table_new(int hint, int cmp(const void *x, const void *y), unsigned hash(const void *key))