annotate bwa-0.6.2/QSufSort.h @ 2:a294fbfcb1db draft default tip

Uploaded BWA
author ashvark
date Fri, 18 Jul 2014 07:55:59 -0400
parents dd1186b11b3b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
1 /* QSufSort.h
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
2
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
3 Header file for QSufSort.c
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
4
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
5 This file contains an implementation of the algorithm presented in "Faster
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
6 Suffix Sorting" by N. Jesper Larsson (jesper@cs.lth.se) and Kunihiko
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
7 Sadakane (sada@is.s.u-tokyo.ac.jp).
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
8
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
9 This software may be used freely for any purpose. However, when distributed,
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
10 the original source must be clearly stated, and, when the source code is
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
11 distributed, the copyright notice must be retained and any alterations in
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
12 the code must be clearly marked. No warranty is given regarding the quality
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
13 of this software.
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
14
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
15 Modified by Wong Chi-Kwong, 2004
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
16
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
17 Changes summary: - Used long variable and function names
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
18 - Removed global variables
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
19 - Replace pointer references with array references
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
20 - Used insertion sort in place of selection sort and increased insertion sort threshold
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
21 - Reconstructing suffix array from inverse becomes an option
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
22 - Add handling where end-of-text symbol is not necessary < all characters
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
23 - Removed codes for supporting alphabet size > number of characters
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
24
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
25 No warrenty is given regarding the quality of the modifications.
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
26
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
27 */
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
28
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
29 #ifndef __QSUFSORT_H__
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
30 #define __QSUFSORT_H__
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
31
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
32 #include <stdint.h>
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
33
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
34 #define KEY(V, I, p, h) ( V[ I[p] + h ] )
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
35 #define INSERT_SORT_NUM_ITEM 16
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
36
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
37 typedef int64_t qsint_t;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
38 #define QSINT_MAX INT64_MAX
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
39
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
40 void QSufSortSuffixSort(qsint_t* __restrict V, qsint_t* __restrict I, const qsint_t numChar, const qsint_t largestInputSymbol,
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
41 const qsint_t smallestInputSymbol, const int skipTransform);
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
42 void QSufSortGenerateSaFromInverse(const qsint_t *V, qsint_t* __restrict I, const qsint_t numChar);
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
43
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
44
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
45 #endif