-
Notifications
You must be signed in to change notification settings - Fork 0
/
isomorph.h
32 lines (28 loc) · 918 Bytes
/
isomorph.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef ISOMORPH_H
#define ISOMORPH_H
#include <utils.h>
#include <automorph.h>
#include <time.h>
typedef struct Params{
unsigned long n;
int *degree;
int *current_ord;
int *fixed_ord;
int *best_ord;
bool best_exists;
bool auto_found;
Search_Node *top_search_node;
int basis_ok;
Search_Node *last_base_change;
} Params;
int compare_orders(Graph_m *g, int *best_ord, int *fixed_pts, unsigned int spt, unsigned int lpt);
void refine(Graph_l *g, Search_Node *s, Params *params);
void stabilise(Graph *g, Search_Node *s, Params *params);
bool is_isomorphic(Graph *g1, Graph *g2);
bool is_equal_ordering(Graph_m *graph_m1, Graph_m *graph_m2, int *ord1, int *ord2);
int* canonical_form(Graph *g);
Search_Node* create_search_node(int v);
void free_search_tree(Search_Node *s);
void print_search_node(Search_Node *s);
void print_perm(Permutation *p, int size);
#endif // ISOMORPH_H