#ifndef WEYL_H #define WEYL_H #include typedef struct { char series; int rank; } simple_type_t; typedef struct { int n; simple_type_t *factors; } semisimple_type_t; typedef uint64_t weylid_t; typedef struct { int *left; int *right; int opposite; weylid_t id; } weylgroup_element_t; int weyl_rank(semisimple_type_t type); int weyl_order(semisimple_type_t type); int weyl_hyperplanes(semisimple_type_t type); void weyl_cartan_matrix(semisimple_type_t type, int *m); int weyl_opposition(semisimple_type_t type, int simple_root); weylgroup_element_t *weyl_alloc(semisimple_type_t type); void weyl_free(weylgroup_element_t *x); void weyl_generate(semisimple_type_t type, weylgroup_element_t *group); #endif