1 /* A rational number */
10 /* The structure for a vertex */
12 /* A textual identifier for this vertex */
15 /* Whether this vertex is `fat' or not. Expected to be 1, 2, or 3. */
18 /* Drawing data: coordinates in `internal coordinates */
23 /* The cluster algebra structure */
25 /* How many vertices there actually are in the quiver */
28 /* How many vertices we have allocated memory for */
34 /* Edges - e_{ij} (fatness included, so E^t is not necessarily -E) */
38 /* Add an arrow of weight a/b from i -> j, affecting e(i,j) and e(j,i) */
40 quiver_add_to_edge(struct quiver
*q
, size_t i
, size_t j
, int_fast8_t a
,
41 uint_fast8_t b
, const char **out_errstr
);
43 /* Add a vertex with a name and weight */
45 quiver_add_vertex(struct quiver
*q
, size_t *out_i
, const char *name
,
46 uint_fast16_t fatness
, int x
, int y
, const char **out_errstr
);
48 /* Increase or decrease the fatness of a vertex, readjusting edges as well */
50 quiver_adjust_fatness(struct quiver
*q
, size_t i
, int_fast8_t fatness
, const
53 /* Delete a vertex (and all associated edges) */
55 quiver_delete_vertex(struct quiver
*q
, size_t i
, const char **out_errstr
);
57 /* Mutate the quiver at vertex k */
59 quiver_mutate(struct quiver
*q
, size_t k
, const char **out_errstr
);