|  | 
| #define | DEFsetT   1 | 
|  | 
| #define | FOREACHelem_(set)   FOREACHsetelement_(void, set, elem) | 
|  | 
| #define | FOREACHset_(sets)   FOREACHsetelement_(setT, sets, set) | 
|  | 
| #define | FOREACHsetelement_(type,  set,  variable) | 
|  | 
| #define | FOREACHsetelement_i_(type,  set,  variable) | 
|  | 
| #define | FOREACHsetelementreverse12_(type,  set,  variable) | 
|  | 
| #define | FOREACHsetelementreverse_(type,  set,  variable) | 
|  | 
| #define | SETaddr_(set,  type)   ((type **)(&((set)->e[0].p))) | 
|  | 
| #define | SETelem_(set,  n)   ((set)->e[n].p) | 
|  | 
| #define | SETelemaddr_(set,  n,  type)   ((type **)(&((set)->e[n].p))) | 
|  | 
| #define | SETelemsize   ((int)sizeof(setelemT)) | 
|  | 
| #define | SETelemt_(set,  n,  type)   ((type*)((set)->e[n].p)) | 
|  | 
| #define | SETempty_(set)   (!set || (SETfirst_(set) ? 0 : 1)) | 
|  | 
| #define | SETfirst_(set)   ((set)->e[0].p) | 
|  | 
| #define | SETfirstt_(set,  type)   ((type*)((set)->e[0].p)) | 
|  | 
| #define | SETindex_(set,  elem)   ((int)((void **)elem##p - (void **)&(set)->e[1].p)) | 
|  | 
| #define | SETref_(elem)   (elem##p[-1]) | 
|  | 
| #define | SETreturnsize_(set,  size)   (((size)= ((set)->e[(set)->maxsize].i))?(--(size)):((size)= (set)->maxsize)) | 
|  | 
| #define | SETsecond_(set)   ((set)->e[1].p) | 
|  | 
| #define | SETsecondt_(set,  type)   ((type*)((set)->e[1].p)) | 
|  | 
| #define | SETsizeaddr_(set)   (&((set)->e[(set)->maxsize])) | 
|  | 
| #define | SETtruncate_(set,  size) | 
|  | 
|  | 
| void | qh_setaddnth (setT **setp, int nth, void *newelem) | 
|  | 
| void | qh_setaddsorted (setT **setp, void *elem) | 
|  | 
| void | qh_setappend (setT **setp, void *elem) | 
|  | 
| void | qh_setappend2ndlast (setT **setp, void *elem) | 
|  | 
| void | qh_setappend_set (setT **setp, setT *setA) | 
|  | 
| void | qh_setcheck (setT *set, const char *tname, unsigned id) | 
|  | 
| void | qh_setcompact (setT *set) | 
|  | 
| setT * | qh_setcopy (setT *set, int extra) | 
|  | 
| void * | qh_setdel (setT *set, void *elem) | 
|  | 
| void * | qh_setdellast (setT *set) | 
|  | 
| void * | qh_setdelnth (setT *set, int nth) | 
|  | 
| void * | qh_setdelnthsorted (setT *set, int nth) | 
|  | 
| void * | qh_setdelsorted (setT *set, void *newelem) | 
|  | 
| setT * | qh_setduplicate (setT *set, int elemsize) | 
|  | 
| void ** | qh_setendpointer (setT *set) | 
|  | 
| int | qh_setequal (setT *setA, setT *setB) | 
|  | 
| int | qh_setequal_except (setT *setA, void *skipelemA, setT *setB, void *skipelemB) | 
|  | 
| int | qh_setequal_skip (setT *setA, int skipA, setT *setB, int skipB) | 
|  | 
| void | qh_setfree (setT **set) | 
|  | 
| void | qh_setfree2 (setT **setp, int elemsize) | 
|  | 
| void | qh_setfreelong (setT **set) | 
|  | 
| int | qh_setin (setT *set, void *setelem) | 
|  | 
| int | qh_setindex (setT *set, void *setelem) | 
|  | 
| void | qh_setlarger (setT **setp) | 
|  | 
| void * | qh_setlast (setT *set) | 
|  | 
| setT * | qh_setnew (int size) | 
|  | 
| setT * | qh_setnew_delnthsorted (setT *set, int size, int nth, int prepend) | 
|  | 
| void | qh_setprint (FILE *fp, const char *string, setT *set) | 
|  | 
| void | qh_setreplace (setT *set, void *oldelem, void *newelem) | 
|  | 
| int | qh_setsize (setT *set) | 
|  | 
| setT * | qh_settemp (int setsize) | 
|  | 
| void | qh_settempfree (setT **set) | 
|  | 
| void | qh_settempfree_all (void) | 
|  | 
| setT * | qh_settemppop (void) | 
|  | 
| void | qh_settemppush (setT *set) | 
|  | 
| void | qh_settruncate (setT *set, int size) | 
|  | 
| int | qh_setunique (setT **set, void *elem) | 
|  | 
| void | qh_setzero (setT *set, int idx, int size) | 
|  |