Main Page | Alphabetical List | Class List | File List | Class Members | File Members

bary_macros.h File Reference

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

Included by dependency graph

Go to the source code of this file.

Defines

#define C_WEIGHT   256.0
#define BARYTYPE   float
#define BARYTYPECAST   (float)
#define EVAL_BARY(CASEID, VALUE_EXPR)   case CASEID: for (j = 0; j < ((layer[i]).anz); j++) ((sort_array[j])->bary) = (VALUE_EXPR);break;
#define DEFINE_CASES(DIR)
#define PREBLOCK
#define QSORTLAYER()
#define POST(PHASE, SORT_DIR)
#define apply_eval_crossing_to_levels(BARYCASE)
#define PTR2(X, Y)   (X -> Y)
#define GETDIR(X)   (node-> X)
#define GENERICBARY(NAME, DEGREEDIR, NEXTDIR, ANCHOR)
#define GENERICMEDIAN(NAME, DEGREEDIR, NEXTDIR, ANCHOR, OPERATOR)
#define PHASE(NUMBER, DIR, FIRST, SECOND, POSTDATA)
#define BARY_CASE(X)   DEFINE_CASES(X)
#define RESORT_DOWN_LAYER   DEFINE_CASES(pred)
#define RESORT_UP_LAYER   DEFINE_CASES(succ)
#define RESORT_FUNCTION(DIR, DIRECTIONL, DIRECTION2, INDEX, INDEX2)


Define Documentation

#define apply_eval_crossing_to_levels BARYCASE   ) 
 

Value:

{       \
    for (i = phase2_startlevel; i > 0; i--)      {      \
        PREBLOCK                                        \
        BARYCASE                                        \
        check_for_cycles(i);                            \
        POST(2,down_up)                                 \
    }                                                   \
}

Definition at line 41 of file bary_macros.h.

#define BARY_CASE  )     DEFINE_CASES(X)
 

Definition at line 114 of file bary_macros.h.

#define BARYTYPE   float
 

Definition at line 4 of file bary_macros.h.

#define BARYTYPECAST   (float)
 

Definition at line 5 of file bary_macros.h.

#define C_WEIGHT   256.0
 

Definition at line 3 of file bary_macros.h.

#define DEFINE_CASES DIR   ) 
 

Value:

switch(crossing_heuristics) { \
EVAL_BARY(CROSSING_BARY /*0*/,DIR ## bary (sort_array[j]))\
EVAL_BARY(CROSSING_MEDIAN /*1*/,DIR ##median (sort_array[j]))\
EVAL_BARY(CROSSING_BARYMEDIAN /*2*/,DIR ##bary (sort_array[j])+DIR ##median (sort_array[j])/10000.0)\
EVAL_BARY(CROSSING_MEDIANBARY /*3*/,DIR ##median (sort_array[j])+DIR##bary (sort_array[j])/10000.0) }

Definition at line 10 of file bary_macros.h.

#define EVAL_BARY CASEID,
VALUE_EXPR   )     case CASEID: for (j = 0; j < ((layer[i]).anz); j++) ((sort_array[j])->bary) = (VALUE_EXPR);break;
 

Definition at line 8 of file bary_macros.h.

#define GENERICBARY NAME,
DEGREEDIR,
NEXTDIR,
ANCHOR   ) 
 

Value:

STATIC BARYTYPE NAME (GNODE node){                              \
    int Sum;                                                    \
    ADJEDGE w;                                                  \
    if (GETDIR(DEGREEDIR) == 0) return (0.0);                   \
    Sum = 0;                                                    \
    w = GETDIR(NEXTDIR);                                        \
    while (w)                                                   \
    {                                                           \
        Sum += (C_WEIGHT * (PTR2(w->kante,ANCHOR)->position));  \
        Sum += (w->kante->anchor); w = w->next;                 \
    }                                                           \
    return ((BARYTYPECAST Sum) / (BARYTYPECAST (C_WEIGHT * GETDIR(DEGREEDIR))));        \
}

Definition at line 53 of file bary_macros.h.

#define GENERICMEDIAN NAME,
DEGREEDIR,
NEXTDIR,
ANCHOR,
OPERATOR   ) 
 

Definition at line 68 of file bary_macros.h.

#define GETDIR  )     (node-> X)
 

Definition at line 51 of file bary_macros.h.

#define PHASE NUMBER,
DIR,
FIRST,
SECOND,
POSTDATA   ) 
 

Value:

void STATIC phase ## NUMBER ## _ ## DIR () {                                                            \
    int i, j;                                                                                   \
    int cross;                                                                                  \
    gs_wait_message ('B');                                                                      \
    if (phase2_startlevel <= maxdepth)for (i = phase2_startlevel; i <= maxdepth; i++)  {        \
        PREBLOCK;                                                                               \
        FIRST                                                                                   \
        POSTDATA                                                                                        \
    }                                                                                           \
    for (i = 0; (i < phase2_startlevel) && (i <= maxdepth); i++)    {                           \
        PREBLOCK;                                                                               \
        SECOND                                                                                  \
        POSTDATA                                                                                        \
    }                                                                                           \
}

