117778ec0b4717c0e9ae6d9b91c714d6359f30ec
[libfirm] / pbqp_t.h
1 #ifndef KAPS_PBQP_T_H
2 #define KAPS_PBQP_T_H
3
4 #include <limits.h>
5 #include <stdint.h>
6 #include <stdio.h>
7
8 #include "adt/obstack.h"
9
10 typedef intmax_t num;
11
12 #include "matrix_t.h"
13 #include "vector_t.h"
14
15 typedef struct pbqp_edge pbqp_edge;
16 typedef struct pbqp_node pbqp_node;
17 typedef struct pbqp      pbqp;
18
19 static const num INF_COSTS = INTMAX_MAX;
20
21 #define KAPS_STATISTIC 0
22
23 struct pbqp {
24         struct obstack obstack;            /* Obstack. */
25         num            solution;           /* Computed solution. */
26         size_t         num_nodes;          /* Number of PBQP nodes. */
27         pbqp_node    **nodes;              /* Nodes of PBQP. */
28         FILE          *dump_file;          /* File to dump in. */
29 #if KAPS_STATISTIC
30         unsigned       num_bf;             /* Number of brute force reductions. */
31         unsigned       num_edges;          /* Number of independent edges. */
32         unsigned       num_r0;             /* Number of trivial solved nodes. */
33         unsigned       num_r1;             /* Number of R1 reductions. */
34         unsigned       num_r2;             /* Number of R2 reductions. */
35         unsigned       num_rn;             /* Number of RN reductions. */
36 #endif
37 };
38
39 #endif /* KAPS_PBQP_T_H */