diff options
Diffstat (limited to 'native/jni/src')
-rw-r--r-- | native/jni/src/binary_format.h | 16 | ||||
-rw-r--r-- | native/jni/src/correction.cpp | 8 | ||||
-rw-r--r-- | native/jni/src/correction.h | 6 | ||||
-rw-r--r-- | native/jni/src/defines.h | 2 | ||||
-rw-r--r-- | native/jni/src/dic_traverse_wrapper.h | 8 | ||||
-rw-r--r-- | native/jni/src/proximity_info.cpp | 4 | ||||
-rw-r--r-- | native/jni/src/proximity_info.h | 67 | ||||
-rw-r--r-- | native/jni/src/proximity_info_state_utils.cpp | 2 | ||||
-rw-r--r-- | native/jni/src/proximity_info_utils.h | 39 | ||||
-rw-r--r-- | native/jni/src/words_priority_queue.h | 2 |
10 files changed, 55 insertions, 99 deletions
diff --git a/native/jni/src/binary_format.h b/native/jni/src/binary_format.h index 61780dea5..2d7c4b492 100644 --- a/native/jni/src/binary_format.h +++ b/native/jni/src/binary_format.h @@ -18,9 +18,9 @@ #define LATINIME_BINARY_FORMAT_H #include <cstdlib> -#include <limits> #include <map> #include <stdint.h> + #include "bloom_filter.h" #include "char_utils.h" @@ -66,8 +66,8 @@ class BinaryFormat { static int detectFormat(const uint8_t *const dict); static int getHeaderSize(const uint8_t *const dict); static int getFlags(const uint8_t *const dict); - static void readHeaderValue(const uint8_t *const dict, const char *const key, - int *outValue, const int outValueSize); + static void readHeaderValue(const uint8_t *const dict, const char *const key, int *outValue, + const int outValueSize); static int readHeaderValueInt(const uint8_t *const dict, const char *const key); static int getGroupCountAndForwardPointer(const uint8_t *const dict, int *pos); static uint8_t getFlagsAndForwardPointer(const uint8_t *const dict, int *pos); @@ -168,7 +168,7 @@ inline int BinaryFormat::getHeaderSize(const uint8_t *const dict) { // See the format of the header in the comment in detectFormat() above return (dict[8] << 24) + (dict[9] << 16) + (dict[10] << 8) + dict[11]; default: - return std::numeric_limits<int>::max(); + return S_INT_MAX; } } @@ -197,8 +197,7 @@ inline void BinaryFormat::readHeaderValue(const uint8_t *const dict, const char if (codePoint == NOT_A_CODE_POINT && key[keyIndex] == 0) { // We found the key! Copy and return the value. codePoint = getCodePointAndForwardPointer(dict, &index); - while (codePoint != NOT_A_CODE_POINT - && outValueIndex < outValueSize) { + while (codePoint != NOT_A_CODE_POINT && outValueIndex < outValueSize) { outValue[outValueIndex++] = codePoint; codePoint = getCodePointAndForwardPointer(dict, &index); } @@ -314,7 +313,7 @@ static inline int childrenAddressSize(const uint8_t flags) { } static AK_FORCE_INLINE int shortcutByteSize(const uint8_t *const dict, const int pos) { - return ((int)(dict[pos] << 8)) + (dict[pos + 1]); + return (static_cast<int>(dict[pos] << 8)) + (dict[pos + 1]); } inline int BinaryFormat::skipChildrenPosition(const uint8_t flags, const int pos) { @@ -664,9 +663,8 @@ inline int BinaryFormat::getProbability(const int position, const std::map<int, if (bigramFreqIt != bigramMap->end()) { const int bigramFreq = bigramFreqIt->second; return computeFrequencyForBigram(unigramFreq, bigramFreq); - } else { - return backoff(unigramFreq); } + return backoff(unigramFreq); } } // namespace latinime #endif // LATINIME_BINARY_FORMAT_H diff --git a/native/jni/src/correction.cpp b/native/jni/src/correction.cpp index e892c8591..d4bd4aa00 100644 --- a/native/jni/src/correction.cpp +++ b/native/jni/src/correction.cpp @@ -112,7 +112,7 @@ void Correction::setCorrectionParams(const int skipPos, const int excessivePos, mMaxErrors = maxErrors; } -void Correction::checkState() { +void Correction::checkState() const { if (DEBUG_DICT) { int inputCount = 0; if (mSkipPos >= 0) ++inputCount; @@ -121,12 +121,12 @@ void Correction::checkState() { } } -bool Correction::sameAsTyped() { +bool Correction::sameAsTyped() const { return mProximityInfoState.sameAsTyped(mWord, mOutputIndex); } int Correction::getFreqForSplitMultipleWords(const int *freqArray, const int *wordLengthArray, - const int wordCount, const bool isSpaceProximity, const int *word) { + const int wordCount, const bool isSpaceProximity, const int *word) const { return Correction::RankingAlgorithm::calcFreqForSplitMultipleWords(freqArray, wordLengthArray, wordCount, this, isSpaceProximity, word); } @@ -677,7 +677,7 @@ inline static bool isUpperCase(unsigned short c) { const float factor = SuggestUtils::getDistanceScalingFactor(static_cast<float>(squaredDistance)); if (factor > 0.0f) { - multiplyRate((int)(factor * 100.0f), &finalFreq); + multiplyRate(static_cast<int>(factor * 100.0f), &finalFreq); } else if (squaredDistance == PROXIMITY_CHAR_WITHOUT_DISTANCE_INFO) { multiplyRate(WORDS_WITH_PROXIMITY_CHARACTER_DEMOTION_RATE, &finalFreq); } diff --git a/native/jni/src/correction.h b/native/jni/src/correction.h index 89e300d75..0873daef3 100644 --- a/native/jni/src/correction.h +++ b/native/jni/src/correction.h @@ -64,8 +64,8 @@ class Correction { void setCorrectionParams(const int skipPos, const int excessivePos, const int transposedPos, const int spaceProximityPos, const int missingSpacePos, const bool useFullEditDistance, const bool doAutoCompletion, const int maxErrors); - void checkState(); - bool sameAsTyped(); + void checkState() const; + bool sameAsTyped() const; bool initProcessState(const int index); int getInputIndex() const; @@ -77,7 +77,7 @@ class Correction { } int getFreqForSplitMultipleWords(const int *freqArray, const int *wordLengthArray, - const int wordCount, const bool isSpaceProximity, const int *word); + const int wordCount, const bool isSpaceProximity, const int *word) const; int getFinalProbability(const int probability, int **word, int *wordLength); int getFinalProbabilityForSubQueue(const int probability, int **word, int *wordLength, const int inputSize); diff --git a/native/jni/src/defines.h b/native/jni/src/defines.h index 922a746b8..9883168fe 100644 --- a/native/jni/src/defines.h +++ b/native/jni/src/defines.h @@ -370,7 +370,7 @@ static inline void prof_out(void) { // TODO: Remove #define MAX_POINTER_COUNT 1 -#define MAX_POINTER_COUNT_FOR_G 2 +#define MAX_POINTER_COUNT_G 2 // Size, in bytes, of the bloom filter index for bigrams // 128 gives us 1024 buckets. The probability of false positive is (1 - e ** (-kn/m))**k, diff --git a/native/jni/src/dic_traverse_wrapper.h b/native/jni/src/dic_traverse_wrapper.h index 9a1db3852..1108a45c8 100644 --- a/native/jni/src/dic_traverse_wrapper.h +++ b/native/jni/src/dic_traverse_wrapper.h @@ -31,8 +31,8 @@ class DicTraverseWrapper { } return 0; } - static void initDicTraverseSession(void *traverseSession, - const Dictionary *const dictionary, const int *prevWord, const int prevWordLength) { + static void initDicTraverseSession(void *traverseSession, const Dictionary *const dictionary, + const int *prevWord, const int prevWordLength) { if (sDicTraverseSessionInitMethod) { sDicTraverseSessionInitMethod(traverseSession, dictionary, prevWord, prevWordLength); } @@ -42,8 +42,7 @@ class DicTraverseWrapper { sDicTraverseSessionReleaseMethod(traverseSession); } } - static void setTraverseSessionFactoryMethod( - void *(*factoryMethod)(JNIEnv *, jstring)) { + static void setTraverseSessionFactoryMethod(void *(*factoryMethod)(JNIEnv *, jstring)) { sDicTraverseSessionFactoryMethod = factoryMethod; } static void setTraverseSessionInitMethod( @@ -53,6 +52,7 @@ class DicTraverseWrapper { static void setTraverseSessionReleaseMethod(void (*releaseMethod)(void *)) { sDicTraverseSessionReleaseMethod = releaseMethod; } + private: DISALLOW_IMPLICIT_CONSTRUCTORS(DicTraverseWrapper); static void *(*sDicTraverseSessionFactoryMethod)(JNIEnv *, jstring); diff --git a/native/jni/src/proximity_info.cpp b/native/jni/src/proximity_info.cpp index 8157fe2d0..a0bad1af4 100644 --- a/native/jni/src/proximity_info.cpp +++ b/native/jni/src/proximity_info.cpp @@ -110,8 +110,8 @@ bool ProximityInfo::hasSpaceProximity(const int x, const int y) const { return false; } - const int startIndex = ProximityInfoUtils::getStartIndexFromCoordinates( - MAX_PROXIMITY_CHARS_SIZE, x, y, CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH); + const int startIndex = ProximityInfoUtils::getStartIndexFromCoordinates(x, y, + CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH); if (DEBUG_PROXIMITY_INFO) { AKLOGI("hasSpaceProximity: index %d, %d, %d", startIndex, x, y); } diff --git a/native/jni/src/proximity_info.h b/native/jni/src/proximity_info.h index 6d571d7bb..f3a68e4f2 100644 --- a/native/jni/src/proximity_info.h +++ b/native/jni/src/proximity_info.h @@ -47,57 +47,21 @@ class ProximityInfo { // the radius of the key is assigned to zero. return mSweetSpotRadii[keyIndex] > 0.0f; } - float getSweetSpotRadiiAt(int keyIndex) const { - return mSweetSpotRadii[keyIndex]; - } - float getSweetSpotCenterXAt(int keyIndex) const { - return mSweetSpotCenterXs[keyIndex]; - } - float getSweetSpotCenterYAt(int keyIndex) const { - return mSweetSpotCenterYs[keyIndex]; - } + float getSweetSpotRadiiAt(int keyIndex) const { return mSweetSpotRadii[keyIndex]; } + float getSweetSpotCenterXAt(int keyIndex) const { return mSweetSpotCenterXs[keyIndex]; } + float getSweetSpotCenterYAt(int keyIndex) const { return mSweetSpotCenterYs[keyIndex]; } void calculateNearbyKeyCodes( const int x, const int y, const int primaryKey, int *inputCodes) const; - - bool hasTouchPositionCorrectionData() const { - return HAS_TOUCH_POSITION_CORRECTION_DATA; - } - - int getMostCommonKeyWidth() const { - return MOST_COMMON_KEY_WIDTH; - } - - int getMostCommonKeyWidthSquare() const { - return MOST_COMMON_KEY_WIDTH_SQUARE; - } - - int getKeyCount() const { - return KEY_COUNT; - } - - int getCellHeight() const { - return CELL_HEIGHT; - } - - int getCellWidth() const { - return CELL_WIDTH; - } - - int getGridWidth() const { - return GRID_WIDTH; - } - - int getGridHeight() const { - return GRID_HEIGHT; - } - - int getKeyboardWidth() const { - return KEYBOARD_WIDTH; - } - - int getKeyboardHeight() const { - return KEYBOARD_HEIGHT; - } + bool hasTouchPositionCorrectionData() const { return HAS_TOUCH_POSITION_CORRECTION_DATA; } + int getMostCommonKeyWidth() const { return MOST_COMMON_KEY_WIDTH; } + int getMostCommonKeyWidthSquare() const { return MOST_COMMON_KEY_WIDTH_SQUARE; } + int getKeyCount() const { return KEY_COUNT; } + int getCellHeight() const { return CELL_HEIGHT; } + int getCellWidth() const { return CELL_WIDTH; } + int getGridWidth() const { return GRID_WIDTH; } + int getGridHeight() const { return GRID_HEIGHT; } + int getKeyboardWidth() const { return KEYBOARD_WIDTH; } + int getKeyboardHeight() const { return KEYBOARD_HEIGHT; } int getKeyCenterXOfCodePointG(int charCode) const; int getKeyCenterYOfCodePointG(int charCode) const; @@ -109,9 +73,8 @@ class ProximityInfo { const int *const inputYCoordinates, const int inputSize, int *allInputCodes) const { ProximityInfoUtils::initializeProximities(inputCodes, inputXCoordinates, inputYCoordinates, inputSize, mKeyXCoordinates, mKeyYCoordinates, mKeyWidths, mKeyHeights, - mProximityCharsArray, MAX_PROXIMITY_CHARS_SIZE, CELL_HEIGHT, CELL_WIDTH, - GRID_WIDTH, MOST_COMMON_KEY_WIDTH, KEY_COUNT, mLocaleStr, &mCodeToKeyMap, - allInputCodes); + mProximityCharsArray, CELL_HEIGHT, CELL_WIDTH, GRID_WIDTH, MOST_COMMON_KEY_WIDTH, + KEY_COUNT, mLocaleStr, &mCodeToKeyMap, allInputCodes); } int getKeyIndexOf(const int c) const { diff --git a/native/jni/src/proximity_info_state_utils.cpp b/native/jni/src/proximity_info_state_utils.cpp index 9f85743e5..ac74a4e91 100644 --- a/native/jni/src/proximity_info_state_utils.cpp +++ b/native/jni/src/proximity_info_state_utils.cpp @@ -211,7 +211,7 @@ namespace latinime { ProximityInfoParams::NOT_A_DISTANCE_FLOAT; if (squaredDistance >= 0.0f) { normalizedSquaredDistances[i * MAX_PROXIMITY_CHARS_SIZE + j] = - (int) (squaredDistance + static_cast<int>(squaredDistance * ProximityInfoParams::NORMALIZED_SQUARED_DISTANCE_SCALING_FACTOR); } else { normalizedSquaredDistances[i * MAX_PROXIMITY_CHARS_SIZE + j] = diff --git a/native/jni/src/proximity_info_utils.h b/native/jni/src/proximity_info_utils.h index 24917d879..c50df57f9 100644 --- a/native/jni/src/proximity_info_utils.h +++ b/native/jni/src/proximity_info_utils.h @@ -49,9 +49,9 @@ class ProximityInfoUtils { const int *const inputXCoordinates, const int *const inputYCoordinates, const int inputSize, const int *const keyXCoordinates, const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights, - const int *const proximityCharsArray, const int maxProximityCharsSize, - const int cellHeight, const int cellWidth, const int gridWidth, - const int mostCommonKeyWidth, const int keyCount, const char *const localeStr, + const int *const proximityCharsArray, const int cellHeight, const int cellWidth, + const int gridWidth, const int mostCommonKeyWidth, const int keyCount, + const char *const localeStr, const hash_map_compat<int, int> *const codeToKeyMap, int *inputProximities) { // Initialize // - mInputCodes @@ -63,9 +63,8 @@ class ProximityInfoUtils { const int y = inputYCoordinates[i]; int *proximities = &inputProximities[i * MAX_PROXIMITY_CHARS_SIZE]; calculateProximities(keyXCoordinates, keyYCoordinates, keyWidths, keyHeights, - proximityCharsArray, maxProximityCharsSize, cellHeight, cellWidth, gridWidth, - mostCommonKeyWidth, keyCount, x, y, primaryKey, localeStr, codeToKeyMap, - proximities); + proximityCharsArray, cellHeight, cellWidth, gridWidth, mostCommonKeyWidth, + keyCount, x, y, primaryKey, localeStr, codeToKeyMap, proximities); } if (DEBUG_PROXIMITY_CHARS) { @@ -81,10 +80,9 @@ class ProximityInfoUtils { } } - static AK_FORCE_INLINE int getStartIndexFromCoordinates(const int maxProximityCharsSize, - const int x, const int y, const int cellHeight, const int cellWidth, - const int gridWidth) { - return ((y / cellHeight) * gridWidth + (x / cellWidth)) * maxProximityCharsSize; + static AK_FORCE_INLINE int getStartIndexFromCoordinates(const int x, const int y, + const int cellHeight, const int cellWidth, const int gridWidth) { + return ((y / cellHeight) * gridWidth + (x / cellWidth)) * MAX_PROXIMITY_CHARS_SIZE; } static inline float getSquaredDistanceFloat(const float x1, const float y1, const float x2, @@ -153,21 +151,18 @@ class ProximityInfoUtils { return left < right && top < bottom && x >= left && x < right && y >= top && y < bottom; } - static void calculateProximities( - const int *const keyXCoordinates, const int *const keyYCoordinates, - const int *const keyWidths, const int *keyHeights, - const int *const proximityCharsArray, - const int maxProximityCharsSize, const int cellHeight, const int cellWidth, + static void calculateProximities(const int *const keyXCoordinates, + const int *const keyYCoordinates, const int *const keyWidths, const int *keyHeights, + const int *const proximityCharsArray, const int cellHeight, const int cellWidth, const int gridWidth, const int mostCommonKeyWidth, const int keyCount, const int x, const int y, const int primaryKey, const char *const localeStr, const hash_map_compat<int, int> *const codeToKeyMap, int *proximities) { const int mostCommonKeyWidthSquare = mostCommonKeyWidth * mostCommonKeyWidth; int insertPos = 0; proximities[insertPos++] = primaryKey; - const int startIndex = getStartIndexFromCoordinates( - maxProximityCharsSize, x, y, cellHeight, cellWidth, gridWidth); + const int startIndex = getStartIndexFromCoordinates(x, y, cellHeight, cellWidth, gridWidth); if (startIndex >= 0) { - for (int i = 0; i < maxProximityCharsSize; ++i) { + for (int i = 0; i < MAX_PROXIMITY_CHARS_SIZE; ++i) { const int c = proximityCharsArray[startIndex + i]; if (c < KEYCODE_SPACE || c == primaryKey) { continue; @@ -179,7 +174,7 @@ class ProximityInfoUtils { keyWidths, keyHeights, keyIndex, x, y); if (onKey || distance < mostCommonKeyWidthSquare) { proximities[insertPos++] = c; - if (insertPos >= maxProximityCharsSize) { + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { if (DEBUG_DICT) { ASSERT(false); } @@ -191,7 +186,7 @@ class ProximityInfoUtils { AdditionalProximityChars::getAdditionalCharsSize(localeStr, primaryKey); if (additionalProximitySize > 0) { proximities[insertPos++] = ADDITIONAL_PROXIMITY_CHAR_DELIMITER_CODE; - if (insertPos >= maxProximityCharsSize) { + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { if (DEBUG_DICT) { ASSERT(false); } @@ -212,7 +207,7 @@ class ProximityInfoUtils { continue; } proximities[insertPos++] = ac; - if (insertPos >= maxProximityCharsSize) { + if (insertPos >= MAX_PROXIMITY_CHARS_SIZE) { if (DEBUG_DICT) { ASSERT(false); } @@ -222,7 +217,7 @@ class ProximityInfoUtils { } } // Add a delimiter for the proximity characters - for (int i = insertPos; i < maxProximityCharsSize; ++i) { + for (int i = insertPos; i < MAX_PROXIMITY_CHARS_SIZE; ++i) { proximities[i] = NOT_A_CODE_POINT; } } diff --git a/native/jni/src/words_priority_queue.h b/native/jni/src/words_priority_queue.h index e0833ce4b..8a22f051a 100644 --- a/native/jni/src/words_priority_queue.h +++ b/native/jni/src/words_priority_queue.h @@ -87,7 +87,7 @@ class WordsPriorityQueue { } } - SuggestedWord *top() { + SuggestedWord *top() const { if (mSuggestions.empty()) return 0; SuggestedWord *sw = mSuggestions.top(); return sw; |