Mercurial > dedupe
annotate EditDistance.hpp @ 77:a827f3687c4a
Compile fix Linux, wrong capitalization.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Sat, 16 Feb 2013 19:00:54 +0100 |
| parents | e5fa379d4030 |
| children | 9744ec195be3 |
| rev | line source |
|---|---|
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 #ifndef EDITDISTANCE_HPP |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 #define EDITDISTANCE_HPP |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 |
|
40
f711ddb56ae7
Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
4 #include "DBCache.hpp" |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
5 |
|
58
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
6 template<typename Value> |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
7 struct InsertRegulator<OrderedPair<UniqueString>, Value > |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
8 { |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
9 uint n; |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
10 void start() |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
11 { |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
12 n = 0; |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
13 HuffmanString::getSet().setAutoRebuild(false); |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
14 } |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
15 |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
16 static void finish() |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
17 { |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
18 HuffmanString::getSet().rebuild(); |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
19 HuffmanString::getSet().setAutoRebuild(true); |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
20 } |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
21 |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
22 void next() |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
23 { |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
24 if (++n == 2048) |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
25 HuffmanString::getSet().rebuild(); |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
26 } |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
27 }; |
|
7b7e84356b39
Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
42
diff
changeset
|
28 |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
29 class EditDistance { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
30 protected: |
|
16
06166d6c083b
Add configuration processing.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
0
diff
changeset
|
31 typedef DBCache<OrderedPair<UniqueString>, int, true> cacheType; |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
32 public: |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
33 static int Compute(QString a, QString b, bool removeDiacritics = false); |
|
42
4c283daa42c7
Optimize diacritics removal.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
40
diff
changeset
|
34 static void removeDiacriticsNoCopy(QString& in); |
|
4c283daa42c7
Optimize diacritics removal.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
40
diff
changeset
|
35 static QString removeDiacritics(const QString& in); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
36 |
|
16
06166d6c083b
Add configuration processing.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
0
diff
changeset
|
37 static cacheType* cache; |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
38 }; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
39 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
40 #endif //EDITDISTANCE_HPP |
