Classes | Macros | Typedefs | Functions
qset.h File Reference
#include <stdio.h>
Include dependency graph for qset.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

union  setelemT
 
struct  setT
 

Macros

#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)
 

Typedefs

typedef union setelemT setelemT
 
typedef struct setT setT
 

Functions

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)
 
setTqh_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)
 
setTqh_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)
 
setTqh_setnew (int size)
 
setTqh_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)
 
setTqh_settemp (int setsize)
 
void qh_settempfree (setT **set)
 
void qh_settempfree_all (void)
 
setTqh_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)
 

Macro Definition Documentation

◆ DEFsetT

#define DEFsetT   1

Definition at line 32 of file qset.h.

◆ FOREACHelem_

#define FOREACHelem_ (   set)    FOREACHsetelement_(void, set, elem)

Definition at line 266 of file qset.h.

◆ FOREACHset_

#define FOREACHset_ (   sets)    FOREACHsetelement_(setT, sets, set)

Definition at line 293 of file qset.h.

◆ FOREACHsetelement_

#define FOREACHsetelement_ (   type,
  set,
  variable 
)
Value:
if (((variable= NULL), set)) for (\
variable##p= (type **)&((set)->e[0].p); \
(variable= *variable##p++);)

Definition at line 137 of file qset.h.

◆ FOREACHsetelement_i_

#define FOREACHsetelement_i_ (   type,
  set,
  variable 
)
Value:
if (((variable= NULL), set)) for (\
variable##_i= 0, variable= (type *)((set)->e[0].p), \
variable##_n= qh_setsize(set);\
variable##_i < variable##_n;\
variable= (type *)((set)->e[++variable##_i].p) )
int qh_setsize(setT *set)
Definition: qset.c:1111

Definition at line 170 of file qset.h.

◆ FOREACHsetelementreverse12_

#define FOREACHsetelementreverse12_ (   type,
  set,
  variable 
)
Value:
if (((variable= NULL), set)) for (\
variable##p= (type **)&((set)->e[1].p); \
(variable= *variable##p); \
variable##p == ((type **)&((set)->e[0].p))?variable##p += 2: \
(variable##p == ((type **)&((set)->e[1].p))?variable##p--:variable##p++))

Definition at line 234 of file qset.h.

◆ FOREACHsetelementreverse_

#define FOREACHsetelementreverse_ (   type,
  set,
  variable 
)
Value:
if (((variable= NULL), set)) for (\
variable##temp= qh_setsize(set)-1, variable= qh_setlast(set);\
variable; variable= \
((--variable##temp >= 0) ? SETelemt_(set, variable##temp, type) : NULL))
void * qh_setlast(setT *set)
Definition: qset.c:895
#define SETelemt_(set, n, type)
Definition: qset.h:342
int qh_setsize(setT *set)
Definition: qset.c:1111

Definition at line 203 of file qset.h.

◆ SETaddr_

#define SETaddr_ (   set,
  type 
)    ((type **)(&((set)->e[0].p)))

Definition at line 396 of file qset.h.

◆ SETelem_

#define SETelem_ (   set,
 
)    ((set)->e[n].p)

Definition at line 331 of file qset.h.

◆ SETelemaddr_

#define SETelemaddr_ (   set,
  n,
  type 
)    ((type **)(&((set)->e[n].p)))

Definition at line 353 of file qset.h.

◆ SETelemsize

#define SETelemsize   ((int)sizeof(setelemT))

Definition at line 100 of file qset.h.

◆ SETelemt_

#define SETelemt_ (   set,
  n,
  type 
)    ((type*)((set)->e[n].p))

Definition at line 342 of file qset.h.

◆ SETempty_

#define SETempty_ (   set)    (!set || (SETfirst_(set) ? 0 : 1))

Definition at line 419 of file qset.h.

◆ SETfirst_

#define SETfirst_ (   set)    ((set)->e[0].p)

Definition at line 362 of file qset.h.

◆ SETfirstt_

#define SETfirstt_ (   set,
  type 
)    ((type*)((set)->e[0].p))

Definition at line 371 of file qset.h.

◆ SETindex_

#define SETindex_ (   set,
  elem 
)    ((int)((void **)elem##p - (void **)&(set)->e[1].p))

Definition at line 308 of file qset.h.

◆ SETref_

#define SETref_ (   elem)    (elem##p[-1])

Definition at line 319 of file qset.h.

◆ SETreturnsize_

#define SETreturnsize_ (   set,
  size 
)    (((size)= ((set)->e[(set)->maxsize].i))?(--(size)):((size)= (set)->maxsize))

Definition at line 408 of file qset.h.

◆ SETsecond_

#define SETsecond_ (   set)    ((set)->e[1].p)

Definition at line 380 of file qset.h.

◆ SETsecondt_

#define SETsecondt_ (   set,
  type 
)    ((type*)((set)->e[1].p))

Definition at line 388 of file qset.h.

◆ SETsizeaddr_

#define SETsizeaddr_ (   set)    (&((set)->e[(set)->maxsize]))

Definition at line 433 of file qset.h.

◆ SETtruncate_

#define SETtruncate_ (   set,
  size 
)
Value:
{set->e[set->maxsize].i= size+1; /* maybe overwritten */ \
set->e[size].p= NULL;}

Definition at line 445 of file qset.h.

Typedef Documentation

◆ setelemT

typedef union setelemT setelemT

Definition at line 77 of file qset.h.

◆ setT

typedef struct setT setT

Definition at line 33 of file qset.h.

Function Documentation

◆ qh_setaddnth()

void qh_setaddnth ( setT **  setp,
int  nth,
void *  newelem 
)

Definition at line 61 of file qset.c.

◆ qh_setaddsorted()

void qh_setaddsorted ( setT **  setp,
void *  elem 
)

Definition at line 100 of file qset.c.

◆ qh_setappend()

void qh_setappend ( setT **  setp,
void *  elem 
)

Definition at line 131 of file qset.c.

◆ qh_setappend2ndlast()

void qh_setappend2ndlast ( setT **  setp,
void *  elem 
)

Definition at line 207 of file qset.c.

◆ qh_setappend_set()

void qh_setappend_set ( setT **  setp,
setT setA 
)

Definition at line 163 of file qset.c.

◆ qh_setcheck()

void qh_setcheck ( setT set,
const char *  tname,
unsigned  id 
)

Definition at line 234 of file qset.c.

◆ qh_setcompact()

void qh_setcompact ( setT set)

Definition at line 276 of file qset.c.

◆ qh_setcopy()

setT* qh_setcopy ( setT set,
int  extra 
)

Definition at line 310 of file qset.c.

◆ qh_setdel()

void* qh_setdel ( setT set,
void *  elem 
)

Definition at line 344 of file qset.c.

◆ qh_setdellast()

void* qh_setdellast ( setT set)

Definition at line 384 of file qset.c.

◆ qh_setdelnth()

void* qh_setdelnth ( setT set,
int  nth 
)

Definition at line 424 of file qset.c.

◆ qh_setdelnthsorted()

void* qh_setdelnthsorted ( setT set,
int  nth 
)

Definition at line 465 of file qset.c.

◆ qh_setdelsorted()

void* qh_setdelsorted ( setT set,
void *  newelem 
)

Definition at line 504 of file qset.c.

◆ qh_setduplicate()

setT* qh_setduplicate ( setT set,
int  elemsize 
)

Definition at line 541 of file qset.c.

◆ qh_setendpointer()

void** qh_setendpointer ( setT set)

Definition at line 566 of file qset.c.

◆ qh_setequal()

int qh_setequal ( setT setA,
setT setB 
)

Definition at line 587 of file qset.c.

◆ qh_setequal_except()

int qh_setequal_except ( setT setA,
void *  skipelemA,
setT setB,
void *  skipelemB 
)

Definition at line 629 of file qset.c.

◆ qh_setequal_skip()

int qh_setequal_skip ( setT setA,
int  skipA,
setT setB,
int  skipB 
)

Definition at line 677 of file qset.c.

◆ qh_setfree()

void qh_setfree ( setT **  set)

Definition at line 716 of file qset.c.

◆ qh_setfree2()

void qh_setfree2 ( setT **  setp,
int  elemsize 
)

Definition at line 744 of file qset.c.

◆ qh_setfreelong()

void qh_setfreelong ( setT **  set)

Definition at line 770 of file qset.c.

◆ qh_setin()

int qh_setin ( setT set,
void *  setelem 
)

Definition at line 795 of file qset.c.

◆ qh_setindex()

int qh_setindex ( setT set,
void *  setelem 
)

Definition at line 821 of file qset.c.

◆ qh_setlarger()

void qh_setlarger ( setT **  setp)

Definition at line 855 of file qset.c.

◆ qh_setlast()

void* qh_setlast ( setT set)

Definition at line 895 of file qset.c.

◆ qh_setnew()

setT* qh_setnew ( int  size)

Definition at line 924 of file qset.c.

◆ qh_setnew_delnthsorted()

setT* qh_setnew_delnthsorted ( setT set,
int  size,
int  nth,
int  prepend 
)

Definition at line 967 of file qset.c.

◆ qh_setprint()

void qh_setprint ( FILE *  fp,
const char *  string,
setT set 
)

Definition at line 1049 of file qset.c.

◆ qh_setreplace()

void qh_setreplace ( setT set,
void *  oldelem,
void *  newelem 
)

Definition at line 1080 of file qset.c.

◆ qh_setsize()

int qh_setsize ( setT set)

Definition at line 1111 of file qset.c.

◆ qh_settemp()

setT* qh_settemp ( int  setsize)

Definition at line 1146 of file qset.c.

◆ qh_settempfree()

void qh_settempfree ( setT **  set)

Definition at line 1174 of file qset.c.

◆ qh_settempfree_all()

void qh_settempfree_all ( void  )

Definition at line 1201 of file qset.c.

◆ qh_settemppop()

setT* qh_settemppop ( void  )

Definition at line 1221 of file qset.c.

◆ qh_settemppush()

void qh_settemppush ( setT set)

Definition at line 1247 of file qset.c.

◆ qh_settruncate()

void qh_settruncate ( setT set,
int  size 
)

Definition at line 1275 of file qset.c.

◆ qh_setunique()

int qh_setunique ( setT **  set,
void *  elem 
)

Definition at line 1299 of file qset.c.

◆ qh_setzero()

void qh_setzero ( setT set,
int  idx,
int  size 
)

Definition at line 1327 of file qset.c.



hpp-fcl
Author(s):
autogenerated on Fri Jun 2 2023 02:39:02