eg_dijkstra.h File Reference

#include <stdio.h>
#include <limits.h>
#include "eg_mempool.h"
#include "eg_macros.h"
#include "eg_heap.h"
#include "eg_list.h"
#include "eg_dgraph.h"

Include dependency graph for eg_dijkstra.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define EG_DIJ_DIST   0
#define EG_DIJ_ELENGTH   5
#define EG_DIJ_FATHER   2
#define EG_DIJ_HCONNECTOR   4
#define EG_DIJ_MARKER   3
#define EG_DIJ_NDIST   1
#define EG_DIJKSTRA_COST_MAX   EGdijkstraToCost(EGFP_MAX25)
#define EG_DIJKSTRA_COST_TYPE   FP25_TYPE
#define EG_DIJKSTRA_EPSILON   EGdijkstraToCost(0.0000)
#define EG_DIJKSTRA_NEGATIVE_CHECK   0
#define EG_DIJKSTRA_OPTERROR   EGdijkstraToCost(0.0)
#define EGdijkstraCostAdd(a, b)   EGfpAdd25(a,b)
#define EGdijkstraCostDiv(a, b)   EGfpDiv25(a,b)
#define EGdijkstraCostIsLess(a, b)   ((a)<(b))
#define EGdijkstraCostMinus(a)   EGfpMinus25(a)
#define EGdijkstraCostMul(a, b)   EGfpMul25(a,b)
#define EGdijkstraCostSub(a, b)   EGfpSub25(a,b)
#define EGdijkstraCostToLf(a)   fptolf25(a)
#define EGdijkstraGetDist(v, os)   (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_DIST],EGdijkstraCost_t))
#define EGdijkstraGetEdgeLength(e, os)   (EGosGetData(((EGdGraphEdge_t*)(e))->data, os[EG_DIJ_ELENGTH], EGdijkstraCost_t))
#define EGdijkstraGetFather(v, os)   (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_FATHER],EGdGraphEdge_t*))
#define EGdijkstraGetHeapConnector(e, os)   (EGosGetData(((EGdGraphNode_t*)(e))->data, os[EG_DIJ_HCONNECTOR], EGheapConnector_t*))
#define EGdijkstraGetMarker(v, os)   (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_MARKER],unsigned int))
#define EGdijkstraGetNdist(v, os)   (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_NDIST],unsigned int))
#define EGdijkstraSetDist(n, os, d)   EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_DIST],EGdijkstraCost_t,d)
#define EGdijkstraSetEdgeLength(e, os, l)   (EGosSetData(((EGdGraphEdge_t*)(e))->data, os[EG_DIJ_ELENGTH], EGdijkstraCost_t, l))
#define EGdijkstraSetFather(n, os, f)   EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_FATHER],EGdGraphEdge_t*,f)
#define EGdijkstraSetHeapConnector(n, os, h)   EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_HCONNECTOR],EGheapConnector_t*,h)
#define EGdijkstraSetMarker(n, os, m)   EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_MARKER],unsigned int,m)
#define EGdijkstraSetNdist(n, os, d)   EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_NDIST],unsigned int,d)
#define EGdijkstraToCost(a)   lftofp25(a)

Typedefs

typedef EGfp25_t EGdijkstraCost_t

Functions

int EGdijkstraCheckOptimality (EGdGraphNode_t *s, EGdGraphNode_t *t, EGdijkstraCost_t ubound, size_t *os, EGdGraph_t *G)
int EGdijkstraExtractSolution (EGdGraphEdge_t **path, unsigned int *npath, EGdGraphNode_t *s, EGdGraphNode_t *t, size_t *os)
int EGpartialDijkstra (EGdGraphNode_t *s, EGdGraphNode_t *t, EGdijkstraCost_t ubound, size_t *os, EGheap_t *my_heap, EGdGraph_t *G)


Define Documentation

#define EG_DIJ_DIST   0
 

Definition at line 32 of file eg_dijkstra.h.

#define EG_DIJ_ELENGTH   5
 

Definition at line 37 of file eg_dijkstra.h.

#define EG_DIJ_FATHER   2
 

Definition at line 34 of file eg_dijkstra.h.

#define EG_DIJ_HCONNECTOR   4
 

Definition at line 36 of file eg_dijkstra.h.

#define EG_DIJ_MARKER   3
 

Definition at line 35 of file eg_dijkstra.h.

#define EG_DIJ_NDIST   1
 

Definition at line 33 of file eg_dijkstra.h.

#define EG_DIJKSTRA_COST_MAX   EGdijkstraToCost(EGFP_MAX25)
 

Definition at line 127 of file eg_dijkstra.h.

#define EG_DIJKSTRA_COST_TYPE   FP25_TYPE
 

Definition at line 43 of file eg_dijkstra.h.

#define EG_DIJKSTRA_EPSILON   EGdijkstraToCost(0.0000)
 

Definition at line 145 of file eg_dijkstra.h.

