Compare commits

...

1 Commits

Author SHA1 Message Date
Florian Stecker
93207ff694 .gitignore pdf files and list length profile 2022-06-13 11:19:54 +02:00
3 changed files with 291 additions and 276 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
*.o *.o
*.pdf
enumerate enumerate
idealbounds idealbounds
graph graph

View File

@ -7,7 +7,7 @@ SPECIAL_OPTIONS=-O3 -flto -funroll-loops -Winline
OPTIONS=-m64 -march=native -std=gnu99 -D_GNU_SOURCE $(SPECIAL_OPTIONS) OPTIONS=-m64 -march=native -std=gnu99 -D_GNU_SOURCE $(SPECIAL_OPTIONS)
NAME=enumerate-balanced-ideals NAME=enumerate-balanced-ideals
all: enumerate graph D2n dominant_weights all: enumerate graph
$(NAME).tar.bz2: $(NAME) $(HEADERS) enumerate.c weyl.c thickenings.c $(NAME).tar.bz2: $(NAME) $(HEADERS) enumerate.c weyl.c thickenings.c
tar cjhf $(NAME).tar.bz2 $(NAME)/enumerate.c $(NAME)/weyl.c $(NAME)/thickenings.c $(NAME)/weyl.h $(NAME)/thickenings.h $(NAME)/queue.h $(NAME)/bitvec.h $(NAME)/Makefile $(NAME)/graph.c tar cjhf $(NAME).tar.bz2 $(NAME)/enumerate.c $(NAME)/weyl.c $(NAME)/thickenings.c $(NAME)/weyl.h $(NAME)/thickenings.h $(NAME)/queue.h $(NAME)/bitvec.h $(NAME)/Makefile $(NAME)/graph.c

View File

@ -31,8 +31,8 @@ static char* alphabetize(weylgroup_element_t *e, char *str)
} }
/* /*
int shorten(int i, unsigned long left, unsigned long right, doublequotient_t *dq, int rank) int shorten(int i, unsigned long left, unsigned long right, doublequotient_t *dq, int rank)
{ {
int other, shorter = i; int other, shorter = i;
do { do {
i = shorter; i = shorter;
@ -49,7 +49,7 @@ int shorten(int i, unsigned long left, unsigned long right, doublequotient_t *dq
} while(shorter != i); } while(shorter != i);
return shorter; return shorter;
} }
*/ */
void balanced_thickening_callback(const bitvec_t *pos, int size, const enumeration_info_t *ei) void balanced_thickening_callback(const bitvec_t *pos, int size, const enumeration_info_t *ei)
@ -85,6 +85,20 @@ void balanced_thickening_callback(const bitvec_t *pos, int size, const enumerati
for(int j = 0; j < info->rank; j++) for(int j = 0; j < info->rank; j++)
printf("%c", right_invariance & (1 << j) ? j + 'a' : ' '); printf("%c", right_invariance & (1 << j) ? j + 'a' : ' ');
int length_profile[65]; // can't handle more that 64 positive roots anyway
memset(length_profile, 0, (info->positive+1)*sizeof(int));
for(int i = 0; i < size; i++) {
bit1 = i < size/2 ? bv_get_bit(pos, i) : !bv_get_bit(pos, size - 1 - i);
if(bit1)
length_profile[info->dq->cosets[i].min->wordlength]++;
}
printf(" length profile:");
for(int i = 0; i <= info->positive; i++)
printf(" %d", length_profile[i]);
if(info->buffer) { if(info->buffer) {
bitvec_t low, high; bitvec_t low, high;
bv_copy(pos, &low); bv_copy(pos, &low);