An extensible data structure for massive streaming graphs
 All Data Structures Files Functions Variables Typedefs Macros Groups Pages
stinger-internal.h File Reference

Data Structures

struct  stinger_edge
 A single edge in STINGER. More...
struct  stinger_eb
 An edge block in STINGER. More...
struct  stinger_vb
 A vertex block in STINGER. More...
struct  stinger_etype_array
 The edge type array. More...
struct  stinger
 The STINGER data structure. More...
struct  stinger_fragmentation_t
struct  curs
struct  stinger_iterator_internal

Macros

#define EBPOOL_SIZE   (STINGER_MAX_LVERTICES*4)
#define STINGER_FORALL_EB_BEGIN(STINGER_, STINGER_SRCVTX_, STINGER_EBNM_)
#define STINGER_FORALL_EB_END()
#define STINGER_FORALL_EB_MODIFY_BEGIN(STINGER_, STINGER_SRCVTX_, STINGER_EBNM_)
#define STINGER_FORALL_EB_MODIFY_END()

Typedefs

typedef uint64_t eb_index_t

Functions

int stinger_eb_high (const struct stinger_eb *)
int stinger_eb_is_blank (const struct stinger_eb *, int)
int64_t stinger_eb_adjvtx (const struct stinger_eb *, int)
int64_t stinger_eb_weight (const struct stinger_eb *, int)
int64_t stinger_eb_ts (const struct stinger_eb *, int)
int64_t stinger_eb_first_ts (const struct stinger_eb *, int)
int64_t stinger_count_outdeg (struct stinger *G, int64_t v)
struct curs etype_begin (struct stinger_vb *v, int etype)
void update_edge_data (struct stinger *S, struct stinger_eb *eb, uint64_t index, int64_t neighbor, int64_t weight, int64_t ts)
void remove_edge (struct stinger *S, struct stinger_eb *eb, uint64_t index)
void new_ebs (eb_index_t *out, size_t neb, int64_t etype, int64_t from)
void push_ebs (struct stinger *G, size_t neb, eb_index_t *restrict eb)
void stinger_fragmentation (struct stinger *S, uint64_t NV, struct stinger_fragmentation_t *frag)
 Calculate statistics on edge block fragmentation in the graph.

Variables

uint64_t ebpool_tail
struct stinger_ebebpool

Macro Definition Documentation

#define EBPOOL_SIZE   (STINGER_MAX_LVERTICES*4)

Referenced by stinger_new().

#define STINGER_FORALL_EB_BEGIN (   STINGER_,
  STINGER_SRCVTX_,
  STINGER_EBNM_ 
)
Value:
do { \
const struct stinger * stinger__ = (STINGER_); \
const int64_t stinger_srcvtx__ = (STINGER_SRCVTX_); \
if (stinger_srcvtx__ >= 0) { \
const struct stinger_eb * restrict stinger_eb__; \
stinger_eb__ = stinger_edgeblocks (stinger__, stinger_srcvtx__); \
while (stinger_eb__ != ebpool) { \
const struct stinger_eb * restrict STINGER_EBNM_ = stinger_eb__; \
do { \
#define STINGER_FORALL_EB_END ( )
Value:
} while (0); \
stinger_eb__ = stinger_next_eb (stinger__, stinger_eb__); \
} \
} \
} while (0)
#define STINGER_FORALL_EB_MODIFY_BEGIN (   STINGER_,
  STINGER_SRCVTX_,
  STINGER_EBNM_ 
)
Value:
do { \
struct stinger * stinger__ = (STINGER_); \
int64_t stinger_srcvtx__ = (STINGER_SRCVTX_); \
if (stinger_srcvtx__ >= 0) { \
struct stinger_eb * stinger_eb__; \
stinger_eb__ = stinger__->LVA[stinger_srcvtx__].edges; \
while (stinger_eb__ != ebpool) { \
struct stinger_eb * STINGER_EBNM_ = stinger_eb__; \
do { \
#define STINGER_FORALL_EB_MODIFY_END ( )
Value:
} while (0); \
stinger_eb__ = ebpool + stinger_eb__->next; \
} \
} \
} while (0)

Typedef Documentation

typedef uint64_t eb_index_t

Function Documentation

struct curs etype_begin ( struct stinger_vb v,
int  etype 
)
read
void new_ebs ( eb_index_t out,
size_t  neb,
int64_t  etype,
int64_t  from 
)
void push_ebs ( struct stinger G,
size_t  neb,
eb_index_t *restrict  eb 
)
void remove_edge ( struct stinger S,
struct stinger_eb eb,
uint64_t  index 
)
int64_t stinger_count_outdeg ( struct stinger G,
int64_t  v 
)
int64_t stinger_eb_adjvtx ( const struct stinger_eb ,
int   
)
int64_t stinger_eb_first_ts ( const struct stinger_eb ,
int   
)
int stinger_eb_high ( const struct stinger_eb )

References stinger_eb::high.

Referenced by stinger_save_to_file().

int64_t stinger_eb_ts ( const struct stinger_eb ,
int   
)
int64_t stinger_eb_weight ( const struct stinger_eb ,
int   
)
void stinger_fragmentation ( struct stinger S,
uint64_t  NV,
struct stinger_fragmentation_t stats 
)
void update_edge_data ( struct stinger S,
struct stinger_eb eb,
uint64_t  index,
int64_t  neighbor,
int64_t  weight,
int64_t  ts 
)

Variable Documentation

uint64_t ebpool_tail

 

comments powered by Disqus