triangle_reflection_complex/enumerate_triangle_group.h

18 lines
695 B
C

#ifndef ENUMERATE_TRIANGLE_GROUP_H
#define ENUMERATE_TRIANGLE_GROUP_H
#include "mat.h"
#include "coxeter.h"
#include <mps/mps.h>
int solve_characteristic_polynomial(mps_context *solv, mps_monomial_poly *poly, mpq_t tr, mpq_t trinv, double *eigenvalues);
void continued_fraction_approximation(mpq_t out, double in, int level);
void quartic(mpq_t out, mpq_t in, int a, int b, int c, int d, int e);
// p1,p2,p3 are only allowed to be 2,3,4,6
void initialize_triangle_generators(mat_workspace *ws, mat *gen, int p1, int p2, int p3, mpq_t s, mpq_t q);
char *print_word(groupelement_t *g, char *str);
void enumerate(group_t *group, mat *matrices, int p1, int p2, int p3, mpq_t s, mpq_t t);
#endif