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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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