|  | 
| #define | DEFqhT   1 | 
|  | 
| #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_(qh,  type,  set,  variable) | 
|  | 
| #define | FOREACHsetelementreverse12_(type,  set,  variable) | 
|  | 
| #define | FOREACHsetelementreverse_(qh,  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 (qhT *qh, setT **setp, int nth, void *newelem) | 
|  | 
| void | qh_setaddsorted (qhT *qh, setT **setp, void *elem) | 
|  | 
| void | qh_setappend (qhT *qh, setT **setp, void *elem) | 
|  | 
| void | qh_setappend2ndlast (qhT *qh, setT **setp, void *elem) | 
|  | 
| void | qh_setappend_set (qhT *qh, setT **setp, setT *setA) | 
|  | 
| void | qh_setcheck (qhT *qh, setT *set, const char *tname, unsigned id) | 
|  | 
| void | qh_setcompact (qhT *qh, setT *set) | 
|  | 
| setT * | qh_setcopy (qhT *qh, setT *set, int extra) | 
|  | 
| void * | qh_setdel (setT *set, void *elem) | 
|  | 
| void * | qh_setdellast (setT *set) | 
|  | 
| void * | qh_setdelnth (qhT *qh, setT *set, int nth) | 
|  | 
| void * | qh_setdelnthsorted (qhT *qh, setT *set, int nth) | 
|  | 
| void * | qh_setdelsorted (setT *set, void *newelem) | 
|  | 
| setT * | qh_setduplicate (qhT *qh, 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 (qhT *qh, setT **set) | 
|  | 
| void | qh_setfree2 (qhT *qh, setT **setp, int elemsize) | 
|  | 
| void | qh_setfreelong (qhT *qh, setT **set) | 
|  | 
| int | qh_setin (setT *set, void *setelem) | 
|  | 
| int | qh_setindex (setT *set, void *setelem) | 
|  | 
| void | qh_setlarger (qhT *qh, setT **setp) | 
|  | 
| void * | qh_setlast (setT *set) | 
|  | 
| setT * | qh_setnew (qhT *qh, int size) | 
|  | 
| setT * | qh_setnew_delnthsorted (qhT *qh, setT *set, int size, int nth, int prepend) | 
|  | 
| void | qh_setprint (qhT *qh, FILE *fp, const char *string, setT *set) | 
|  | 
| void | qh_setreplace (qhT *qh, setT *set, void *oldelem, void *newelem) | 
|  | 
| int | qh_setsize (qhT *qh, setT *set) | 
|  | 
| setT * | qh_settemp (qhT *qh, int setsize) | 
|  | 
| void | qh_settempfree (qhT *qh, setT **set) | 
|  | 
| void | qh_settempfree_all (qhT *qh) | 
|  | 
| setT * | qh_settemppop (qhT *qh) | 
|  | 
| void | qh_settemppush (qhT *qh, setT *set) | 
|  | 
| void | qh_settruncate (qhT *qh, setT *set, int size) | 
|  | 
| int | qh_setunique (qhT *qh, setT **set, void *elem) | 
|  | 
| void | qh_setzero (qhT *qh, setT *set, int idx, int size) | 
|  |