improved idealbounds a bit, but thrown it out of Makefile

This commit is contained in:
Florian Stecker 2018-10-02 18:09:52 -05:00
parent 16125bd8a8
commit 0c3341d8c2
2 changed files with 26 additions and 11 deletions

View File

@ -5,15 +5,19 @@ HEADERS=weyl.h thickenings.h queue.h bitvec.h
SPECIAL_OPTIONS=-O3 -flto -funroll-loops -Winline
OPTIONS=-m64 -march=native -mtune=native -std=gnu99 -D_GNU_SOURCE $(SPECIAL_OPTIONS)
NAME=enumerate-balanced-ideals
all: enumerate idealbounds graph
all: enumerate graph
$(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
$(NAME):
ln -s . $(NAME)
enumerate: enumerate.o weyl.o thickenings.o
gcc $(OPTIONS) -o enumerate enumerate.o thickenings.o weyl.o
idealbounds: idealbounds.o weyl.o
gcc $(OPTIONS) -o idealbounds idealbounds.o weyl.o
graph: graph.o weyl.o
gcc $(OPTIONS) -o graph graph.o weyl.o
@ -26,11 +30,8 @@ thickenings.o: thickenings.c $(HEADERS)
weyl.o: weyl.c $(HEADERS)
gcc $(OPTIONS) -c weyl.c
idealbounds.o: idealbounds.c $(HEADERS)
gcc $(OPTIONS) -c idealbounds.c
graph.o: graph.c $(HEADERS)
gcc $(OPTIONS) -c graph.c
clean:
rm -f enumerate idealbounds graph thickenings.o weyl.o enumerate.o idealbounds.o graph.o
rm -f enumerate graph thickenings.o weyl.o enumerate.o graph.o $(NAME) $(NAME).tar.bz2

View File

@ -5,10 +5,24 @@
#include <string.h>
#include <stdio.h>
static char* alphabetize(weylgroup_element_t *e, char *str)
{
if(e->wordlength == 0)
sprintf(str, "1");
else {
for(int j = 0; j < e->wordlength; j++)
str[j] = e->word[j] + 'a';
str[e->wordlength] = 0;
}
return str;
}
int main(int argc, char *argv[])
{
semisimple_type_t type;
simple_type_t simple;
char buf[100];
simple.series = 'A';
simple.rank = atoi(argv[1]);
@ -43,12 +57,12 @@ int main(int argc, char *argv[])
}
}
if(!found) {
printf("%d %d not found\n", i, dq->cosets[i].min->wordlength);
printf("%s %d not found\n", alphabetize(dq->cosets[i].min, buf), dq->cosets[i].min->wordlength);
if(dq->cosets[i].min->wordlength < minimum)
minimum = dq->cosets[i].min->wordlength;
break;
// break;
} else {
printf("%d %d found\n", i, dq->cosets[i].min->wordlength);
printf("%s %d found\n", alphabetize(dq->cosets[i].min, buf), dq->cosets[i].min->wordlength);
}
}