annotate EditDistance.hpp @ 60:60c1e0a2cacf

Fix compile problem.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Fri, 14 Sep 2012 20:23:45 +0200
parents 7b7e84356b39
children e5fa379d4030
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 #include "OrderedPair.hpp"
40
f711ddb56ae7 Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 34
diff changeset
6 #include "ThreadSafeLookup.hpp"
16
06166d6c083b Add configuration processing.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 0
diff changeset
7 #include "UniqueString.hpp"
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
8
40
f711ddb56ae7 Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 34
diff changeset
9 #include <QtCore/QHash>
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
10 #include <QtCore/QMap>
40
f711ddb56ae7 Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 34
diff changeset
11 #include <QtCore/QString>
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
12
58
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
13 template<typename Value>
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
14 struct InsertRegulator<OrderedPair<UniqueString>, Value >
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 uint n;
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
17 void start()
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
18 {
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
19 n = 0;
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
20 HuffmanString::getSet().setAutoRebuild(false);
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
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
23 static void finish()
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
24 {
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 HuffmanString::getSet().setAutoRebuild(true);
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
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
29 void next()
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
30 {
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
31 if (++n == 2048)
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
32 HuffmanString::getSet().rebuild();
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
33 }
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
34 };
7b7e84356b39 Introduce API for fine tuning inserts.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 42
diff changeset
35
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
36 class EditDistance {
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
37 protected:
16
06166d6c083b Add configuration processing.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 0
diff changeset
38 typedef DBCache<OrderedPair<UniqueString>, int, true> cacheType;
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
39 public:
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
40 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
41 static void removeDiacriticsNoCopy(QString& in);
4c283daa42c7 Optimize diacritics removal.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 40
diff changeset
42 static QString removeDiacritics(const QString& in);
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
43
16
06166d6c083b Add configuration processing.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents: 0
diff changeset
44 static cacheType* cache;
0
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
45 };
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
46
a3834af36579 Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff changeset
47 #endif //EDITDISTANCE_HPP