Loading native/jni/src/suggest/core/dicnode/dic_node.h +7 −6 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include "suggest/core/dictionary/error_type_utils.h" #include "suggest/core/layout/proximity_info_state.h" #include "utils/char_utils.h" #include "utils/int_array_view.h" #if DEBUG_DICT #define LOGI_SHOW_ADD_COST_PROP \ Loading Loading @@ -136,17 +137,17 @@ class DicNode { } void initAsChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int unigramProbability, const int wordId, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { const int unigramProbability, const int wordId, const CodePointArrayView mergedCodePoints) { uint16_t newDepth = static_cast<uint16_t>(dicNode->getNodeCodePointCount() + 1); mIsCachedForNextSuggestion = dicNode->mIsCachedForNextSuggestion; const uint16_t newLeavingDepth = static_cast<uint16_t>( dicNode->mDicNodeProperties.getLeavingDepth() + mergedNodeCodePointCount); mDicNodeProperties.init(childrenPtNodeArrayPos, mergedNodeCodePoints[0], dicNode->mDicNodeProperties.getLeavingDepth() + mergedCodePoints.size()); mDicNodeProperties.init(childrenPtNodeArrayPos, mergedCodePoints[0], unigramProbability, wordId, newDepth, newLeavingDepth, dicNode->mDicNodeProperties.getPrevWordIds()); mDicNodeState.init(&dicNode->mDicNodeState, mergedNodeCodePointCount, mergedNodeCodePoints); mDicNodeState.init(&dicNode->mDicNodeState, mergedCodePoints.size(), mergedCodePoints.data()); PROF_NODE_COPY(&dicNode->mProfiler, mProfiler); } Loading native/jni/src/suggest/core/dicnode/dic_node_vector.h +3 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "defines.h" #include "suggest/core/dicnode/dic_node.h" #include "utils/int_array_view.h" namespace latinime { Loading Loading @@ -60,11 +61,11 @@ class DicNodeVector { void pushLeavingChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int unigramProbability, const int wordId, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { const CodePointArrayView mergedCodePoints) { ASSERT(!mLock); mDicNodes.emplace_back(); mDicNodes.back().initAsChild(dicNode, childrenPtNodeArrayPos, unigramProbability, wordId, mergedNodeCodePointCount, mergedNodeCodePoints); wordId, mergedCodePoints); } DicNode *operator[](const int id) { Loading native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -79,8 +79,7 @@ void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const d } const int wordId = isTerminal ? ptNodeParams.getHeadPos() : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), wordId, ptNodeParams.getCodePointCount(), ptNodeParams.getCodePoints()); ptNodeParams.getProbability(), wordId, ptNodeParams.getCodePointArrayView()); } if (readingHelper.isError()) { mIsCorrupted = true; Loading native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h +7 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h" #include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h" #include "utils/char_utils.h" #include "utils/int_array_view.h" namespace latinime { Loading Loading @@ -174,11 +175,17 @@ class PtNodeParams { return mParentPos; } AK_FORCE_INLINE const CodePointArrayView getCodePointArrayView() const { return CodePointArrayView(mCodePoints, mCodePointCount); } // TODO: Remove // Number of code points AK_FORCE_INLINE uint8_t getCodePointCount() const { return mCodePointCount; } // TODO: Remove AK_FORCE_INLINE const int *getCodePoints() const { return mCodePoints; } Loading native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -408,7 +408,7 @@ int PatriciaTriePolicy::createAndGetLeavingChildNode(const DicNode *const dicNod if (CharUtils::isInUnicodeSpace(mergedNodeCodePoints[0])) { const int wordId = PatriciaTrieReadingUtils::isTerminal(flags) ? ptNodePos : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, childrenPos, probability, wordId, mergedNodeCodePointCount, mergedNodeCodePoints); CodePointArrayView(mergedNodeCodePoints, mergedNodeCodePointCount)); } return siblingPos; } Loading Loading
native/jni/src/suggest/core/dicnode/dic_node.h +7 −6 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ #include "suggest/core/dictionary/error_type_utils.h" #include "suggest/core/layout/proximity_info_state.h" #include "utils/char_utils.h" #include "utils/int_array_view.h" #if DEBUG_DICT #define LOGI_SHOW_ADD_COST_PROP \ Loading Loading @@ -136,17 +137,17 @@ class DicNode { } void initAsChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int unigramProbability, const int wordId, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { const int unigramProbability, const int wordId, const CodePointArrayView mergedCodePoints) { uint16_t newDepth = static_cast<uint16_t>(dicNode->getNodeCodePointCount() + 1); mIsCachedForNextSuggestion = dicNode->mIsCachedForNextSuggestion; const uint16_t newLeavingDepth = static_cast<uint16_t>( dicNode->mDicNodeProperties.getLeavingDepth() + mergedNodeCodePointCount); mDicNodeProperties.init(childrenPtNodeArrayPos, mergedNodeCodePoints[0], dicNode->mDicNodeProperties.getLeavingDepth() + mergedCodePoints.size()); mDicNodeProperties.init(childrenPtNodeArrayPos, mergedCodePoints[0], unigramProbability, wordId, newDepth, newLeavingDepth, dicNode->mDicNodeProperties.getPrevWordIds()); mDicNodeState.init(&dicNode->mDicNodeState, mergedNodeCodePointCount, mergedNodeCodePoints); mDicNodeState.init(&dicNode->mDicNodeState, mergedCodePoints.size(), mergedCodePoints.data()); PROF_NODE_COPY(&dicNode->mProfiler, mProfiler); } Loading
native/jni/src/suggest/core/dicnode/dic_node_vector.h +3 −2 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ #include "defines.h" #include "suggest/core/dicnode/dic_node.h" #include "utils/int_array_view.h" namespace latinime { Loading Loading @@ -60,11 +61,11 @@ class DicNodeVector { void pushLeavingChild(const DicNode *const dicNode, const int childrenPtNodeArrayPos, const int unigramProbability, const int wordId, const uint16_t mergedNodeCodePointCount, const int *const mergedNodeCodePoints) { const CodePointArrayView mergedCodePoints) { ASSERT(!mLock); mDicNodes.emplace_back(); mDicNodes.back().initAsChild(dicNode, childrenPtNodeArrayPos, unigramProbability, wordId, mergedNodeCodePointCount, mergedNodeCodePoints); wordId, mergedCodePoints); } DicNode *operator[](const int id) { Loading
native/jni/src/suggest/policyimpl/dictionary/structure/backward/v402/ver4_patricia_trie_policy.cpp +1 −2 Original line number Diff line number Diff line Loading @@ -79,8 +79,7 @@ void Ver4PatriciaTriePolicy::createAndGetAllChildDicNodes(const DicNode *const d } const int wordId = isTerminal ? ptNodeParams.getHeadPos() : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, ptNodeParams.getChildrenPos(), ptNodeParams.getProbability(), wordId, ptNodeParams.getCodePointCount(), ptNodeParams.getCodePoints()); ptNodeParams.getProbability(), wordId, ptNodeParams.getCodePointArrayView()); } if (readingHelper.isError()) { mIsCorrupted = true; Loading
native/jni/src/suggest/policyimpl/dictionary/structure/pt_common/pt_node_params.h +7 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ #include "suggest/policyimpl/dictionary/structure/pt_common/patricia_trie_reading_utils.h" #include "suggest/policyimpl/dictionary/structure/v4/ver4_dict_constants.h" #include "utils/char_utils.h" #include "utils/int_array_view.h" namespace latinime { Loading Loading @@ -174,11 +175,17 @@ class PtNodeParams { return mParentPos; } AK_FORCE_INLINE const CodePointArrayView getCodePointArrayView() const { return CodePointArrayView(mCodePoints, mCodePointCount); } // TODO: Remove // Number of code points AK_FORCE_INLINE uint8_t getCodePointCount() const { return mCodePointCount; } // TODO: Remove AK_FORCE_INLINE const int *getCodePoints() const { return mCodePoints; } Loading
native/jni/src/suggest/policyimpl/dictionary/structure/v2/patricia_trie_policy.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -408,7 +408,7 @@ int PatriciaTriePolicy::createAndGetLeavingChildNode(const DicNode *const dicNod if (CharUtils::isInUnicodeSpace(mergedNodeCodePoints[0])) { const int wordId = PatriciaTrieReadingUtils::isTerminal(flags) ? ptNodePos : NOT_A_WORD_ID; childDicNodes->pushLeavingChild(dicNode, childrenPos, probability, wordId, mergedNodeCodePointCount, mergedNodeCodePoints); CodePointArrayView(mergedNodeCodePoints, mergedNodeCodePointCount)); } return siblingPos; } Loading