#include #include "weyl.h" static void print_element(weylgroup_element_t *e) { if(e->wordlength == 0) printf("1"); else for(int j = 0; j < e->wordlength; j++) printf("%c", e->word[j] + 'a'); } int main() { semisimple_type_t type; simple_type_t t; type.n = 1; type.factors = &t; t.series = 'A'; t.rank = 3; int order = weyl_order(type); doublequotient_t *dq = weyl_generate_bruhat(type, 0x02, 0x03); for(int i = 0; i < dq->count; i++) { print_element(dq->cosets[i].min); printf(" -> "); for(doublecoset_list_t *current = dq->cosets[i].bruhat_lower; current; current = current->next) { print_element(current->to->min); printf(" "); } printf("| "); print_element(dq->cosets[i].opposite->min); printf("\n"); } weyl_destroy_bruhat(dq); return 0; }