aboutsummaryrefslogtreecommitdiffstats
path: root/native/jni/src/binary_format.h
diff options
context:
space:
mode:
authorSatoshi Kataoka <satok@google.com>2013-04-17 19:47:32 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-04-17 19:47:32 -0700
commita23e25ccb7ad816574a666d9f56ecb44197482d5 (patch)
treeaff2f9defb9a17bcec0903abaabe4c784ab35a7f /native/jni/src/binary_format.h
parent7f8e55ec809f32a2b560cba2888dfce1cd49123c (diff)
parent93a429a7b5c5d7b5073cf9d7aa13e5af294e4b52 (diff)
downloadlatinime-a23e25ccb7ad816574a666d9f56ecb44197482d5.tar.gz
latinime-a23e25ccb7ad816574a666d9f56ecb44197482d5.tar.xz
latinime-a23e25ccb7ad816574a666d9f56ecb44197482d5.zip
am 93a429a7: am 252412d7: Use additional multi-word cost per language (for Russian)
* commit '93a429a7b5c5d7b5073cf9d7aa13e5af294e4b52': Use additional multi-word cost per language (for Russian)
Diffstat (limited to 'native/jni/src/binary_format.h')
-rw-r--r--native/jni/src/binary_format.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/native/jni/src/binary_format.h b/native/jni/src/binary_format.h
index 1c4061fd8..2d2e19501 100644
--- a/native/jni/src/binary_format.h
+++ b/native/jni/src/binary_format.h
@@ -92,6 +92,7 @@ class BinaryFormat {
const int unigramProbability, const int bigramProbability);
static int getProbability(const int position, const std::map<int, int> *bigramMap,
const uint8_t *bigramFilter, const int unigramProbability);
+ static float getMultiWordCostMultiplier(const uint8_t *const dict);
// Flags for special processing
// Those *must* match the flags in makedict (BinaryDictInputOutput#*_PROCESSING_FLAG) or
@@ -241,6 +242,17 @@ AK_FORCE_INLINE int BinaryFormat::getGroupCountAndForwardPointer(const uint8_t *
return ((msb & 0x7F) << 8) | dict[(*pos)++];
}
+inline float BinaryFormat::getMultiWordCostMultiplier(const uint8_t *const dict) {
+ const int headerValue = readHeaderValueInt(dict, "MULTIPLE_WORDS_DEMOTION_RATE");
+ if (headerValue == S_INT_MIN) {
+ return 1.0f;
+ }
+ if (headerValue <= 0) {
+ return static_cast<float>(MAX_VALUE_FOR_WEIGHTING);
+ }
+ return 100.0f / static_cast<float>(headerValue);
+}
+
inline uint8_t BinaryFormat::getFlagsAndForwardPointer(const uint8_t *const dict, int *pos) {
return dict[(*pos)++];
}