aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/src')
-rw-r--r--native/jni/src/suggest/core/dictionary/bloom_filter.h2
-rw-r--r--native/jni/src/suggest/core/dictionary/dictionary.cpp14
-rw-r--r--native/jni/src/suggest/core/dictionary/dictionary.h4
-rw-r--r--native/jni/src/suggest/core/dictionary/suggestions_output_utils.cpp20
-rw-r--r--native/jni/src/suggest/core/dictionary/suggestions_output_utils.h4
-rw-r--r--native/jni/src/suggest/core/policy/scoring.h4
-rw-r--r--native/jni/src/suggest/core/suggest.cpp4
-rw-r--r--native/jni/src/suggest/core/suggest.h2
-rw-r--r--native/jni/src/suggest/core/suggest_interface.h2
-rw-r--r--native/jni/src/suggest/policyimpl/typing/typing_scoring.h4
10 files changed, 31 insertions, 29 deletions
diff --git a/native/jni/src/suggest/core/dictionary/bloom_filter.h b/native/jni/src/suggest/core/dictionary/bloom_filter.h
index 5f9700486..e22c3ae5c 100644
--- a/native/jni/src/suggest/core/dictionary/bloom_filter.h
+++ b/native/jni/src/suggest/core/dictionary/bloom_filter.h
@@ -17,6 +17,7 @@
#ifndef LATINIME_BLOOM_FILTER_H
#define LATINIME_BLOOM_FILTER_H
+#include <cstring>
#include <stdint.h>
#include "defines.h"
@@ -35,6 +36,7 @@ class BloomFilter {
public:
BloomFilter() {
ASSERT(BIGRAM_FILTER_BYTE_SIZE * 8 >= BIGRAM_FILTER_MODULO);
+ memset(mFilter, 0, sizeof(mFilter));
}
// TODO: uint32_t position
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.cpp b/native/jni/src/suggest/core/dictionary/dictionary.cpp
index 9b71eff7a..035232f7a 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.cpp
+++ b/native/jni/src/suggest/core/dictionary/dictionary.cpp
@@ -46,7 +46,7 @@ Dictionary::Dictionary(JNIEnv *env, const DictionaryStructureWithBufferPolicy::S
int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint,
- const SuggestOptions *const suggestOptions, int *outWords, int *frequencies,
+ const SuggestOptions *const suggestOptions, int *outWords, int *outputScores,
int *spaceIndices, int *outputTypes, int *outputAutoCommitFirstWordConfidence) const {
TimeKeeper::setCurrentTime();
int result = 0;
@@ -55,9 +55,9 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession
traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
result = mGestureSuggest.get()->getSuggestions(proximityInfo, traverseSession, xcoordinates,
ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint, outWords,
- frequencies, spaceIndices, outputTypes, outputAutoCommitFirstWordConfidence);
+ outputScores, spaceIndices, outputTypes, outputAutoCommitFirstWordConfidence);
if (DEBUG_DICT) {
- DUMP_RESULT(outWords, frequencies);
+ DUMP_RESULT(outWords, outputScores);
}
return result;
} else {
@@ -65,20 +65,20 @@ int Dictionary::getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession
traverseSession, this, prevWordCodePoints, prevWordLength, suggestOptions);
result = mTypingSuggest.get()->getSuggestions(proximityInfo, traverseSession, xcoordinates,
ycoordinates, times, pointerIds, inputCodePoints, inputSize, commitPoint,
- outWords, frequencies, spaceIndices, outputTypes,
+ outWords, outputScores, spaceIndices, outputTypes,
outputAutoCommitFirstWordConfidence);
if (DEBUG_DICT) {
- DUMP_RESULT(outWords, frequencies);
+ DUMP_RESULT(outWords, outputScores);
}
return result;
}
}
-int Dictionary::getBigrams(const int *word, int length, int *outWords, int *frequencies,
+int Dictionary::getBigrams(const int *word, int length, int *outWords, int *outputScores,
int *outputTypes) const {
TimeKeeper::setCurrentTime();
if (length <= 0) return 0;
- return mBigramDictionary.get()->getPredictions(word, length, outWords, frequencies,
+ return mBigramDictionary.get()->getPredictions(word, length, outWords, outputScores,
outputTypes);
}
diff --git a/native/jni/src/suggest/core/dictionary/dictionary.h b/native/jni/src/suggest/core/dictionary/dictionary.h
index 7f311f331..c58be8475 100644
--- a/native/jni/src/suggest/core/dictionary/dictionary.h
+++ b/native/jni/src/suggest/core/dictionary/dictionary.h
@@ -64,10 +64,10 @@ class Dictionary {
int getSuggestions(ProximityInfo *proximityInfo, DicTraverseSession *traverseSession,
int *xcoordinates, int *ycoordinates, int *times, int *pointerIds, int *inputCodePoints,
int inputSize, int *prevWordCodePoints, int prevWordLength, int commitPoint,
- const SuggestOptions *const suggestOptions, int *outWords, int *frequencies,
+ const SuggestOptions *const suggestOptions, int *outWords, int *outputScores,
int *spaceIndices, int *outputTypes, int *outputAutoCommitFirstWordConfidence) const;
- int getBigrams(const int *word, int length, int *outWords, int *frequencies,
+ int getBigrams(const int *word, int length, int *outWords, int *outputScores,
int *outputTypes) const;
int getProbability(const int *word, int length) const;
diff --git a/native/jni/src/suggest/core/dictionary/suggestions_output_utils.cpp b/native/jni/src/suggest/core/dictionary/suggestions_output_utils.cpp
index e37811b88..07c2e6ea9 100644
--- a/native/jni/src/suggest/core/dictionary/suggestions_output_utils.cpp
+++ b/native/jni/src/suggest/core/dictionary/suggestions_output_utils.cpp
@@ -31,7 +31,7 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
// TODO: Split this method.
/* static */ int SuggestionsOutputUtils::outputSuggestions(
const Scoring *const scoringPolicy, DicTraverseSession *traverseSession,
- int *frequencies, int *outputCodePoints, int *outputIndicesToPartialCommit,
+ int *outputScores, int *outputCodePoints, int *outputIndicesToPartialCommit,
int *outputTypes, int *outputAutoCommitFirstWordConfidence) {
#if DEBUG_EVALUATE_MOST_PROBABLE_STRING
const int terminalSize = 0;
@@ -52,7 +52,7 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
// Insert most probable word at index == 0 as long as there is one terminal at least
const bool hasMostProbableString =
scoringPolicy->getMostProbableString(traverseSession, terminalSize, languageWeight,
- &outputCodePoints[0], &outputTypes[0], &frequencies[0]);
+ &outputCodePoints[0], &outputTypes[0], &outputScores[0]);
if (hasMostProbableString) {
outputIndicesToPartialCommit[outputWordIndex] = NOT_AN_INDEX;
++outputWordIndex;
@@ -97,7 +97,7 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
const bool isExactMatch =
ErrorTypeUtils::isExactMatch(terminalDicNode->getContainedErrorTypes());
const bool isFirstCharUppercase = terminalDicNode->isFirstCharUppercase();
- // Heuristic: We exclude freq=0 first-char-uppercase words from exact match.
+ // Heuristic: We exclude probability=0 first-char-uppercase words from exact match.
// (e.g. "AMD" and "and")
const bool isSafeExactMatch = isExactMatch
&& !(isPossiblyOffensiveWord && isFirstCharUppercase);
@@ -123,7 +123,7 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
// Don't output invalid words. However, we still need to submit their shortcuts if any.
if (isValidWord) {
outputTypes[outputWordIndex] = Dictionary::KIND_CORRECTION | outputTypeFlags;
- frequencies[outputWordIndex] = finalScore;
+ outputScores[outputWordIndex] = finalScore;
if (outputSecondWordFirstLetterInputIndex) {
outputIndicesToPartialCommit[outputWordIndex] =
terminalDicNode->getSecondWordFirstInputIndex(
@@ -151,7 +151,7 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
terminalDicNode->getContainedErrorTypes(),
true /* forceCommit */, boostExactMatches) : finalScore;
const int updatedOutputWordIndex = outputShortcuts(&shortcutIt,
- outputWordIndex, shortcutBaseScore, outputCodePoints, frequencies, outputTypes,
+ outputWordIndex, shortcutBaseScore, outputCodePoints, outputScores, outputTypes,
sameAsTyped);
const int secondWordFirstInputIndex = terminalDicNode->getSecondWordFirstInputIndex(
traverseSession->getProximityInfoState(0));
@@ -168,8 +168,8 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
}
if (hasMostProbableString) {
- scoringPolicy->safetyNetForMostProbableString(terminalSize, maxScore,
- &outputCodePoints[0], &frequencies[0]);
+ scoringPolicy->safetyNetForMostProbableString(outputWordIndex, maxScore,
+ &outputCodePoints[0], outputScores);
}
return outputWordIndex;
}
@@ -229,7 +229,7 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
/* static */ int SuggestionsOutputUtils::outputShortcuts(
BinaryDictionaryShortcutIterator *const shortcutIt,
int outputWordIndex, const int finalScore, int *const outputCodePoints,
- int *const frequencies, int *const outputTypes, const bool sameAsTyped) {
+ int *const outputScores, int *const outputTypes, const bool sameAsTyped) {
int shortcutTarget[MAX_WORD_LENGTH];
while (shortcutIt->hasNextShortcutTarget() && outputWordIndex < MAX_RESULTS) {
bool isWhilelist;
@@ -249,8 +249,8 @@ const int SuggestionsOutputUtils::MIN_LEN_FOR_MULTI_WORD_AUTOCORRECT = 16;
kind = Dictionary::KIND_SHORTCUT;
}
outputTypes[outputWordIndex] = kind;
- frequencies[outputWordIndex] = shortcutScore;
- frequencies[outputWordIndex] = max(S_INT_MIN + 1, shortcutScore) - 1;
+ outputScores[outputWordIndex] = shortcutScore;
+ outputScores[outputWordIndex] = max(S_INT_MIN + 1, shortcutScore) - 1;
const int startIndex2 = outputWordIndex * MAX_WORD_LENGTH;
DicNodeUtils::appendTwoWords(0, 0, shortcutTarget, shortcutTargetStringLength,
&outputCodePoints[startIndex2]);
diff --git a/native/jni/src/suggest/core/dictionary/suggestions_output_utils.h b/native/jni/src/suggest/core/dictionary/suggestions_output_utils.h
index 460e26082..d456a545f 100644
--- a/native/jni/src/suggest/core/dictionary/suggestions_output_utils.h
+++ b/native/jni/src/suggest/core/dictionary/suggestions_output_utils.h
@@ -32,7 +32,7 @@ class SuggestionsOutputUtils {
* Outputs the final list of suggestions (i.e., terminal nodes).
*/
static int outputSuggestions(const Scoring *const scoringPolicy,
- DicTraverseSession *traverseSession, int *frequencies, int *outputCodePoints,
+ DicTraverseSession *traverseSession, int *outputScores, int *outputCodePoints,
int *outputIndicesToPartialCommit, int *outputTypes,
int *outputAutoCommitFirstWordConfidence);
@@ -46,7 +46,7 @@ class SuggestionsOutputUtils {
static int outputShortcuts(BinaryDictionaryShortcutIterator *const shortcutIt,
int outputWordIndex, const int finalScore, int *const outputCodePoints,
- int *const frequencies, int *const outputTypes, const bool sameAsTyped);
+ int *const outputScores, int *const outputTypes, const bool sameAsTyped);
};
} // namespace latinime
#endif // LATINIME_SUGGESTIONS_OUTPUT_UTILS
diff --git a/native/jni/src/suggest/core/policy/scoring.h b/native/jni/src/suggest/core/policy/scoring.h
index e581a97c3..0251475d5 100644
--- a/native/jni/src/suggest/core/policy/scoring.h
+++ b/native/jni/src/suggest/core/policy/scoring.h
@@ -33,8 +33,8 @@ class Scoring {
virtual bool getMostProbableString(const DicTraverseSession *const traverseSession,
const int terminalSize, const float languageWeight, int *const outputCodePoints,
int *const type, int *const freq) const = 0;
- virtual void safetyNetForMostProbableString(const int terminalSize,
- const int maxScore, int *const outputCodePoints, int *const frequencies) const = 0;
+ virtual void safetyNetForMostProbableString(const int scoreCount,
+ const int maxScore, int *const outputCodePoints, int *const scores) const = 0;
virtual float getAdjustedLanguageWeight(DicTraverseSession *const traverseSession,
DicNode *const terminals, const int size) const = 0;
virtual float getDoubleLetterDemotionDistanceCost(
diff --git a/native/jni/src/suggest/core/suggest.cpp b/native/jni/src/suggest/core/suggest.cpp
index 7cd237284..56acc2dc1 100644
--- a/native/jni/src/suggest/core/suggest.cpp
+++ b/native/jni/src/suggest/core/suggest.cpp
@@ -44,7 +44,7 @@ const int Suggest::MIN_CONTINUOUS_SUGGESTION_INPUT_SIZE = 2;
*/
int Suggest::getSuggestions(ProximityInfo *pInfo, void *traverseSession,
int *inputXs, int *inputYs, int *times, int *pointerIds, int *inputCodePoints,
- int inputSize, int commitPoint, int *outWords, int *frequencies, int *outputIndices,
+ int inputSize, int commitPoint, int *outWords, int *outputScores, int *outputIndices,
int *outputTypes, int *outputAutoCommitFirstWordConfidence) const {
PROF_OPEN;
PROF_START(0);
@@ -66,7 +66,7 @@ int Suggest::getSuggestions(ProximityInfo *pInfo, void *traverseSession,
}
PROF_END(1);
PROF_START(2);
- const int size = SuggestionsOutputUtils::outputSuggestions(SCORING, tSession, frequencies,
+ const int size = SuggestionsOutputUtils::outputSuggestions(SCORING, tSession, outputScores,
outWords, outputIndices, outputTypes, outputAutoCommitFirstWordConfidence);
PROF_END(2);
PROF_CLOSE;
diff --git a/native/jni/src/suggest/core/suggest.h b/native/jni/src/suggest/core/suggest.h
index 5feb04faa..b1d12ad9a 100644
--- a/native/jni/src/suggest/core/suggest.h
+++ b/native/jni/src/suggest/core/suggest.h
@@ -48,7 +48,7 @@ class Suggest : public SuggestInterface {
AK_FORCE_INLINE virtual ~Suggest() {}
int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs, int *inputYs,
int *times, int *pointerIds, int *inputCodePoints, int inputSize, int commitPoint,
- int *outWords, int *frequencies, int *outputIndices, int *outputTypes,
+ int *outWords, int *outputScores, int *outputIndices, int *outputTypes,
int *outputAutoCommitFirstWordConfidence) const;
private:
diff --git a/native/jni/src/suggest/core/suggest_interface.h b/native/jni/src/suggest/core/suggest_interface.h
index 4deb4d924..9a0758085 100644
--- a/native/jni/src/suggest/core/suggest_interface.h
+++ b/native/jni/src/suggest/core/suggest_interface.h
@@ -27,7 +27,7 @@ class SuggestInterface {
public:
virtual int getSuggestions(ProximityInfo *pInfo, void *traverseSession, int *inputXs,
int *inputYs, int *times, int *pointerIds, int *inputCodePoints, int inputSize,
- int commitPoint, int *outWords, int *frequencies, int *outputIndices,
+ int commitPoint, int *outWords, int *outputScores, int *outputIndices,
int *outputTypes, int *outputAutoCommitFirstWordConfidence) const = 0;
SuggestInterface() {}
virtual ~SuggestInterface() {}
diff --git a/native/jni/src/suggest/policyimpl/typing/typing_scoring.h b/native/jni/src/suggest/policyimpl/typing/typing_scoring.h
index 8b405e8de..7ef905df7 100644
--- a/native/jni/src/suggest/policyimpl/typing/typing_scoring.h
+++ b/native/jni/src/suggest/policyimpl/typing/typing_scoring.h
@@ -39,8 +39,8 @@ class TypingScoring : public Scoring {
return false;
}
- AK_FORCE_INLINE void safetyNetForMostProbableString(const int terminalSize,
- const int maxScore, int *const outputCodePoints, int *const frequencies) const {
+ AK_FORCE_INLINE void safetyNetForMostProbableString(const int scoreCount,
+ const int maxScore, int *const outputCodePoints, int *const scores) const {
}
AK_FORCE_INLINE float getAdjustedLanguageWeight(DicTraverseSession *const traverseSession,