m2.alobe/src/distance.h
glenux 5ca782e8b1 alobe: inital import (test).
git-svn-id: https://websvn.glenux.net/svn/Upoc/alobe/trunk@1348 eaee96b3-f302-0410-b096-c6cfd47f7835
2009-05-02 07:36:25 +00:00

60 lines
1.2 KiB
C

/* vim: set sw=4 ts=4 si et: */
#ifndef _DISTANCE_H
#define _DISTANCE_H
#include "config.h"
#include "store.h"
#include "fifo.h"
typedef struct {
float average;
nodeindex_t cc_size;
nodeindex_t maximum;
Fifo_t * visited_nodes;
} distance_computation_t;
typedef enum {
MODE_UNDEF,
MODE_MAX_AND_AVERAGE,
MODE_MAX_DISTRIBUTION,
MODE_EVOLUTION,
MODE_SHOW_LIMIT_INF,
MODE_SHOW_LIMIT_SUP,
MODE_DEFI
} distance_mode_t ;
typedef struct {
Config_io_t * _io;
distance_mode_t _mode;
Store_t * _store;
int _iterations;
nodeindex_t _size;
nodeindex_t _root;
// Fifo_t * _fifo;
} Distance_t ;
Distance_t * distance_create (Config_io_t * io, nodeindex_t size);
void distance_compute(Distance_t * distance);
void distance_destroy (Distance_t * distance);
distance_computation_t * distance_all_from_one_node(
Distance_t * distance,
nodeindex_t cc_root,
int iteration);
void distance_set_root(Distance_t * distance, nodeindex_t rootidx);
void distance_set_mode(Distance_t * distance, distance_mode_t mode);
nodeindex_t distance_width (Distance_t * distance, Fifo_t * fifo_visit);
void distance_set_iterations(Distance_t * distance, int iterations);
#endif