#define EG_DIJKSTRA_NEGATIVE_CHECK   0
 

Definition at line 158 of file eg_dijkstra.h.

#define EG_DIJKSTRA_OPTERROR   EGdijkstraToCost(0.0)
 

Definition at line 154 of file eg_dijkstra.h.

#define EGdijkstraCostAdd a,
 )     EGfpAdd25(a,b)
 

Definition at line 119 of file eg_dijkstra.h.

#define EGdijkstraCostDiv a,
 )     EGfpDiv25(a,b)
 

Definition at line 122 of file eg_dijkstra.h.

#define EGdijkstraCostIsLess a,
 )     ((a)<(b))
 

Definition at line 121 of file eg_dijkstra.h.

#define EGdijkstraCostMinus  )     EGfpMinus25(a)
 

Definition at line 126 of file eg_dijkstra.h.

#define EGdijkstraCostMul a,
 )     EGfpMul25(a,b)
 

Definition at line 123 of file eg_dijkstra.h.

#define EGdijkstraCostSub a,
 )     EGfpSub25(a,b)
 

Definition at line 120 of file eg_dijkstra.h.

#define EGdijkstraCostToLf  )     fptolf25(a)
 

Definition at line 124 of file eg_dijkstra.h.

#define EGdijkstraGetDist v,
os   )     (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_DIST],EGdijkstraCost_t))
 

Definition at line 171 of file eg_dijkstra.h.

#define EGdijkstraGetEdgeLength e,
os   )     (EGosGetData(((EGdGraphEdge_t*)(e))->data, os[EG_DIJ_ELENGTH], EGdijkstraCost_t))
 

Definition at line 175 of file eg_dijkstra.h.

#define EGdijkstraGetFather v,
os   )     (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_FATHER],EGdGraphEdge_t*))
 

Definition at line 173 of file eg_dijkstra.h.

#define EGdijkstraGetHeapConnector e,
os   )     (EGosGetData(((EGdGraphNode_t*)(e))->data, os[EG_DIJ_HCONNECTOR], EGheapConnector_t*))
 

Definition at line 176 of file eg_dijkstra.h.

#define EGdijkstraGetMarker v,
os   )     (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_MARKER],unsigned int))
 

Definition at line 174 of file eg_dijkstra.h.

#define EGdijkstraGetNdist v,
os   )     (EGosGetData(((EGdGraphNode_t*)(v))->data,os[EG_DIJ_NDIST],unsigned int))
 

Definition at line 172 of file eg_dijkstra.h.

#define EGdijkstraSetDist n,
os,
 )     EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_DIST],EGdijkstraCost_t,d)
 

Definition at line 165 of file eg_dijkstra.h.

#define EGdijkstraSetEdgeLength e,
os,
 )     (EGosSetData(((EGdGraphEdge_t*)(e))->data, os[EG_DIJ_ELENGTH], EGdijkstraCost_t, l))
 

Definition at line 168 of file eg_dijkstra.h.

#define EGdijkstraSetFather n,
os,
 )     EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_FATHER],EGdGraphEdge_t*,f)
 

Definition at line 164 of file eg_dijkstra.h.

#define EGdijkstraSetHeapConnector n,
os,
 )     EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_HCONNECTOR],EGheapConnector_t*,h)
 

Definition at line 169 of file eg_dijkstra.h.

#define EGdijkstraSetMarker n,
os,
 )     EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_MARKER],unsigned int,m)
 

Definition at line 167 of file eg_dijkstra.h.

#define EGdijkstraSetNdist n,
os,
 )     EGosSetData(((EGdGraphNode_t*)(n))->data,os[EG_DIJ_NDIST],unsigned int,d)
 

Definition at line 166 of file eg_dijkstra.h.

#define EGdijkstraToCost  )     lftofp25(a)
 

Definition at line 125 of file eg_dijkstra.h.


Typedef Documentation

typedef EGfp25_t EGdijkstraCost_t
 

Definition at line 118 of file eg_dijkstra.h.


Function Documentation

int EGdijkstraCheckOptimality EGdGraphNode_t s,
EGdGraphNode_t t,
EGdijkstraCost_t  ubound,
size_t *  os,
EGdGraph_t G
 

Definition at line 214 of file eg_dijkstra.c.

int EGdijkstraExtractSolution EGdGraphEdge_t **  path,
unsigned int *  npath,
EGdGraphNode_t s,
EGdGraphNode_t t,
size_t *  os
 

Definition at line 261 of file eg_dijkstra.c.

int EGpartialDijkstra EGdGraphNode_t s,
EGdGraphNode_t t,
EGdijkstraCost_t  ubound,
size_t *  os,
EGheap_t my_heap,
EGdGraph_t G
 

Definition at line 62 of file eg_dijkstra.c.

Here is the call graph for this function:


Generated on Mon Jan 30 08:50:27 2006 for EGlib by  doxygen 1.4.5