m2.alobe/src/degenerator.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

52 lines
1 KiB
C

/* vim: set sw=4 ts=4 si et: */
#ifndef _DEGENERATOR_H
#define _DEGENERATOR_H
#include "config.h"
#include "store.h"
#include "list.h"
typedef enum {
DEGENERATOR_SELECT_RANDOM = 0,
DEGENERATOR_SELECT_MAX_DEG = 1
} Degenerator_select_mode_t;
typedef struct _Degenerator_t {
Config_io_t * _io;
int _iterations;
int _iterations_offset;
Store_t * _store;
nodeindex_t _size;
Degenerator_select_mode_t _select_mode;
} Degenerator_t ;
typedef nodeindex_t (* Degenerator_select_fun_t)(Degenerator_t * degenerator);
Degenerator_t * degenerator_create (Config_io_t * io, nodeindex_t n_count, int iterations);
void degenerator_destroy (Degenerator_t * distance);
nodeindex_t degenerator_select_random (Degenerator_t * degenerator);
nodeindex_t degenerator_select_max_deg (Degenerator_t * degenerator);
static Degenerator_select_fun_t degenerator_select_mode_table[] = {
degenerator_select_random,
degenerator_select_max_deg
};
void degenerator_set_select_mode (Degenerator_t * degenerator, Degenerator_select_mode_t mode);
#endif