Definition at line 98 of file bary_macros.h.

#define POST PHASE,
SORT_DIR   ) 
 

Value:

QSORTLAYER()                                                                \
            if (cycle_sort_array (((layer[i]).anz))) {                                  \
            array_to_level (i);                                                         \
            if (((layer[i]).resort_necessary))          apply_horder (i);               \
            if (i > 0)          ((tmp_layer[i - 1]).cross) = layer_crossing (i - 1);    \
            if (i <= maxdepth)          ((tmp_layer[i]).cross) = layer_crossing (i);    \
                                                                                        \
            resort_## SORT_DIR ## _layer (i);                                           \
                                                                                        \
            cross = graph_crossings ();                                                 \
            if (cross < nr_crossings){                                                  \
                phase## PHASE ##_startlevel                                             \
                    = i + 1;checkcrossing (cross);return;}                              \
        }

Definition at line 25 of file bary_macros.h.

#define PREBLOCK
 

Value:

if (G_timelimit > 0)if (test_timelimit (60)){gs_wait_message ('t');} \
                  level_to_array (i, 'u');

Definition at line 17 of file bary_macros.h.

#define PTR2 X,
 )     (X -> Y)
 

Definition at line 50 of file bary_macros.h.

 
#define QSORTLAYER  ) 
 

Value:

if (((layer[i]).anz)) qsort (                                                   \
               sort_array, ((layer[i]).anz), sizeof (GNODE),                            \
               (int (*)(const void *, const void *)) compare_bary);

Definition at line 20 of file bary_macros.h.

#define RESORT_DOWN_LAYER   DEFINE_CASES(pred)
 

Definition at line 115 of file bary_macros.h.

#define RESORT_FUNCTION DIR,
DIRECTIONL,
DIRECTION2,
INDEX,
INDEX2   ) 
 

Value:

STATIC int resort_## DIR ##_layer (int i){                                      \
    int c; int j;                                                               \
    level_to_array (INDEX, DIRECTIONL);                                         \
    BARY_CASE(DIRECTION2)                                                               \
    QSORTLAYER()                                                                \
    save_level (INDEX);                                                         \
    array_to_level (INDEX);                                                     \
    if (((layer[INDEX]).resort_necessary)) apply_horder (INDEX);                \
    c = layer_crossing (i);                                                     \
    if (c <= ((tmp_layer[i]).cross)) {                                          \
        ((tmp_layer[i]).cross) = c;                                             \
        if (i > 0) ((tmp_layer[INDEX2]).cross) = layer_crossing (INDEX2);       \
        return (1);                                                             \
    }                                                                           \
    restore_level (INDEX);                                                      \
    return (0);                                                                 \
}

Definition at line 121 of file bary_macros.h.

#define RESORT_UP_LAYER   DEFINE_CASES(succ)
 

Definition at line 116 of file bary_macros.h.


Generated on Sat Aug 6 11:49:20 2005 for VCGIntrospector by doxygen 1.3.6