annotate CachedEditDistance.cpp @ 115:404795616b1e default tip

Added a lot of common files to ignore
author Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
date Sat, 25 Mar 2017 17:43:57 +0100
parents 9744ec195be3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
78
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
1 #include "CachedEditDistance.hpp"
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
2
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
3 #include "CompileTimeConstants.h"
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
4 #include "ConfigurationProcessing.hpp"
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
5
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
6 CachedEditDistance::cacheType* CachedEditDistance::cache = 0;
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
7 //CachedEditDistance::cacheType CachedEditDistance::cache;
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
8
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
9 int CachedEditDistance::Compute(QString a, QString b, bool remove) {
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
10 if (remove) {
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
11 removeDiacriticsNoCopy(a);
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
12 removeDiacriticsNoCopy(b);
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
13 }
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
14
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
15 if ( a == b)
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
16 return 0;
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
17
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
18 OrderedPair<UniqueString> lup(a, b);
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
19
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
20 if (cache == 0) {
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
21 QString cacheLocation = processSetupVariables(EDITDISTANCE_CACHE_LOCATION);
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
22 CachedEditDistance::cache = new cacheType(cacheLocation, "EditLUT");
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
23 }
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
24 boost::optional<int> res = cache->value(lup);
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
25 if (res)
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
26 return *res;
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
27
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
28 int retVal = EditDistance::Compute(a, b, false);
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
29
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
30 cache->insert(lup, retVal);
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
31
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
32 return retVal;
9744ec195be3 Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
diff changeset
33 }