triangle_reflection_complex/coxeter.h

33 lines
751 B
C
Raw Permalink Normal View History

2020-08-02 22:48:33 +00:00
#ifndef COXETER_H
#define COXETER_H
#include <inttypes.h>
typedef struct _groupelement {
int id;
int letter;
struct _groupelement *parent;
int need_to_compute; // optimization flag; if 0, will skip matrix computation
2020-08-02 22:48:33 +00:00
int length;
struct _groupelement *inverse;
struct _groupelement **left;
struct _groupelement **right;
2022-06-14 12:22:22 +00:00
struct _groupelement *conjugacy_class;
2020-08-02 22:48:33 +00:00
} groupelement_t;
typedef struct _group {
int rank;
int *coxeter_matrix;
int size;
groupelement_t *elements;
groupelement_t **lists;
} group_t;
group_t *coxeter_init(int rank, int *coxeter_matrix, int nmax);
group_t *coxeter_init_triangle(int p, int q, int r, int nmax);
void coxeter_clear(group_t *g);
2022-06-14 12:22:22 +00:00
int coxeter_snprint(char *str, int buflen, groupelement_t *g);
2020-08-02 22:48:33 +00:00
#endif