Lines Matching +full:0 +full:xaa
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
78 ScoreScale(PatN ? float{1} / (PerfectBonus * PatN) : 0), WordN(0) { in FuzzyMatcher()
80 for (int I = 0; I < PatN; ++I)
82 Scores[0][0][Miss] = {0, Miss};
83 Scores[0][0][Match] = {AwfulScore, Miss};
84 for (int P = 0; P <= PatN; ++P)
85 for (int W = 0; W < P; ++W)
103 ScoreScale * std::min(PerfectBonus * PatN, std::max<int>(0, Best)); in match()
115 0x00, 0x00, 0x00, 0x00, // Control characters
116 0x00, 0x00, 0x00, 0x00, // Control characters
117 0xff, 0xff, 0xff, 0xff, // Punctuation
118 0x55, 0x55, 0xf5, 0xff, // Numbers->Lower, more Punctuation.
119 0xab, 0xaa, 0xaa, 0xaa, // @ and A-O
120 0xaa, 0xaa, 0xea, 0xff, // P-Z, more Punctuation.
121 0x57, 0x55, 0x55, 0x55, // ` and a-o
122 0x55, 0x55, 0xd5, 0x3f, // p-z, Punctuation, DEL.
123 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, // Bytes over 127 -> Lower.
124 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, // (probably UTF-8).
125 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
126 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55,
144 /* Prev=Empty */ 0x00, 0xaa, 0xaa, 0xff, // At start, Lower|Upper->Head
145 /* Prev=Lower */ 0x00, 0x55, 0xaa, 0xff, // In word, Upper->Head;Lower->Tail
146 /* Prev=Upper */ 0x00, 0x55, 0x59, 0xff, // Ditto, but U(U)U->Tail
147 /* Prev=Separ */ 0x00, 0xaa, 0xaa, 0xff, // After separator, like at start
157 if (Text.size() == 0) in calculateRoles()
158 return 0; in calculateRoles()
159 CharType Type = packedLookup<CharType>(CharTypes, Text[0]); in calculateRoles()
162 // Initial value is (Empty, Empty, type of Text[0]). in calculateRoles()
165 auto Rotate = [&](CharType T) { Types = ((Types << 2) | T) & 0x3f; }; in calculateRoles()
166 for (unsigned I = 0; I < Text.size() - 1; ++I) { in calculateRoles()
186 if (PatN == 0) in init()
188 for (int I = 0; I < WordN; ++I) in init()
192 for (int W = 0, P = 0; P != PatN; ++W) { in init()
209 // Unlike other tables, indices range from 0 to N *inclusive*
213 // and 3 being a great one. So we treat the score range as [0, 3 * PatN].
217 for (int W = 0; W < WordN; ++W) { in buildGraph()
218 Scores[0][W + 1][Miss] = {Scores[0][W][Miss].Score - skipPenalty(W, Miss), in buildGraph()
220 Scores[0][W + 1][Match] = {AwfulScore, Miss}; in buildGraph()
222 for (int P = 0; P < PatN; ++P) { in buildGraph()
270 if (W == 0) // Skipping the first character. in skipPenalty()
277 return 0; in skipPenalty()
293 if (W == 0 || Last == Match) in matchBonus()
302 if (P == 0 && WordRole[W] == Tail) in matchBonus()
312 if (PatN == 0) { in dumpLast()
316 if (WordN == 0) { in dumpLast()
340 for (int W = WordN - 1, P = PatN - 1; W >= 0; --W) { in dumpLast()
349 for (int I = 0; I < WordN; ++I) { in dumpLast()
350 if (A[I] == Match && (I == 0 || A[I - 1] == Miss)) in dumpLast()
352 if (A[I] == Miss && I > 0 && A[I - 1] == Match) in dumpLast()
362 for (int I = 0, J = 0; I < WordN; I++) in dumpLast()
365 for (int I = 0; I < WordN; I++) in dumpLast()
371 for (int I = 0; I < WordN; ++I) in dumpLast()
374 for (int I = 0; I < PatN; ++I) in dumpLast()
384 for (int I = 0; I <= PatN; ++I) { in dumpLast()
387 for (int J = 0; J <= WordN; ++J) { in dumpLast()