generators output

This commit is contained in:
Florian Stecker
2017-03-20 09:36:48 +01:00
parent 7dff4f8365
commit 161d850294
4 changed files with 61 additions and 23 deletions

View File

@@ -8,15 +8,6 @@
#include "weyl.h"
#include "queue.h"
typedef struct {
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, void*);
void *callback_data;
} enumeration_info_t;
/*
This function enumerates all balanced ideals satisfying certain constraints, given by its arguments pos, neg and next_neg
@@ -71,7 +62,7 @@ static long enumerate_tree(const enumeration_info_t *info, const bitvec_t *pos,
if(next_next_neg >= info->size/2) {
// there is no unknown left, so we found a balanced ideal
if(info->callback)
info->callback(&newpos, info->size, info->callback_data);
info->callback(&newpos, info->size, info);
return 1;
}
@@ -154,7 +145,7 @@ static void generate_principal_ideals(doublequotient_t *dq, bitvec_t *pos, bitve
returns the number of balanced ideals
*/
long enumerate_balanced_thickenings(doublequotient_t *dq, void (*callback) (const bitvec_t *, int, void*), void *callback_data)
long enumerate_balanced_thickenings(doublequotient_t *dq, enumeration_callback callback, void *callback_data)
{
long count = 0;
enumeration_info_t info;