2016-07-26 08:09:34 +00:00
|
|
|
#ifndef THICKENINGS_H
|
|
|
|
#define THICKENINGS_H
|
|
|
|
|
2016-11-19 10:16:45 +00:00
|
|
|
#include "bitvec.h"
|
2016-11-20 22:19:08 +00:00
|
|
|
#include "weyl.h"
|
2016-07-26 08:09:34 +00:00
|
|
|
|
|
|
|
#define DEBUG(msg, ...) do{fprintf(stderr, msg, ##__VA_ARGS__); }while(0)
|
|
|
|
|
2017-03-20 08:36:48 +00:00
|
|
|
struct enumeration_info {
|
|
|
|
int size; // the size of the weyl group. We store however only the first size/2 elements
|
|
|
|
bitvec_t *principal_pos;
|
|
|
|
bitvec_t *principal_neg;
|
|
|
|
int *principal_is_slim;
|
|
|
|
void (*callback)(const bitvec_t *, int, const struct enumeration_info *);
|
|
|
|
void *callback_data;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef void (*enumeration_callback)(const bitvec_t *, int, const struct enumeration_info *);
|
|
|
|
typedef struct enumeration_info enumeration_info_t;
|
|
|
|
|
2016-11-19 10:16:45 +00:00
|
|
|
// enumerating balanced thickenings
|
2017-03-20 08:36:48 +00:00
|
|
|
long enumerate_balanced_thickenings(doublequotient_t *dq, enumeration_callback callback, void *callback_data);
|
2016-07-26 08:09:34 +00:00
|
|
|
|
|
|
|
#endif
|