37 lines
740 B
C
37 lines
740 B
C
#ifndef WEYL_H
|
|
#define WEYL_H
|
|
|
|
#include <inttypes.h>
|
|
|
|
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
|