New Weyl group algorithm
This commit is contained in:
36
weyl.h
Normal file
36
weyl.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user