openmpi  3.1.6
About: Open MPI is a high performance Message Passing Interface (MPI) library project combining technologies and resources from several other projects (FT-MPI, LA-MPI, LAM/MPI, and PACX-MPI) in order to build the best MPI library available. 3.x series.
  Fossies Dox: openmpi-3.1.6.tar.bz2  ("unofficial" and yet experimental doxygen-generated source code documentation)  

fibo.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  FiboLink_
 NAME : fibo.h
More...
 
struct  FiboNode_
 
struct  FiboTree_
 

Macros

#define fiboTreeLinkAfter(o, n)
 
#define fiboTreeUnlink(n)
 
#define fiboTreeAddMacro(t, n)
 
#define fiboTreeMinMacro(t)   (fiboTreeConsolidate (t))
 
#define fiboTreeCutChildren(t, n)
 
#define fiboTreeDelMacro(t, n)
 
#define fiboTreeAdd   fiboTreeAddMacro
 
#define static
 

Typedefs

typedef struct FiboLink_ FiboLink
 NAME : fibo.h
More...
 
typedef struct FiboNode_ FiboNode
 
typedef struct FiboTree_ FiboTree
 

Functions

int fiboTreeInit (FiboTree *const, int(*)(const FiboNode *const, const FiboNode *const))
 
void fiboTreeExit (FiboTree *const)
 
void fiboTreeFree (FiboTree *const)
 
FiboNodefiboTreeConsolidate (FiboTree *const)
 
void fiboTreeDel (FiboTree *const, FiboNode *const)
 
FiboNodefiboTreeMin (FiboTree *const)
 

Macro Definition Documentation

◆ fiboTreeAdd

#define fiboTreeAdd   fiboTreeAddMacro

Definition at line 180 of file fibo.h.

◆ fiboTreeAddMacro

#define fiboTreeAddMacro (   t,
  n 
)
Value:
do { \
(n)->pareptr = NULL; \
(n)->chldptr = NULL; \
(n)->deflval = 0; \
fiboTreeLinkAfter (&((t)->rootdat), (n)); \
} while (0)

Definition at line 119 of file fibo.h.

◆ fiboTreeCutChildren

#define fiboTreeCutChildren (   t,
  n 
)
Value:
do { \
FiboNode * chldptr; \
chldptr = (n)->chldptr; \
if (chldptr != NULL) { \
FiboNode * cendptr; \
cendptr = chldptr; \
do { \
FiboNode * nextptr; \
nextptr = chldptr->linkdat.nextptr; \
chldptr->pareptr = NULL; \
fiboTreeLinkAfter (&((t)->rootdat), chldptr); \
chldptr = nextptr; \
} while (chldptr != cendptr); \
} \
} while (0)

Definition at line 128 of file fibo.h.

◆ fiboTreeDelMacro

#define fiboTreeDelMacro (   t,
  n 
)
Value:
do { \
FiboNode * pareptr; \
FiboNode * rghtptr; \
pareptr = (n)->pareptr; \
fiboTreeUnlink (n); \
fiboTreeCutChildren ((t), (n)); \
if (pareptr == NULL) \
break; \
rghtptr = (n)->linkdat.nextptr; \
while (1) { \
FiboNode * gdpaptr; \
int deflval; \
deflval = pareptr->deflval - 2; \
pareptr->deflval = deflval | 1; \
gdpaptr = pareptr->pareptr; \
pareptr->chldptr = (deflval <= 1) ? NULL : rghtptr; \
if (((deflval & 1) == 0) || (gdpaptr == NULL)) \
break; \
rghtptr = pareptr->linkdat.nextptr; \
fiboTreeUnlink (pareptr); \
pareptr->pareptr = NULL; \
fiboTreeLinkAfter (&((t)->rootdat), pareptr); \
pareptr = gdpaptr; \
} \
} while (0)

Definition at line 144 of file fibo.h.

◆ fiboTreeLinkAfter

#define fiboTreeLinkAfter (   o,
  n 
)
Value:
do { \
FiboNode * nextptr; \
nextptr = (o)->linkdat.nextptr; \
(n)->linkdat.nextptr = nextptr; \
(n)->linkdat.prevptr = (o); \
nextptr->linkdat.prevptr = (n); \
(o)->linkdat.nextptr = (n); \
} while (0)

Definition at line 105 of file fibo.h.

◆ fiboTreeMinMacro

#define fiboTreeMinMacro (   t)    (fiboTreeConsolidate (t))

Definition at line 126 of file fibo.h.

◆ fiboTreeUnlink

#define fiboTreeUnlink (   n)
Value:
do { \
(n)->linkdat.prevptr->linkdat.nextptr = (n)->linkdat.nextptr; \
(n)->linkdat.nextptr->linkdat.prevptr = (n)->linkdat.prevptr; \
} while (0)

Definition at line 114 of file fibo.h.

◆ static

#define static

Definition at line 185 of file fibo.h.

Typedef Documentation

◆ FiboLink

typedef struct FiboLink_ FiboLink

NAME : fibo.h

AUTHOR : Francois PELLEGRINI
FUNCTION : This module contains the definitions of the generic Fibonacci trees.
DATES : # Version 1.0 : from : 01 may 2010
to 12 may 2010
NOTES : # Since this module has originally been designed as a gain keeping data
structure for local optimization
algorithms, the computation of the
best node is only done when actually
searching for it.
This is most useful when many
insertions and deletions can take
place in the mean time. This is why
this data structure does not keep
track of the best node, unlike most
implementations do.

◆ FiboNode

typedef struct FiboNode_ FiboNode

◆ FiboTree

typedef struct FiboTree_ FiboTree

Function Documentation

◆ fiboTreeConsolidate()

◆ fiboTreeDel()

void fiboTreeDel ( FiboTree * const  ,
FiboNode * const   
)

◆ fiboTreeExit()

void fiboTreeExit ( FiboTree * const  )

Definition at line 109 of file fibo.c.

References FiboTree_::degrtab, memFree, and NULL.

Referenced by PQ_exit().

◆ fiboTreeFree()

void fiboTreeFree ( FiboTree * const  )

Definition at line 125 of file fibo.c.

References FiboNode_::linkdat, FiboLink_::nextptr, FiboLink_::prevptr, and FiboTree_::rootdat.

Referenced by PQ_free().

◆ fiboTreeInit()

int fiboTreeInit ( FiboTree * const  ,
int(*)(const FiboNode *const, const FiboNode *const)   
)

◆ fiboTreeMin()

FiboNode* fiboTreeMin ( FiboTree * const  )

Definition at line 232 of file fibo.c.

References fiboTreeMinMacro.

Referenced by PQ_deleteMaxElement(), and PQ_findMaxElement().

n
default Unknown flag passed to ADIOI_HFS_Fcntl n
Definition: ad_hfs_fcntl.c:110
NULL
#define NULL
Copyright (C) 2000-2004 by Etnus, LLC.
Definition: ompi_msgq_dll.c:136