1 /*  This file is part of Conauto.
2 
3  Conauto is free software: you can redistribute it and/or modify
4  it under the terms of the GNU General Public License as published by
5  the Free Software Foundation, either version 3 of the License, or
6  (at your option) any later version.
7 
8  Conauto is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with Conauto.  If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 /* mismatch structure and functions for manage them */
18 
19 #ifndef _MISMATCH_H_
20 #define _MISMATCH_H_
21 
22 #include <stdlib.h>
23 #include <inttypes.h>
24 
25 uint16_t mismatch_found_hash;
26 
27 typedef struct {
28 	uint16_t *mismatch_hash;
29 	uint16_t *counters;
30 	uint16_t nom;	/* number of mismatches */
31 } MismatchCollection;
32 
33 #include "seqpart.h"
34 #include "orbits.h"
35 
36 void mark_new_mismatch ( Partition *p, uint8_t *mm_marked, Info_Vertex *info_vert, uint16_t mmv );
37 
38 void mark_old_mismatch ( Partition *p, uint8_t *mm_marked, Info_Vertex *info_vert, uint16_t mmv );
39 
40 uint16_t get_most_repeated_mismatch_vertex ( MismatchCollection *mmc );
41 
42 void compute_mismatches ( MismatchCollection *mmc );
43 
44 uint8_t mismatch_in_collection ( MismatchCollection *mmc, uint16_t *counters, uint16_t orbit_size );
45 
46 #endif
47 
48