Refactor step3: const unigram_dictionary
- make all functions in unigram_dictionary const Change-Id: I94a64865aa793435e6c81890e68d999f6374074emain
parent
4a3db7057f
commit
6bc051d291
|
@ -103,7 +103,7 @@ void UnigramDictionary::getWordWithDigraphSuggestionsRec(ProximityInfo *proximit
|
||||||
const bool useFullEditDistance, const int *codesSrc,
|
const bool useFullEditDistance, const int *codesSrc,
|
||||||
const int codesRemain, const int currentDepth, int *codesDest, Correction *correction,
|
const int codesRemain, const int currentDepth, int *codesDest, Correction *correction,
|
||||||
WordsPriorityQueuePool *queuePool,
|
WordsPriorityQueuePool *queuePool,
|
||||||
const digraph_t* const digraphs, const unsigned int digraphsSize) {
|
const digraph_t* const digraphs, const unsigned int digraphsSize) const {
|
||||||
|
|
||||||
const int startIndex = codesDest - codesBuffer;
|
const int startIndex = codesDest - codesBuffer;
|
||||||
if (currentDepth < MAX_DIGRAPH_SEARCH_DEPTH) {
|
if (currentDepth < MAX_DIGRAPH_SEARCH_DEPTH) {
|
||||||
|
@ -173,7 +173,7 @@ int UnigramDictionary::getSuggestions(ProximityInfo *proximityInfo,
|
||||||
WordsPriorityQueuePool *queuePool, Correction *correction, const int *xcoordinates,
|
WordsPriorityQueuePool *queuePool, Correction *correction, const int *xcoordinates,
|
||||||
const int *ycoordinates, const int *codes, const int codesSize,
|
const int *ycoordinates, const int *codes, const int codesSize,
|
||||||
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
||||||
const bool useFullEditDistance, unsigned short *outWords, int *frequencies) {
|
const bool useFullEditDistance, unsigned short *outWords, int *frequencies) const {
|
||||||
|
|
||||||
queuePool->clearAll();
|
queuePool->clearAll();
|
||||||
Correction* masterCorrection = correction;
|
Correction* masterCorrection = correction;
|
||||||
|
@ -235,7 +235,8 @@ int UnigramDictionary::getSuggestions(ProximityInfo *proximityInfo,
|
||||||
void UnigramDictionary::getWordSuggestions(ProximityInfo *proximityInfo,
|
void UnigramDictionary::getWordSuggestions(ProximityInfo *proximityInfo,
|
||||||
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
||||||
const int inputLength, const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
const int inputLength, const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
||||||
const bool useFullEditDistance, Correction *correction, WordsPriorityQueuePool *queuePool) {
|
const bool useFullEditDistance, Correction *correction,
|
||||||
|
WordsPriorityQueuePool *queuePool) const {
|
||||||
|
|
||||||
PROF_OPEN;
|
PROF_OPEN;
|
||||||
PROF_START(0);
|
PROF_START(0);
|
||||||
|
@ -300,7 +301,8 @@ void UnigramDictionary::getWordSuggestions(ProximityInfo *proximityInfo,
|
||||||
}
|
}
|
||||||
|
|
||||||
void UnigramDictionary::initSuggestions(ProximityInfo *proximityInfo, const int *xCoordinates,
|
void UnigramDictionary::initSuggestions(ProximityInfo *proximityInfo, const int *xCoordinates,
|
||||||
const int *yCoordinates, const int *codes, const int inputLength, Correction *correction) {
|
const int *yCoordinates, const int *codes, const int inputLength,
|
||||||
|
Correction *correction) const {
|
||||||
if (DEBUG_DICT) {
|
if (DEBUG_DICT) {
|
||||||
AKLOGI("initSuggest");
|
AKLOGI("initSuggest");
|
||||||
DUMP_WORD_INT(codes, inputLength);
|
DUMP_WORD_INT(codes, inputLength);
|
||||||
|
@ -317,7 +319,7 @@ void UnigramDictionary::getOneWordSuggestions(ProximityInfo *proximityInfo,
|
||||||
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
||||||
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
||||||
const bool useFullEditDistance, const int inputLength,
|
const bool useFullEditDistance, const int inputLength,
|
||||||
Correction *correction, WordsPriorityQueuePool *queuePool) {
|
Correction *correction, WordsPriorityQueuePool *queuePool) const {
|
||||||
initSuggestions(proximityInfo, xcoordinates, ycoordinates, codes, inputLength, correction);
|
initSuggestions(proximityInfo, xcoordinates, ycoordinates, codes, inputLength, correction);
|
||||||
getSuggestionCandidates(useFullEditDistance, inputLength, bigramMap, bigramFilter, correction,
|
getSuggestionCandidates(useFullEditDistance, inputLength, bigramMap, bigramFilter, correction,
|
||||||
queuePool, true /* doAutoCompletion */, DEFAULT_MAX_ERRORS, FIRST_WORD_INDEX);
|
queuePool, true /* doAutoCompletion */, DEFAULT_MAX_ERRORS, FIRST_WORD_INDEX);
|
||||||
|
@ -326,7 +328,7 @@ void UnigramDictionary::getOneWordSuggestions(ProximityInfo *proximityInfo,
|
||||||
void UnigramDictionary::getSuggestionCandidates(const bool useFullEditDistance,
|
void UnigramDictionary::getSuggestionCandidates(const bool useFullEditDistance,
|
||||||
const int inputLength, const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
const int inputLength, const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
||||||
Correction *correction, WordsPriorityQueuePool *queuePool,
|
Correction *correction, WordsPriorityQueuePool *queuePool,
|
||||||
const bool doAutoCompletion, const int maxErrors, const int currentWordIndex) {
|
const bool doAutoCompletion, const int maxErrors, const int currentWordIndex) const {
|
||||||
uint8_t totalTraverseCount = correction->pushAndGetTotalTraverseCount();
|
uint8_t totalTraverseCount = correction->pushAndGetTotalTraverseCount();
|
||||||
if (DEBUG_DICT) {
|
if (DEBUG_DICT) {
|
||||||
AKLOGI("Traverse count %d", totalTraverseCount);
|
AKLOGI("Traverse count %d", totalTraverseCount);
|
||||||
|
@ -374,7 +376,7 @@ void UnigramDictionary::getSuggestionCandidates(const bool useFullEditDistance,
|
||||||
inline void UnigramDictionary::onTerminal(const int probability,
|
inline void UnigramDictionary::onTerminal(const int probability,
|
||||||
const TerminalAttributes& terminalAttributes, Correction *correction,
|
const TerminalAttributes& terminalAttributes, Correction *correction,
|
||||||
WordsPriorityQueuePool *queuePool, const bool addToMasterQueue,
|
WordsPriorityQueuePool *queuePool, const bool addToMasterQueue,
|
||||||
const int currentWordIndex) {
|
const int currentWordIndex) const {
|
||||||
const int inputIndex = correction->getInputIndex();
|
const int inputIndex = correction->getInputIndex();
|
||||||
const bool addToSubQueue = inputIndex < SUB_QUEUE_MAX_COUNT;
|
const bool addToSubQueue = inputIndex < SUB_QUEUE_MAX_COUNT;
|
||||||
|
|
||||||
|
@ -430,7 +432,7 @@ int UnigramDictionary::getSubStringSuggestion(
|
||||||
const bool hasAutoCorrectionCandidate, const int currentWordIndex,
|
const bool hasAutoCorrectionCandidate, const int currentWordIndex,
|
||||||
const int inputWordStartPos, const int inputWordLength,
|
const int inputWordStartPos, const int inputWordLength,
|
||||||
const int outputWordStartPos, const bool isSpaceProximity, int *freqArray,
|
const int outputWordStartPos, const bool isSpaceProximity, int *freqArray,
|
||||||
int*wordLengthArray, unsigned short* outputWord, int *outputWordLength) {
|
int*wordLengthArray, unsigned short* outputWord, int *outputWordLength) const {
|
||||||
if (inputWordLength > MULTIPLE_WORDS_SUGGESTION_MAX_WORD_LENGTH) {
|
if (inputWordLength > MULTIPLE_WORDS_SUGGESTION_MAX_WORD_LENGTH) {
|
||||||
return FLAG_MULTIPLE_SUGGEST_ABORT;
|
return FLAG_MULTIPLE_SUGGEST_ABORT;
|
||||||
}
|
}
|
||||||
|
@ -479,11 +481,12 @@ int UnigramDictionary::getSubStringSuggestion(
|
||||||
initSuggestions(proximityInfo, xcoordinates, ycoordinates, codes,
|
initSuggestions(proximityInfo, xcoordinates, ycoordinates, codes,
|
||||||
inputLength, correction);
|
inputLength, correction);
|
||||||
|
|
||||||
|
unsigned short word[MAX_WORD_LENGTH_INTERNAL];
|
||||||
int freq = getMostFrequentWordLike(
|
int freq = getMostFrequentWordLike(
|
||||||
inputWordStartPos, inputWordLength, correction, mWord);
|
inputWordStartPos, inputWordLength, correction, word);
|
||||||
if (freq > 0) {
|
if (freq > 0) {
|
||||||
nextWordLength = inputWordLength;
|
nextWordLength = inputWordLength;
|
||||||
tempOutputWord = mWord;
|
tempOutputWord = word;
|
||||||
} else if (!hasAutoCorrectionCandidate) {
|
} else if (!hasAutoCorrectionCandidate) {
|
||||||
if (inputWordStartPos > 0) {
|
if (inputWordStartPos > 0) {
|
||||||
const int offset = inputWordStartPos;
|
const int offset = inputWordStartPos;
|
||||||
|
@ -577,7 +580,7 @@ void UnigramDictionary::getMultiWordsSuggestionRec(ProximityInfo *proximityInfo,
|
||||||
Correction *correction, WordsPriorityQueuePool* queuePool,
|
Correction *correction, WordsPriorityQueuePool* queuePool,
|
||||||
const bool hasAutoCorrectionCandidate, const int startInputPos, const int startWordIndex,
|
const bool hasAutoCorrectionCandidate, const int startInputPos, const int startWordIndex,
|
||||||
const int outputWordLength, int *freqArray, int* wordLengthArray,
|
const int outputWordLength, int *freqArray, int* wordLengthArray,
|
||||||
unsigned short* outputWord) {
|
unsigned short* outputWord) const {
|
||||||
if (startWordIndex >= (MULTIPLE_WORDS_SUGGESTION_MAX_WORDS - 1)) {
|
if (startWordIndex >= (MULTIPLE_WORDS_SUGGESTION_MAX_WORDS - 1)) {
|
||||||
// Return if the last word index
|
// Return if the last word index
|
||||||
return;
|
return;
|
||||||
|
@ -656,7 +659,7 @@ void UnigramDictionary::getSplitMultipleWordsSuggestions(ProximityInfo *proximit
|
||||||
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
||||||
const bool useFullEditDistance, const int inputLength,
|
const bool useFullEditDistance, const int inputLength,
|
||||||
Correction *correction, WordsPriorityQueuePool* queuePool,
|
Correction *correction, WordsPriorityQueuePool* queuePool,
|
||||||
const bool hasAutoCorrectionCandidate) {
|
const bool hasAutoCorrectionCandidate) const {
|
||||||
if (inputLength >= MAX_WORD_LENGTH) return;
|
if (inputLength >= MAX_WORD_LENGTH) return;
|
||||||
if (DEBUG_DICT) {
|
if (DEBUG_DICT) {
|
||||||
AKLOGI("--- Suggest multiple words");
|
AKLOGI("--- Suggest multiple words");
|
||||||
|
@ -678,7 +681,7 @@ void UnigramDictionary::getSplitMultipleWordsSuggestions(ProximityInfo *proximit
|
||||||
// Wrapper for getMostFrequentWordLikeInner, which matches it to the previous
|
// Wrapper for getMostFrequentWordLikeInner, which matches it to the previous
|
||||||
// interface.
|
// interface.
|
||||||
inline int UnigramDictionary::getMostFrequentWordLike(const int startInputIndex,
|
inline int UnigramDictionary::getMostFrequentWordLike(const int startInputIndex,
|
||||||
const int inputLength, Correction *correction, unsigned short *word) {
|
const int inputLength, Correction *correction, unsigned short *word) const {
|
||||||
uint16_t inWord[inputLength];
|
uint16_t inWord[inputLength];
|
||||||
|
|
||||||
for (int i = 0; i < inputLength; ++i) {
|
for (int i = 0; i < inputLength; ++i) {
|
||||||
|
@ -751,21 +754,24 @@ static inline void onTerminalWordLike(const int freq, int32_t* newWord, const in
|
||||||
// Will find the highest frequency of the words like the one passed as an argument,
|
// Will find the highest frequency of the words like the one passed as an argument,
|
||||||
// that is, everything that only differs by case/accents.
|
// that is, everything that only differs by case/accents.
|
||||||
int UnigramDictionary::getMostFrequentWordLikeInner(const uint16_t * const inWord,
|
int UnigramDictionary::getMostFrequentWordLikeInner(const uint16_t * const inWord,
|
||||||
const int length, short unsigned int* outWord) {
|
const int length, short unsigned int* outWord) const {
|
||||||
int32_t newWord[MAX_WORD_LENGTH_INTERNAL];
|
int32_t newWord[MAX_WORD_LENGTH_INTERNAL];
|
||||||
int depth = 0;
|
int depth = 0;
|
||||||
int maxFreq = -1;
|
int maxFreq = -1;
|
||||||
const uint8_t* const root = DICT_ROOT;
|
const uint8_t* const root = DICT_ROOT;
|
||||||
|
int stackChildCount[MAX_WORD_LENGTH_INTERNAL];
|
||||||
|
int stackInputIndex[MAX_WORD_LENGTH_INTERNAL];
|
||||||
|
int stackSiblingPos[MAX_WORD_LENGTH_INTERNAL];
|
||||||
|
|
||||||
int startPos = 0;
|
int startPos = 0;
|
||||||
mStackChildCount[0] = BinaryFormat::getGroupCountAndForwardPointer(root, &startPos);
|
stackChildCount[0] = BinaryFormat::getGroupCountAndForwardPointer(root, &startPos);
|
||||||
mStackInputIndex[0] = 0;
|
stackInputIndex[0] = 0;
|
||||||
mStackSiblingPos[0] = startPos;
|
stackSiblingPos[0] = startPos;
|
||||||
while (depth >= 0) {
|
while (depth >= 0) {
|
||||||
const int charGroupCount = mStackChildCount[depth];
|
const int charGroupCount = stackChildCount[depth];
|
||||||
int pos = mStackSiblingPos[depth];
|
int pos = stackSiblingPos[depth];
|
||||||
for (int charGroupIndex = charGroupCount - 1; charGroupIndex >= 0; --charGroupIndex) {
|
for (int charGroupIndex = charGroupCount - 1; charGroupIndex >= 0; --charGroupIndex) {
|
||||||
int inputIndex = mStackInputIndex[depth];
|
int inputIndex = stackInputIndex[depth];
|
||||||
const uint8_t flags = BinaryFormat::getFlagsAndForwardPointer(root, &pos);
|
const uint8_t flags = BinaryFormat::getFlagsAndForwardPointer(root, &pos);
|
||||||
// Test whether all chars in this group match with the word we are searching for. If so,
|
// Test whether all chars in this group match with the word we are searching for. If so,
|
||||||
// we want to traverse its children (or if the length match, evaluate its frequency).
|
// we want to traverse its children (or if the length match, evaluate its frequency).
|
||||||
|
@ -785,15 +791,15 @@ int UnigramDictionary::getMostFrequentWordLikeInner(const uint16_t * const inWor
|
||||||
// anyway, so don't traverse unless inputIndex < length.
|
// anyway, so don't traverse unless inputIndex < length.
|
||||||
if (isAlike && (-1 != childrenNodePos) && (inputIndex < length)) {
|
if (isAlike && (-1 != childrenNodePos) && (inputIndex < length)) {
|
||||||
// Save position for this depth, to get back to this once children are done
|
// Save position for this depth, to get back to this once children are done
|
||||||
mStackChildCount[depth] = charGroupIndex;
|
stackChildCount[depth] = charGroupIndex;
|
||||||
mStackSiblingPos[depth] = siblingPos;
|
stackSiblingPos[depth] = siblingPos;
|
||||||
// Prepare stack values for next depth
|
// Prepare stack values for next depth
|
||||||
++depth;
|
++depth;
|
||||||
int childrenPos = childrenNodePos;
|
int childrenPos = childrenNodePos;
|
||||||
mStackChildCount[depth] =
|
stackChildCount[depth] =
|
||||||
BinaryFormat::getGroupCountAndForwardPointer(root, &childrenPos);
|
BinaryFormat::getGroupCountAndForwardPointer(root, &childrenPos);
|
||||||
mStackSiblingPos[depth] = childrenPos;
|
stackSiblingPos[depth] = childrenPos;
|
||||||
mStackInputIndex[depth] = inputIndex;
|
stackInputIndex[depth] = inputIndex;
|
||||||
pos = childrenPos;
|
pos = childrenPos;
|
||||||
// Go to the next depth level.
|
// Go to the next depth level.
|
||||||
++depth;
|
++depth;
|
||||||
|
@ -848,7 +854,7 @@ int UnigramDictionary::getBigramPosition(int pos, unsigned short *word, int offs
|
||||||
inline bool UnigramDictionary::processCurrentNode(const int initialPos,
|
inline bool UnigramDictionary::processCurrentNode(const int initialPos,
|
||||||
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter, Correction *correction,
|
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter, Correction *correction,
|
||||||
int *newCount, int *newChildrenPosition, int *nextSiblingPosition,
|
int *newCount, int *newChildrenPosition, int *nextSiblingPosition,
|
||||||
WordsPriorityQueuePool *queuePool, const int currentWordIndex) {
|
WordsPriorityQueuePool *queuePool, const int currentWordIndex) const {
|
||||||
if (DEBUG_DICT) {
|
if (DEBUG_DICT) {
|
||||||
correction->checkState();
|
correction->checkState();
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,7 +81,7 @@ class UnigramDictionary {
|
||||||
Correction *correction, const int *xcoordinates, const int *ycoordinates,
|
Correction *correction, const int *xcoordinates, const int *ycoordinates,
|
||||||
const int *codes, const int codesSize, const std::map<int, int> *bigramMap,
|
const int *codes, const int codesSize, const std::map<int, int> *bigramMap,
|
||||||
const uint8_t *bigramFilter, const bool useFullEditDistance, unsigned short *outWords,
|
const uint8_t *bigramFilter, const bool useFullEditDistance, unsigned short *outWords,
|
||||||
int *frequencies);
|
int *frequencies) const;
|
||||||
virtual ~UnigramDictionary();
|
virtual ~UnigramDictionary();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -89,7 +89,7 @@ class UnigramDictionary {
|
||||||
const int *ycoordinates, const int *codes, const int inputLength,
|
const int *ycoordinates, const int *codes, const int inputLength,
|
||||||
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
||||||
const bool useFullEditDistance, Correction *correction,
|
const bool useFullEditDistance, Correction *correction,
|
||||||
WordsPriorityQueuePool *queuePool);
|
WordsPriorityQueuePool *queuePool) const;
|
||||||
int getDigraphReplacement(const int *codes, const int i, const int codesSize,
|
int getDigraphReplacement(const int *codes, const int i, const int codesSize,
|
||||||
const digraph_t* const digraphs, const unsigned int digraphsSize) const;
|
const digraph_t* const digraphs, const unsigned int digraphsSize) const;
|
||||||
void getWordWithDigraphSuggestionsRec(ProximityInfo *proximityInfo,
|
void getWordWithDigraphSuggestionsRec(ProximityInfo *proximityInfo,
|
||||||
|
@ -99,37 +99,36 @@ class UnigramDictionary {
|
||||||
const bool useFullEditDistance, const int* codesSrc, const int codesRemain,
|
const bool useFullEditDistance, const int* codesSrc, const int codesRemain,
|
||||||
const int currentDepth, int* codesDest, Correction *correction,
|
const int currentDepth, int* codesDest, Correction *correction,
|
||||||
WordsPriorityQueuePool* queuePool, const digraph_t* const digraphs,
|
WordsPriorityQueuePool* queuePool, const digraph_t* const digraphs,
|
||||||
const unsigned int digraphsSize);
|
const unsigned int digraphsSize) const;
|
||||||
void initSuggestions(ProximityInfo *proximityInfo, const int *xcoordinates,
|
void initSuggestions(ProximityInfo *proximityInfo, const int *xcoordinates,
|
||||||
const int *ycoordinates, const int *codes, const int codesSize, Correction *correction);
|
const int *ycoordinates, const int *codes, const int codesSize,
|
||||||
|
Correction *correction) const;
|
||||||
void getOneWordSuggestions(ProximityInfo *proximityInfo, const int *xcoordinates,
|
void getOneWordSuggestions(ProximityInfo *proximityInfo, const int *xcoordinates,
|
||||||
const int *ycoordinates, const int *codes, const std::map<int, int> *bigramMap,
|
const int *ycoordinates, const int *codes, const std::map<int, int> *bigramMap,
|
||||||
const uint8_t *bigramFilter, const bool useFullEditDistance, const int inputLength,
|
const uint8_t *bigramFilter, const bool useFullEditDistance, const int inputLength,
|
||||||
Correction *correction, WordsPriorityQueuePool* queuePool);
|
Correction *correction, WordsPriorityQueuePool* queuePool) const;
|
||||||
void getSuggestionCandidates(
|
void getSuggestionCandidates(
|
||||||
const bool useFullEditDistance, const int inputLength,
|
const bool useFullEditDistance, const int inputLength,
|
||||||
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
const std::map<int, int> *bigramMap, const uint8_t *bigramFilter,
|
||||||
Correction *correction, WordsPriorityQueuePool* queuePool, const bool doAutoCompletion,
|
Correction *correction, WordsPriorityQueuePool* queuePool, const bool doAutoCompletion,
|
||||||
const int maxErrors, const int currentWordIndex);
|
const int maxErrors, const int currentWordIndex) const;
|
||||||
void getSplitMultipleWordsSuggestions(ProximityInfo *proximityInfo,
|
void getSplitMultipleWordsSuggestions(ProximityInfo *proximityInfo,
|
||||||
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
||||||
const bool useFullEditDistance, const int inputLength,
|
const bool useFullEditDistance, const int inputLength,
|
||||||
Correction *correction, WordsPriorityQueuePool* queuePool,
|
Correction *correction, WordsPriorityQueuePool* queuePool,
|
||||||
const bool hasAutoCorrectionCandidate);
|
const bool hasAutoCorrectionCandidate) const;
|
||||||
void onTerminal(const int freq, const TerminalAttributes& terminalAttributes,
|
void onTerminal(const int freq, const TerminalAttributes& terminalAttributes,
|
||||||
Correction *correction, WordsPriorityQueuePool *queuePool, const bool addToMasterQueue,
|
Correction *correction, WordsPriorityQueuePool *queuePool, const bool addToMasterQueue,
|
||||||
const int currentWordIndex);
|
const int currentWordIndex) const;
|
||||||
bool needsToSkipCurrentNode(const unsigned short c,
|
|
||||||
const int inputIndex, const int skipPos, const int depth);
|
|
||||||
// Process a node by considering proximity, missing and excessive character
|
// Process a node by considering proximity, missing and excessive character
|
||||||
bool processCurrentNode(const int initialPos, const std::map<int, int> *bigramMap,
|
bool processCurrentNode(const int initialPos, const std::map<int, int> *bigramMap,
|
||||||
const uint8_t *bigramFilter, Correction *correction, int *newCount,
|
const uint8_t *bigramFilter, Correction *correction, int *newCount,
|
||||||
int *newChildPosition, int *nextSiblingPosition, WordsPriorityQueuePool *queuePool,
|
int *newChildPosition, int *nextSiblingPosition, WordsPriorityQueuePool *queuePool,
|
||||||
const int currentWordIndex);
|
const int currentWordIndex) const;
|
||||||
int getMostFrequentWordLike(const int startInputIndex, const int inputLength,
|
int getMostFrequentWordLike(const int startInputIndex, const int inputLength,
|
||||||
Correction *correction, unsigned short *word);
|
Correction *correction, unsigned short *word) const;
|
||||||
int getMostFrequentWordLikeInner(const uint16_t* const inWord, const int length,
|
int getMostFrequentWordLikeInner(const uint16_t* const inWord, const int length,
|
||||||
short unsigned int *outWord);
|
short unsigned int *outWord) const;
|
||||||
int getSubStringSuggestion(
|
int getSubStringSuggestion(
|
||||||
ProximityInfo *proximityInfo, const int *xcoordinates, const int *ycoordinates,
|
ProximityInfo *proximityInfo, const int *xcoordinates, const int *ycoordinates,
|
||||||
const int *codes, const bool useFullEditDistance, Correction *correction,
|
const int *codes, const bool useFullEditDistance, Correction *correction,
|
||||||
|
@ -137,14 +136,14 @@ class UnigramDictionary {
|
||||||
const bool hasAutoCorrectionCandidate, const int currentWordIndex,
|
const bool hasAutoCorrectionCandidate, const int currentWordIndex,
|
||||||
const int inputWordStartPos, const int inputWordLength,
|
const int inputWordStartPos, const int inputWordLength,
|
||||||
const int outputWordStartPos, const bool isSpaceProximity, int *freqArray,
|
const int outputWordStartPos, const bool isSpaceProximity, int *freqArray,
|
||||||
int *wordLengthArray, unsigned short* outputWord, int *outputWordLength);
|
int *wordLengthArray, unsigned short* outputWord, int *outputWordLength) const;
|
||||||
void getMultiWordsSuggestionRec(ProximityInfo *proximityInfo,
|
void getMultiWordsSuggestionRec(ProximityInfo *proximityInfo,
|
||||||
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
const int *xcoordinates, const int *ycoordinates, const int *codes,
|
||||||
const bool useFullEditDistance, const int inputLength,
|
const bool useFullEditDistance, const int inputLength,
|
||||||
Correction *correction, WordsPriorityQueuePool* queuePool,
|
Correction *correction, WordsPriorityQueuePool* queuePool,
|
||||||
const bool hasAutoCorrectionCandidate, const int startPos, const int startWordIndex,
|
const bool hasAutoCorrectionCandidate, const int startPos, const int startWordIndex,
|
||||||
const int outputWordLength, int *freqArray, int* wordLengthArray,
|
const int outputWordLength, int *freqArray, int* wordLengthArray,
|
||||||
unsigned short* outputWord);
|
unsigned short* outputWord) const;
|
||||||
|
|
||||||
const uint8_t* const DICT_ROOT;
|
const uint8_t* const DICT_ROOT;
|
||||||
const int MAX_WORD_LENGTH;
|
const int MAX_WORD_LENGTH;
|
||||||
|
@ -158,12 +157,6 @@ class UnigramDictionary {
|
||||||
|
|
||||||
static const digraph_t GERMAN_UMLAUT_DIGRAPHS[];
|
static const digraph_t GERMAN_UMLAUT_DIGRAPHS[];
|
||||||
static const digraph_t FRENCH_LIGATURES_DIGRAPHS[];
|
static const digraph_t FRENCH_LIGATURES_DIGRAPHS[];
|
||||||
|
|
||||||
// Still bundled members
|
|
||||||
unsigned short mWord[MAX_WORD_LENGTH_INTERNAL];// TODO: remove
|
|
||||||
int mStackChildCount[MAX_WORD_LENGTH_INTERNAL];// TODO: remove
|
|
||||||
int mStackInputIndex[MAX_WORD_LENGTH_INTERNAL];// TODO: remove
|
|
||||||
int mStackSiblingPos[MAX_WORD_LENGTH_INTERNAL];// TODO: remove
|
|
||||||
};
|
};
|
||||||
} // namespace latinime
|
} // namespace latinime
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue