Last active
January 23, 2020 05:16
-
-
Save eiennohito/1520c4aedb9c74edfe9e09b2b7b8bba5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "core/impl/feature_impl_combine.h" | |
#include "core/impl/feature_impl_ngram_partial.h" | |
#include "core/impl/feature_impl_prim.h" | |
#include "core/impl/feature_impl_ngram_partial_kernels.h" | |
#include "jpp_jumandic_cg.h" | |
namespace jumanpp_generated { | |
namespace { | |
class NgramFeatureStaticApply_JumandicStatic final : public ::jumanpp::core::features::impl::NgramFeatureApplyImpl < NgramFeatureStaticApply_JumandicStatic > { | |
public : | |
inline void apply(jumanpp::util::MutableArraySlice<jumanpp::u32> result, | |
const jumanpp::util::ArraySlice<jumanpp::u64> &t2, | |
const jumanpp::util::ArraySlice<jumanpp::u64> &t1, | |
const jumanpp::util::ArraySlice<jumanpp::u64> &t0) const noexcept { | |
result.at(0) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{0ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(8)).result()); | |
result.at(1) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{1ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(9)).result()); | |
result.at(2) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{2ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(0)).result()); | |
result.at(3) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{3ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(10)).result()); | |
result.at(4) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{4ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(1)).result()); | |
result.at(5) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{5ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(14)).result()); | |
result.at(6) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{6ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(11)).result()); | |
result.at(7) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{7ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(15)).result()); | |
result.at(8) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{8ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(16)).result()); | |
result.at(9) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{9ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(17)).result()); | |
result.at(10) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{10ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(12)).result()); | |
result.at(11) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{11ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(18)).result()); | |
result.at(12) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{12ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(19)).result()); | |
result.at(13) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{13ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(20)).result()); | |
result.at(14) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{14ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(21)).result()); | |
result.at(15) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{15ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(22)).result()); | |
result.at(16) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{16ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(23)).result()); | |
result.at(17) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{17ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(24)).result()); | |
result.at(18) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{18ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(25)).result()); | |
result.at(19) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{19ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(26)).result()); | |
result.at(20) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{20ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(27)).result()); | |
result.at(21) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{21ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(28)).result()); | |
result.at(22) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{22ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(29)).result()); | |
result.at(23) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{23ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(30)).result()); | |
result.at(24) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{24ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(31)).result()); | |
result.at(25) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{25ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(32)).result()); | |
result.at(26) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{26ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(33)).result()); | |
result.at(27) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{27ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(34)).result()); | |
result.at(28) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{28ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(35)).result()); | |
result.at(29) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{29ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(36)).result()); | |
result.at(30) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{30ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(13)).result()); | |
result.at(31) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(3).mix(::jumanpp::u64{31ULL}).mix(::jumanpp::u64{5575843856927ULL}).mix(t0.at(37)).result()); | |
result.at(32) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{32ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(0)).mix(t1.at(0)).result()); | |
result.at(33) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{33ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(1)).mix(t1.at(0)).result()); | |
result.at(34) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{34ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(0)).mix(t1.at(1)).result()); | |
result.at(35) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{35ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(1)).mix(t1.at(1)).result()); | |
result.at(36) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{36ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(4)).mix(t1.at(1)).result()); | |
result.at(37) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{37ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(2)).mix(t1.at(1)).result()); | |
result.at(38) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{38ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(5)).mix(t1.at(1)).result()); | |
result.at(39) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{39ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(6)).mix(t1.at(1)).result()); | |
result.at(40) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{40ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(1)).mix(t1.at(4)).result()); | |
result.at(41) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{41ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(4)).mix(t1.at(4)).result()); | |
result.at(42) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{42ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(2)).mix(t1.at(4)).result()); | |
result.at(43) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{43ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(6)).mix(t1.at(4)).result()); | |
result.at(44) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{44ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(1)).mix(t1.at(2)).result()); | |
result.at(45) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{45ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(4)).mix(t1.at(2)).result()); | |
result.at(46) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{46ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(2)).mix(t1.at(2)).result()); | |
result.at(47) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{47ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(6)).mix(t1.at(2)).result()); | |
result.at(48) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{48ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(1)).mix(t1.at(5)).result()); | |
result.at(49) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{49ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(5)).mix(t1.at(5)).result()); | |
result.at(50) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{50ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(6)).mix(t1.at(5)).result()); | |
result.at(51) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{51ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(1)).mix(t1.at(6)).result()); | |
result.at(52) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{52ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(4)).mix(t1.at(6)).result()); | |
result.at(53) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{53ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(2)).mix(t1.at(6)).result()); | |
result.at(54) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{54ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(5)).mix(t1.at(6)).result()); | |
result.at(55) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{55ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(6)).mix(t1.at(6)).result()); | |
result.at(56) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{56ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(3)).mix(t1.at(3)).result()); | |
result.at(57) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{57ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(12)).mix(t1.at(12)).result()); | |
result.at(58) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{58ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(9)).mix(t1.at(8)).result()); | |
result.at(59) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{59ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(8)).mix(t1.at(9)).result()); | |
result.at(60) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{60ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(10)).mix(t1.at(10)).result()); | |
result.at(61) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{61ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(0)).mix(t1.at(10)).result()); | |
result.at(62) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{62ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(7)).mix(t1.at(7)).result()); | |
result.at(63) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{63ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(10)).mix(t1.at(0)).result()); | |
result.at(64) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{64ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(0)).mix(t1.at(11)).result()); | |
result.at(65) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{65ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(11)).mix(t1.at(0)).result()); | |
result.at(66) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{66ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(13)).mix(t1.at(13)).result()); | |
result.at(67) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{67ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(13)).mix(t1.at(3)).result()); | |
result.at(68) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(4).mix(::jumanpp::u64{68ULL}).mix(::jumanpp::u64{5575847461935ULL}).mix(t0.at(3)).mix(t1.at(13)).result()); | |
result.at(69) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(5).mix(::jumanpp::u64{69ULL}).mix(::jumanpp::u64{89213361200927ULL}).mix(t0.at(0)).mix(t1.at(0)).mix(t2.at(0)).result()); | |
result.at(70) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(5).mix(::jumanpp::u64{70ULL}).mix(::jumanpp::u64{89213361200927ULL}).mix(t0.at(1)).mix(t1.at(1)).mix(t2.at(1)).result()); | |
result.at(71) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(5).mix(::jumanpp::u64{71ULL}).mix(::jumanpp::u64{89213361200927ULL}).mix(t0.at(2)).mix(t1.at(2)).mix(t2.at(2)).result()); | |
result.at(72) = static_cast<::jumanpp::u32>(jumanpp::util::hashing::FastHash1{}.mix(5).mix(::jumanpp::u64{72ULL}).mix(::jumanpp::u64{89213361200927ULL}).mix(t0.at(3)).mix(t1.at(3)).mix(t2.at(3)).result()); | |
} // void apply | |
}; // class NgramFeatureStaticApply_JumandicStatic | |
class PartNgramFeatureStaticApply_JumandicStatic final : public ::jumanpp::core::features::impl::PartialNgramFeatureApplyImpl< PartNgramFeatureStaticApply_JumandicStatic > { | |
public: | |
void uniStep0(jumanpp::util::ArraySlice<jumanpp::u64> patterns, jumanpp::u32 mask, ::jumanpp::core::analysis::WeightBuffer weights, jumanpp::util::MutableArraySlice<jumanpp::u32> result) const noexcept { | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_0_{0, 0, 8}; | |
auto uni_v_0 = fng_uni_0_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_0); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_1_{1, 1, 9}; | |
auto uni_v_1 = fng_uni_1_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_1); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_2_{2, 2, 0}; | |
auto uni_v_2 = fng_uni_2_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_2); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_3_{3, 3, 10}; | |
auto uni_v_3 = fng_uni_3_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_3); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_4_{4, 4, 1}; | |
auto uni_v_4 = fng_uni_4_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_4); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_5_{5, 5, 14}; | |
auto uni_v_5 = fng_uni_5_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_5); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_6_{6, 6, 11}; | |
auto uni_v_6 = fng_uni_6_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_6); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_7_{7, 7, 15}; | |
auto uni_v_7 = fng_uni_7_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_7); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_8_{8, 8, 16}; | |
auto uni_v_8 = fng_uni_8_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_8); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_9_{9, 9, 17}; | |
auto uni_v_9 = fng_uni_9_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_9); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_10_{10, 10, 12}; | |
auto uni_v_10 = fng_uni_10_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_10); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_11_{11, 11, 18}; | |
auto uni_v_11 = fng_uni_11_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_11); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_12_{12, 12, 19}; | |
auto uni_v_12 = fng_uni_12_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_12); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_13_{13, 13, 20}; | |
auto uni_v_13 = fng_uni_13_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_13); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_14_{14, 14, 21}; | |
auto uni_v_14 = fng_uni_14_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_14); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_15_{15, 15, 22}; | |
auto uni_v_15 = fng_uni_15_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_15); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_16_{16, 16, 23}; | |
auto uni_v_16 = fng_uni_16_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_16); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_17_{17, 17, 24}; | |
auto uni_v_17 = fng_uni_17_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_17); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_18_{18, 18, 25}; | |
auto uni_v_18 = fng_uni_18_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_18); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_19_{19, 19, 26}; | |
auto uni_v_19 = fng_uni_19_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_19); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_20_{20, 20, 27}; | |
auto uni_v_20 = fng_uni_20_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_20); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_21_{21, 21, 28}; | |
auto uni_v_21 = fng_uni_21_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_21); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_22_{22, 22, 29}; | |
auto uni_v_22 = fng_uni_22_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_22); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_23_{23, 23, 30}; | |
auto uni_v_23 = fng_uni_23_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_23); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_24_{24, 24, 31}; | |
auto uni_v_24 = fng_uni_24_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_24); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_25_{25, 25, 32}; | |
auto uni_v_25 = fng_uni_25_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_25); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_26_{26, 26, 33}; | |
auto uni_v_26 = fng_uni_26_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_26); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_27_{27, 27, 34}; | |
auto uni_v_27 = fng_uni_27_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_27); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_28_{28, 28, 35}; | |
auto uni_v_28 = fng_uni_28_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_28); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_29_{29, 29, 36}; | |
auto uni_v_29 = fng_uni_29_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_29); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_30_{30, 30, 13}; | |
auto uni_v_30 = fng_uni_30_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_30); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_31_{31, 31, 37}; | |
auto uni_v_31 = fng_uni_31_.step0(patterns, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(uni_v_31); | |
} | |
void biStep0(jumanpp::util::ArraySlice<jumanpp::u64> patterns, jumanpp::util::MutableArraySlice<jumanpp::u64> state) const noexcept { | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_32_{0, 32, 0, 0}; | |
fng_bi_32_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_33_{1, 33, 1, 0}; | |
fng_bi_33_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_34_{2, 34, 0, 1}; | |
fng_bi_34_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_35_{3, 35, 1, 1}; | |
fng_bi_35_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_36_{4, 36, 4, 1}; | |
fng_bi_36_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_37_{5, 37, 2, 1}; | |
fng_bi_37_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_38_{6, 38, 5, 1}; | |
fng_bi_38_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_39_{7, 39, 6, 1}; | |
fng_bi_39_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_40_{8, 40, 1, 4}; | |
fng_bi_40_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_41_{9, 41, 4, 4}; | |
fng_bi_41_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_42_{10, 42, 2, 4}; | |
fng_bi_42_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_43_{11, 43, 6, 4}; | |
fng_bi_43_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_44_{12, 44, 1, 2}; | |
fng_bi_44_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_45_{13, 45, 4, 2}; | |
fng_bi_45_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_46_{14, 46, 2, 2}; | |
fng_bi_46_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_47_{15, 47, 6, 2}; | |
fng_bi_47_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_48_{16, 48, 1, 5}; | |
fng_bi_48_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_49_{17, 49, 5, 5}; | |
fng_bi_49_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_50_{18, 50, 6, 5}; | |
fng_bi_50_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_51_{19, 51, 1, 6}; | |
fng_bi_51_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_52_{20, 52, 4, 6}; | |
fng_bi_52_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_53_{21, 53, 2, 6}; | |
fng_bi_53_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_54_{22, 54, 5, 6}; | |
fng_bi_54_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_55_{23, 55, 6, 6}; | |
fng_bi_55_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_56_{24, 56, 3, 3}; | |
fng_bi_56_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_57_{25, 57, 12, 12}; | |
fng_bi_57_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_58_{26, 58, 9, 8}; | |
fng_bi_58_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_59_{27, 59, 8, 9}; | |
fng_bi_59_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_60_{28, 60, 10, 10}; | |
fng_bi_60_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_61_{29, 61, 0, 10}; | |
fng_bi_61_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_62_{30, 62, 7, 7}; | |
fng_bi_62_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_63_{31, 63, 10, 0}; | |
fng_bi_63_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_64_{32, 64, 0, 11}; | |
fng_bi_64_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_65_{33, 65, 11, 0}; | |
fng_bi_65_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_66_{34, 66, 13, 13}; | |
fng_bi_66_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_67_{35, 67, 13, 3}; | |
fng_bi_67_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_68_{36, 68, 3, 13}; | |
fng_bi_68_.step0(patterns, state); | |
} | |
void biStep1(jumanpp::util::ArraySlice<jumanpp::u64> patterns, jumanpp::util::ArraySlice<jumanpp::u64> state, jumanpp::u32 mask, jumanpp::core::analysis::WeightBuffer weights, jumanpp::util::MutableArraySlice<jumanpp::u32> result) const noexcept { | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_32_{0, 32, 0, 0}; | |
auto bi_val_0 = fng_bi_32_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_0); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_33_{1, 33, 1, 0}; | |
auto bi_val_1 = fng_bi_33_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_1); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_34_{2, 34, 0, 1}; | |
auto bi_val_2 = fng_bi_34_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_2); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_35_{3, 35, 1, 1}; | |
auto bi_val_3 = fng_bi_35_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_3); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_36_{4, 36, 4, 1}; | |
auto bi_val_4 = fng_bi_36_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_4); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_37_{5, 37, 2, 1}; | |
auto bi_val_5 = fng_bi_37_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_5); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_38_{6, 38, 5, 1}; | |
auto bi_val_6 = fng_bi_38_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_6); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_39_{7, 39, 6, 1}; | |
auto bi_val_7 = fng_bi_39_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_7); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_40_{8, 40, 1, 4}; | |
auto bi_val_8 = fng_bi_40_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_8); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_41_{9, 41, 4, 4}; | |
auto bi_val_9 = fng_bi_41_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_9); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_42_{10, 42, 2, 4}; | |
auto bi_val_10 = fng_bi_42_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_10); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_43_{11, 43, 6, 4}; | |
auto bi_val_11 = fng_bi_43_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_11); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_44_{12, 44, 1, 2}; | |
auto bi_val_12 = fng_bi_44_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_12); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_45_{13, 45, 4, 2}; | |
auto bi_val_13 = fng_bi_45_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_13); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_46_{14, 46, 2, 2}; | |
auto bi_val_14 = fng_bi_46_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_14); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_47_{15, 47, 6, 2}; | |
auto bi_val_15 = fng_bi_47_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_15); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_48_{16, 48, 1, 5}; | |
auto bi_val_16 = fng_bi_48_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_16); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_49_{17, 49, 5, 5}; | |
auto bi_val_17 = fng_bi_49_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_17); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_50_{18, 50, 6, 5}; | |
auto bi_val_18 = fng_bi_50_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_18); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_51_{19, 51, 1, 6}; | |
auto bi_val_19 = fng_bi_51_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_19); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_52_{20, 52, 4, 6}; | |
auto bi_val_20 = fng_bi_52_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_20); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_53_{21, 53, 2, 6}; | |
auto bi_val_21 = fng_bi_53_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_21); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_54_{22, 54, 5, 6}; | |
auto bi_val_22 = fng_bi_54_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_22); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_55_{23, 55, 6, 6}; | |
auto bi_val_23 = fng_bi_55_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_23); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_56_{24, 56, 3, 3}; | |
auto bi_val_24 = fng_bi_56_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_24); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_57_{25, 57, 12, 12}; | |
auto bi_val_25 = fng_bi_57_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_25); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_58_{26, 58, 9, 8}; | |
auto bi_val_26 = fng_bi_58_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_26); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_59_{27, 59, 8, 9}; | |
auto bi_val_27 = fng_bi_59_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_27); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_60_{28, 60, 10, 10}; | |
auto bi_val_28 = fng_bi_60_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_28); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_61_{29, 61, 0, 10}; | |
auto bi_val_29 = fng_bi_61_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_29); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_62_{30, 62, 7, 7}; | |
auto bi_val_30 = fng_bi_62_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_30); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_63_{31, 63, 10, 0}; | |
auto bi_val_31 = fng_bi_63_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_31); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_64_{32, 64, 0, 11}; | |
auto bi_val_32 = fng_bi_64_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_32); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_65_{33, 65, 11, 0}; | |
auto bi_val_33 = fng_bi_65_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_33); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_66_{34, 66, 13, 13}; | |
auto bi_val_34 = fng_bi_66_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_34); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_67_{35, 67, 13, 3}; | |
auto bi_val_35 = fng_bi_67_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_35); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_68_{36, 68, 3, 13}; | |
auto bi_val_36 = fng_bi_68_.step1(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(bi_val_36); | |
} | |
void triStep0(jumanpp::util::ArraySlice<jumanpp::u64> patterns, jumanpp::util::MutableArraySlice<jumanpp::u64> state) const noexcept { | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_69_{0, 69, 0, 0, 0}; | |
fng_tri_69_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_70_{1, 70, 1, 1, 1}; | |
fng_tri_70_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_71_{2, 71, 2, 2, 2}; | |
fng_tri_71_.step0(patterns, state); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_72_{3, 72, 3, 3, 3}; | |
fng_tri_72_.step0(patterns, state); | |
} | |
void triStep1(jumanpp::util::ArraySlice<jumanpp::u64> patterns, jumanpp::util::ArraySlice<jumanpp::u64> state, jumanpp::util::MutableArraySlice<jumanpp::u64> result) const noexcept { | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_69_{0, 69, 0, 0, 0}; | |
fng_tri_69_.step1(patterns, state, result); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_70_{1, 70, 1, 1, 1}; | |
fng_tri_70_.step1(patterns, state, result); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_71_{2, 71, 2, 2, 2}; | |
fng_tri_71_.step1(patterns, state, result); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_72_{3, 72, 3, 3, 3}; | |
fng_tri_72_.step1(patterns, state, result); | |
} | |
void triStep2(jumanpp::util::ArraySlice<jumanpp::u64> patterns, jumanpp::util::ArraySlice<jumanpp::u64> state, jumanpp::u32 mask, jumanpp::core::analysis::WeightBuffer weights, jumanpp::util::MutableArraySlice<jumanpp::u32> result) const noexcept { | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_69_{0, 69, 0, 0, 0}; | |
auto tri_v_0 = fng_tri_69_.step2(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(tri_v_0); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_70_{1, 70, 1, 1, 1}; | |
auto tri_v_1 = fng_tri_70_.step2(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(tri_v_1); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_71_{2, 71, 2, 2, 2}; | |
auto tri_v_2 = fng_tri_71_.step2(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(tri_v_2); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_72_{3, 72, 3, 3, 3}; | |
auto tri_v_3 = fng_tri_72_.step2(patterns, state, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(tri_v_3); | |
} | |
void biFull(jumanpp::util::ArraySlice<jumanpp::u64> t0, jumanpp::util::ArraySlice<jumanpp::u64> t1, jumanpp::u32 mask, jumanpp::core::analysis::WeightBuffer weights, jumanpp::util::MutableArraySlice<jumanpp::u32> result) const noexcept { | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_32_{0, 32, 0, 0}; | |
auto r_0 = fng_bi_32_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_0); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_33_{1, 33, 1, 0}; | |
auto r_1 = fng_bi_33_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_1); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_34_{2, 34, 0, 1}; | |
auto r_2 = fng_bi_34_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_2); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_35_{3, 35, 1, 1}; | |
auto r_3 = fng_bi_35_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_3); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_36_{4, 36, 4, 1}; | |
auto r_4 = fng_bi_36_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_4); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_37_{5, 37, 2, 1}; | |
auto r_5 = fng_bi_37_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_5); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_38_{6, 38, 5, 1}; | |
auto r_6 = fng_bi_38_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_6); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_39_{7, 39, 6, 1}; | |
auto r_7 = fng_bi_39_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_7); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_40_{8, 40, 1, 4}; | |
auto r_8 = fng_bi_40_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_8); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_41_{9, 41, 4, 4}; | |
auto r_9 = fng_bi_41_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_9); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_42_{10, 42, 2, 4}; | |
auto r_10 = fng_bi_42_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_10); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_43_{11, 43, 6, 4}; | |
auto r_11 = fng_bi_43_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_11); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_44_{12, 44, 1, 2}; | |
auto r_12 = fng_bi_44_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_12); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_45_{13, 45, 4, 2}; | |
auto r_13 = fng_bi_45_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_13); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_46_{14, 46, 2, 2}; | |
auto r_14 = fng_bi_46_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_14); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_47_{15, 47, 6, 2}; | |
auto r_15 = fng_bi_47_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_15); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_48_{16, 48, 1, 5}; | |
auto r_16 = fng_bi_48_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_16); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_49_{17, 49, 5, 5}; | |
auto r_17 = fng_bi_49_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_17); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_50_{18, 50, 6, 5}; | |
auto r_18 = fng_bi_50_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_18); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_51_{19, 51, 1, 6}; | |
auto r_19 = fng_bi_51_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_19); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_52_{20, 52, 4, 6}; | |
auto r_20 = fng_bi_52_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_20); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_53_{21, 53, 2, 6}; | |
auto r_21 = fng_bi_53_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_21); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_54_{22, 54, 5, 6}; | |
auto r_22 = fng_bi_54_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_22); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_55_{23, 55, 6, 6}; | |
auto r_23 = fng_bi_55_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_23); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_56_{24, 56, 3, 3}; | |
auto r_24 = fng_bi_56_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_24); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_57_{25, 57, 12, 12}; | |
auto r_25 = fng_bi_57_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_25); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_58_{26, 58, 9, 8}; | |
auto r_26 = fng_bi_58_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_26); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_59_{27, 59, 8, 9}; | |
auto r_27 = fng_bi_59_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_27); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_60_{28, 60, 10, 10}; | |
auto r_28 = fng_bi_60_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_28); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_61_{29, 61, 0, 10}; | |
auto r_29 = fng_bi_61_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_29); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_62_{30, 62, 7, 7}; | |
auto r_30 = fng_bi_62_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_30); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_63_{31, 63, 10, 0}; | |
auto r_31 = fng_bi_63_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_31); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_64_{32, 64, 0, 11}; | |
auto r_32 = fng_bi_64_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_32); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_65_{33, 65, 11, 0}; | |
auto r_33 = fng_bi_65_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_33); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_66_{34, 66, 13, 13}; | |
auto r_34 = fng_bi_66_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_34); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_67_{35, 67, 13, 3}; | |
auto r_35 = fng_bi_67_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_35); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_68_{36, 68, 3, 13}; | |
auto r_36 = fng_bi_68_.jointApply(t0, t1, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_36); | |
} | |
void triFull(jumanpp::util::ArraySlice<jumanpp::u64> t0, | |
jumanpp::util::ArraySlice<jumanpp::u64> t1, | |
jumanpp::util::ArraySlice<jumanpp::u64> t2, | |
jumanpp::u32 mask, | |
jumanpp::core::analysis::WeightBuffer weights, | |
jumanpp::util::MutableArraySlice<jumanpp::u32> result | |
) const noexcept { | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_69_{0, 69, 0, 0, 0}; | |
auto r_0 = fng_tri_69_.jointApply(t0, t1, t2, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_0); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_70_{1, 70, 1, 1, 1}; | |
auto r_1 = fng_tri_70_.jointApply(t0, t1, t2, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_1); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_71_{2, 71, 2, 2, 2}; | |
auto r_2 = fng_tri_71_.jointApply(t0, t1, t2, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_2); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_72_{3, 72, 3, 3, 3}; | |
auto r_3 = fng_tri_72_.jointApply(t0, t1, t2, result, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(r_3); | |
} | |
void allocateBuffers(::jumanpp::core::features::FeatureBuffer* fbuf,const ::jumanpp::core::features::AnalysisRunStats& stats,::jumanpp::util::memory::PoolAlloc* alloc) const override { | |
using namespace jumanpp; | |
u32 maxNgrams = std::max({numUnigrams(), numBigrams(), numTrigrams()}); | |
fbuf->currentElems = ~0u; | |
fbuf->valueBuffer1 = alloc->allocateBuf<u32>(maxNgrams, 64); | |
fbuf->valueBuffer2 = alloc->allocateBuf<u32>(maxNgrams, 64); | |
fbuf->t1Buffer = alloc->allocateBuf<u64>(numBigrams() * stats.maxStarts, 64); | |
fbuf->t2Buffer1 = alloc->allocateBuf<u64>(numTrigrams() * stats.maxStarts, 64); | |
fbuf->t2Buffer2 = alloc->allocateBuf<u64>(numTrigrams() * stats.maxStarts, 64); | |
fbuf->scoreBuffer = alloc->allocateBuf<float>(stats.maxEnds, 16); | |
} | |
::jumanpp::u32 numUnigrams() const noexcept override { return 32; } | |
::jumanpp::u32 numBigrams() const noexcept override { return 37; } | |
::jumanpp::u32 numTrigrams() const noexcept override { return 4; } | |
void applyBiStep2(::jumanpp::core::features::FeatureBuffer* buffers, ::jumanpp::util::ArraySlice<jumanpp::u64> p1, ::jumanpp::core::analysis::FeatureScorer* scorer, ::jumanpp::util::MutableArraySlice<float> result) const noexcept override { | |
auto numElems = buffers->currentElems; | |
if (numElems == 0) { return; } | |
auto numBigrams = this->numBigrams(); | |
auto buf1 = buffers->valBuf1(numBigrams); | |
auto buf2 = buffers->valBuf2(numBigrams); | |
const auto state = buffers->t1Buf(numBigrams, numElems); | |
auto weights = scorer->weights(); | |
auto mask = static_cast<::jumanpp::u32>(weights.size() - 1); | |
this->biStep1(p1, state.row(0), mask, weights, buf2); | |
::jumanpp::u32 row = 1; | |
for (; row < state.numRows(); ++row) { | |
auto srow = state.row(row); | |
float f_0 = 0; | |
float f_1 = 0; | |
float f_2 = 0; | |
float f_3 = 0; | |
float f_4 = 0; | |
float f_5 = 0; | |
float f_6 = 0; | |
float f_7 = 0; | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_32_{0, 32, 0, 0}; | |
f_0 += weights.at(buf2.at(0)); | |
::jumanpp::u32 idx = fng_bi_32_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_33_{1, 33, 1, 0}; | |
f_1 += weights.at(buf2.at(1)); | |
::jumanpp::u32 idx = fng_bi_33_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_34_{2, 34, 0, 1}; | |
f_2 += weights.at(buf2.at(2)); | |
::jumanpp::u32 idx = fng_bi_34_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_35_{3, 35, 1, 1}; | |
f_3 += weights.at(buf2.at(3)); | |
::jumanpp::u32 idx = fng_bi_35_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_36_{4, 36, 4, 1}; | |
f_4 += weights.at(buf2.at(4)); | |
::jumanpp::u32 idx = fng_bi_36_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_37_{5, 37, 2, 1}; | |
f_5 += weights.at(buf2.at(5)); | |
::jumanpp::u32 idx = fng_bi_37_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_38_{6, 38, 5, 1}; | |
f_6 += weights.at(buf2.at(6)); | |
::jumanpp::u32 idx = fng_bi_38_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_39_{7, 39, 6, 1}; | |
f_7 += weights.at(buf2.at(7)); | |
::jumanpp::u32 idx = fng_bi_39_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_40_{8, 40, 1, 4}; | |
f_0 += weights.at(buf2.at(8)); | |
::jumanpp::u32 idx = fng_bi_40_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_41_{9, 41, 4, 4}; | |
f_1 += weights.at(buf2.at(9)); | |
::jumanpp::u32 idx = fng_bi_41_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_42_{10, 42, 2, 4}; | |
f_2 += weights.at(buf2.at(10)); | |
::jumanpp::u32 idx = fng_bi_42_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_43_{11, 43, 6, 4}; | |
f_3 += weights.at(buf2.at(11)); | |
::jumanpp::u32 idx = fng_bi_43_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_44_{12, 44, 1, 2}; | |
f_4 += weights.at(buf2.at(12)); | |
::jumanpp::u32 idx = fng_bi_44_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_45_{13, 45, 4, 2}; | |
f_5 += weights.at(buf2.at(13)); | |
::jumanpp::u32 idx = fng_bi_45_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_46_{14, 46, 2, 2}; | |
f_6 += weights.at(buf2.at(14)); | |
::jumanpp::u32 idx = fng_bi_46_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_47_{15, 47, 6, 2}; | |
f_7 += weights.at(buf2.at(15)); | |
::jumanpp::u32 idx = fng_bi_47_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_48_{16, 48, 1, 5}; | |
f_0 += weights.at(buf2.at(16)); | |
::jumanpp::u32 idx = fng_bi_48_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_49_{17, 49, 5, 5}; | |
f_1 += weights.at(buf2.at(17)); | |
::jumanpp::u32 idx = fng_bi_49_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_50_{18, 50, 6, 5}; | |
f_2 += weights.at(buf2.at(18)); | |
::jumanpp::u32 idx = fng_bi_50_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_51_{19, 51, 1, 6}; | |
f_3 += weights.at(buf2.at(19)); | |
::jumanpp::u32 idx = fng_bi_51_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_52_{20, 52, 4, 6}; | |
f_4 += weights.at(buf2.at(20)); | |
::jumanpp::u32 idx = fng_bi_52_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_53_{21, 53, 2, 6}; | |
f_5 += weights.at(buf2.at(21)); | |
::jumanpp::u32 idx = fng_bi_53_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_54_{22, 54, 5, 6}; | |
f_6 += weights.at(buf2.at(22)); | |
::jumanpp::u32 idx = fng_bi_54_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_55_{23, 55, 6, 6}; | |
f_7 += weights.at(buf2.at(23)); | |
::jumanpp::u32 idx = fng_bi_55_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_56_{24, 56, 3, 3}; | |
f_0 += weights.at(buf2.at(24)); | |
::jumanpp::u32 idx = fng_bi_56_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_57_{25, 57, 12, 12}; | |
f_1 += weights.at(buf2.at(25)); | |
::jumanpp::u32 idx = fng_bi_57_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_58_{26, 58, 9, 8}; | |
f_2 += weights.at(buf2.at(26)); | |
::jumanpp::u32 idx = fng_bi_58_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_59_{27, 59, 8, 9}; | |
f_3 += weights.at(buf2.at(27)); | |
::jumanpp::u32 idx = fng_bi_59_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_60_{28, 60, 10, 10}; | |
f_4 += weights.at(buf2.at(28)); | |
::jumanpp::u32 idx = fng_bi_60_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_61_{29, 61, 0, 10}; | |
f_5 += weights.at(buf2.at(29)); | |
::jumanpp::u32 idx = fng_bi_61_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_62_{30, 62, 7, 7}; | |
f_6 += weights.at(buf2.at(30)); | |
::jumanpp::u32 idx = fng_bi_62_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_63_{31, 63, 10, 0}; | |
f_7 += weights.at(buf2.at(31)); | |
::jumanpp::u32 idx = fng_bi_63_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_64_{32, 64, 0, 11}; | |
f_0 += weights.at(buf2.at(32)); | |
::jumanpp::u32 idx = fng_bi_64_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_65_{33, 65, 11, 0}; | |
f_1 += weights.at(buf2.at(33)); | |
::jumanpp::u32 idx = fng_bi_65_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_66_{34, 66, 13, 13}; | |
f_2 += weights.at(buf2.at(34)); | |
::jumanpp::u32 idx = fng_bi_66_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_67_{35, 67, 13, 3}; | |
f_3 += weights.at(buf2.at(35)); | |
::jumanpp::u32 idx = fng_bi_67_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_68_{36, 68, 3, 13}; | |
f_4 += weights.at(buf2.at(36)); | |
::jumanpp::u32 idx = fng_bi_68_.step1(p1, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
result.at(row - 1) += (f_0 + f_1 + f_2 + f_3 + f_4 + f_5 + f_6 + f_7); | |
buf1.swap(buf2); | |
} | |
result.at(row - 1) += ::jumanpp::core::analysis::impl::computeUnrolled4RawPerceptron(weights, buf2); | |
} | |
void applyTriStep3(::jumanpp::core::features::FeatureBuffer* buffers, ::jumanpp::util::ArraySlice<jumanpp::u64> p2, ::jumanpp::core::analysis::FeatureScorer* scorer, ::jumanpp::util::MutableArraySlice<float> result) const noexcept override { | |
auto numElems = buffers->currentElems; | |
if (numElems == 0) { return; } | |
auto numTrigrams = this->numTrigrams(); | |
auto buf1 = buffers->valBuf1(numTrigrams); | |
auto buf2 = buffers->valBuf2(numTrigrams); | |
const auto state = buffers->t2Buf2(numTrigrams, numElems); | |
auto weights = scorer->weights(); | |
auto mask = static_cast<::jumanpp::u32>(weights.size() - 1); | |
this->triStep2(p2, state.row(0), mask, weights, buf2); | |
::jumanpp::u32 row = 1; | |
for (; row < state.numRows(); ++row) { | |
auto srow = state.row(row); | |
float f_0 = 0; | |
float f_1 = 0; | |
float f_2 = 0; | |
float f_3 = 0; | |
{ | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_69_{0, 69, 0, 0, 0}; | |
f_0 += weights.at(buf2.at(0)); | |
::jumanpp::u32 idx = fng_tri_69_.step2(p2, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_70_{1, 70, 1, 1, 1}; | |
f_1 += weights.at(buf2.at(1)); | |
::jumanpp::u32 idx = fng_tri_70_.step2(p2, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_71_{2, 71, 2, 2, 2}; | |
f_2 += weights.at(buf2.at(2)); | |
::jumanpp::u32 idx = fng_tri_71_.step2(p2, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
{ | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_72_{3, 72, 3, 3, 3}; | |
f_3 += weights.at(buf2.at(3)); | |
::jumanpp::u32 idx = fng_tri_72_.step2(p2, srow, buf1, mask); | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(idx); | |
} | |
result.at(row - 1) += (f_0 + f_1 + f_2 + f_3); | |
buf1.swap(buf2); | |
} | |
result.at(row - 1) += ::jumanpp::core::analysis::impl::computeUnrolled4RawPerceptron(weights, buf2); | |
} | |
void applyBiTri(::jumanpp::core::features::FeatureBuffer* buffers, | |
::jumanpp::u32 t0idx, | |
::jumanpp::util::ArraySlice<jumanpp::u64> t0, | |
::jumanpp::util::ConstSliceable<jumanpp::u64> t1, | |
::jumanpp::util::ConstSliceable<jumanpp::u64> t2, | |
::jumanpp::util::ArraySlice<jumanpp::u32> t1idxes, | |
::jumanpp::core::analysis::FeatureScorer* scorer, | |
::jumanpp::util::MutableArraySlice<float> result) const noexcept override { | |
constexpr auto numBigrams = 37; | |
constexpr auto numTrigrams = 4; | |
auto weights = scorer->weights(); | |
auto scbuf = buffers->scoreBuf(t1.numRows()); | |
const auto bistateBuf = buffers->t1Buf(numBigrams, buffers->currentElems); | |
const auto tristateBuf = buffers->t2Buf1(numTrigrams, buffers->currentElems); | |
auto buf1 = buffers->valBuf1(numBigrams); | |
auto buf2 = buffers->valBuf2(numBigrams); | |
static constexpr jumanpp::u32 t1BiFeatureIdxes[numBigrams] = { | |
0, 0, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 2, 2, 2, 2, 5, 5, 5, 6, 6, 6, 6, 6, 3, 12, 8, 9, 10, 10, 7, 0, 11, 0, 13, 3, 13, | |
}; | |
static constexpr jumanpp::u32 t1TriFeatureIdxes[numTrigrams] = { | |
0, 1, 2, 3, | |
}; | |
static constexpr jumanpp::u32 t2TriFeatureIdxes[numTrigrams] = { | |
0, 1, 2, 3, | |
}; | |
::jumanpp::core::features::impl::applyBiTriFullKernel( | |
bistateBuf.row(t0idx), | |
tristateBuf.row(t0idx), | |
t1, | |
t2, | |
t1idxes, | |
t1BiFeatureIdxes, | |
t1TriFeatureIdxes, | |
t2TriFeatureIdxes, | |
buf1, | |
buf2, | |
weights, | |
scbuf, | |
result | |
); | |
} | |
}; // class PartNgramFeatureStaticApply_JumandicStatic | |
class PatternFeatureStaticApply_JumandicStatic : public ::jumanpp::core::features::GeneratedPatternFeatureApply { | |
void patternsAndUnigramsApply( | |
::jumanpp::core::features::impl::PrimitiveFeatureContext *ctx, | |
::jumanpp::util::ArraySlice<::jumanpp::core::NodeInfo> nodeInfos, | |
::jumanpp::util::Sliceable<::jumanpp::i32> entryFeatureBuffer, | |
::jumanpp::core::features::FeatureBuffer *fbuffer, | |
::jumanpp::util::Sliceable<::jumanpp::u64> patternMatrix, | |
const ::jumanpp::core::analysis::FeatureScorer *scorer, | |
::jumanpp::util::MutableArraySlice<float> scores) const override { | |
auto numItems = patternMatrix.numRows(); | |
const auto weights = scorer->weights(); | |
::jumanpp::u32 mask = weights.size() - 1; | |
auto t1state = fbuffer->t1Buf(37, numItems); | |
auto t2state = fbuffer->t2Buf1(4, numItems); | |
auto buf1 = fbuffer->valBuf1(32); | |
auto buf2 = fbuffer->valBuf2(32); | |
for (int item = 0; item < numItems; ++item) { | |
auto patterns = patternMatrix.row(item); | |
auto& nodeInfo = nodeInfos.at(item); | |
auto entry = entryFeatureBuffer.row(item); | |
bool status = ctx->fillEntryBuffer(nodeInfo.entryPtr(), entry); | |
JPP_DCHECK(status); | |
auto t1row = t1state.row(item); | |
auto t2row = t2state.row(item); | |
// preload memory of next item | |
if (JPP_LIKELY(item < (numItems - 1))) { | |
ctx->prefetchDicItem(nodeInfos.at(item + 1).entryPtr()); | |
} | |
buf1.swap(buf2); | |
// pattern feature #8 (with unigram), usage=3 | |
constexpr jumanpp::core::features::impl::CopyPrimFeatureImpl pfobj_surface_{0}; | |
::jumanpp::u64 pf_surface_0 = pfobj_surface_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_8 = ::jumanpp::util::hashing::FastHash1{}.mix(8ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_8 = fe_pat_hash_8.mix(pf_surface_0); | |
::jumanpp::u64 fe_pat_8 = fe_pat_hash_8.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_0_{0, 0, 8}; | |
auto value_fng_uni_0_ = fng_uni_0_.maskedValueFor(fe_pat_8, mask); | |
float score_part_0 = weights.at(buf2.at(0)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_0_); | |
buf1.at(0) = value_fng_uni_0_; | |
patterns.at(8) = fe_pat_8; | |
// pattern feature #9 (with unigram), usage=3 | |
constexpr jumanpp::core::features::impl::ShiftMaskPrimFeatureImpl pfobj_auxWord_{7, 0, 0x1}; | |
::jumanpp::u64 pf_auxWord_1 = pfobj_auxWord_.access(ctx, nodeInfo, entry); | |
constexpr jumanpp::core::features::impl::CopyPrimFeatureImpl pfobj_pos_{1}; | |
::jumanpp::u64 pf_pos_2 = pfobj_pos_.access(ctx, nodeInfo, entry); | |
constexpr jumanpp::core::features::impl::CopyPrimFeatureImpl pfobj_subpos_{2}; | |
::jumanpp::u64 pf_subpos_3 = pfobj_subpos_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_9 = ::jumanpp::util::hashing::FastHash1{}.mix(9ULL).mix(1ULL).mix(34359656763621376ULL); | |
if (pf_auxWord_1 != 0) { // compute feature auxWord | |
fe_pat_hash_9 = fe_pat_hash_9.mix(pf_surface_0).mix(pf_pos_2).mix(pf_subpos_3); | |
} else { | |
fe_pat_hash_9 = fe_pat_hash_9.mix(pf_pos_2); | |
} | |
::jumanpp::u64 fe_pat_9 = fe_pat_hash_9.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_1_{1, 1, 9}; | |
auto value_fng_uni_1_ = fng_uni_1_.maskedValueFor(fe_pat_9, mask); | |
float score_part_1 = weights.at(buf2.at(1)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_1_); | |
buf1.at(1) = value_fng_uni_1_; | |
patterns.at(9) = fe_pat_9; | |
// pattern feature #0 (with unigram), usage=7 | |
auto fe_pat_hash_0 = ::jumanpp::util::hashing::FastHash1{}.mix(0ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_0 = fe_pat_hash_0.mix(pf_pos_2); | |
::jumanpp::u64 fe_pat_0 = fe_pat_hash_0.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_2_{2, 2, 0}; | |
auto value_fng_uni_2_ = fng_uni_2_.maskedValueFor(fe_pat_0, mask); | |
float score_part_2 = weights.at(buf2.at(2)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_2_); | |
buf1.at(2) = value_fng_uni_2_; | |
patterns.at(0) = fe_pat_0; | |
// pattern feature #10 (with unigram), usage=3 | |
auto fe_pat_hash_10 = ::jumanpp::util::hashing::FastHash1{}.mix(10ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_10 = fe_pat_hash_10.mix(pf_subpos_3); | |
::jumanpp::u64 fe_pat_10 = fe_pat_hash_10.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_3_{3, 3, 10}; | |
auto value_fng_uni_3_ = fng_uni_3_.maskedValueFor(fe_pat_10, mask); | |
float score_part_3 = weights.at(buf2.at(3)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_3_); | |
buf1.at(3) = value_fng_uni_3_; | |
patterns.at(10) = fe_pat_10; | |
// pattern feature #1 (with unigram), usage=7 | |
auto fe_pat_hash_1 = ::jumanpp::util::hashing::FastHash1{}.mix(1ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_1 = fe_pat_hash_1.mix(pf_pos_2); | |
fe_pat_hash_1 = fe_pat_hash_1.mix(pf_subpos_3); | |
::jumanpp::u64 fe_pat_1 = fe_pat_hash_1.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_4_{4, 4, 1}; | |
auto value_fng_uni_4_ = fng_uni_4_.maskedValueFor(fe_pat_1, mask); | |
score_part_0 += weights.at(buf2.at(4)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_4_); | |
buf1.at(4) = value_fng_uni_4_; | |
patterns.at(1) = fe_pat_1; | |
// pattern feature #14 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::CopyPrimFeatureImpl pfobj_conjtype_{4}; | |
::jumanpp::u64 pf_conjtype_4 = pfobj_conjtype_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_14 = ::jumanpp::util::hashing::FastHash1{}.mix(14ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_14 = fe_pat_hash_14.mix(pf_conjtype_4); | |
::jumanpp::u64 fe_pat_14 = fe_pat_hash_14.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_5_{5, 5, 14}; | |
auto value_fng_uni_5_ = fng_uni_5_.maskedValueFor(fe_pat_14, mask); | |
score_part_1 += weights.at(buf2.at(5)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_5_); | |
buf1.at(5) = value_fng_uni_5_; | |
// pattern feature #11 (with unigram), usage=3 | |
constexpr jumanpp::core::features::impl::CopyPrimFeatureImpl pfobj_conjform_{3}; | |
::jumanpp::u64 pf_conjform_5 = pfobj_conjform_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_11 = ::jumanpp::util::hashing::FastHash1{}.mix(11ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_11 = fe_pat_hash_11.mix(pf_conjform_5); | |
::jumanpp::u64 fe_pat_11 = fe_pat_hash_11.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_6_{6, 6, 11}; | |
auto value_fng_uni_6_ = fng_uni_6_.maskedValueFor(fe_pat_11, mask); | |
score_part_2 += weights.at(buf2.at(6)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_6_); | |
buf1.at(6) = value_fng_uni_6_; | |
patterns.at(11) = fe_pat_11; | |
// pattern feature #15 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::SurfaceCodepointLengthPrimFeatureImpl pfobj_surfaceLength_{}; | |
::jumanpp::u64 pf_surfaceLength_6 = pfobj_surfaceLength_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_15 = ::jumanpp::util::hashing::FastHash1{}.mix(15ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_15 = fe_pat_hash_15.mix(pf_surfaceLength_6); | |
::jumanpp::u64 fe_pat_15 = fe_pat_hash_15.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_7_{7, 7, 15}; | |
auto value_fng_uni_7_ = fng_uni_7_.maskedValueFor(fe_pat_15, mask); | |
score_part_3 += weights.at(buf2.at(7)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_7_); | |
buf1.at(7) = value_fng_uni_7_; | |
// pattern feature #16 (with unigram), usage=1 | |
auto fe_pat_hash_16 = ::jumanpp::util::hashing::FastHash1{}.mix(16ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_16 = fe_pat_hash_16.mix(pf_surfaceLength_6); | |
fe_pat_hash_16 = fe_pat_hash_16.mix(pf_pos_2); | |
::jumanpp::u64 fe_pat_16 = fe_pat_hash_16.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_8_{8, 8, 16}; | |
auto value_fng_uni_8_ = fng_uni_8_.maskedValueFor(fe_pat_16, mask); | |
score_part_0 += weights.at(buf2.at(8)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_8_); | |
buf1.at(8) = value_fng_uni_8_; | |
// pattern feature #17 (with unigram), usage=1 | |
auto fe_pat_hash_17 = ::jumanpp::util::hashing::FastHash1{}.mix(17ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_17 = fe_pat_hash_17.mix(pf_surfaceLength_6); | |
fe_pat_hash_17 = fe_pat_hash_17.mix(pf_pos_2); | |
fe_pat_hash_17 = fe_pat_hash_17.mix(pf_subpos_3); | |
::jumanpp::u64 fe_pat_17 = fe_pat_hash_17.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_9_{9, 9, 17}; | |
auto value_fng_uni_9_ = fng_uni_9_.maskedValueFor(fe_pat_17, mask); | |
score_part_1 += weights.at(buf2.at(9)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_9_); | |
buf1.at(9) = value_fng_uni_9_; | |
// pattern feature #12 (with unigram), usage=3 | |
constexpr jumanpp::core::features::impl::CopyPrimFeatureImpl pfobj_baseform_{5}; | |
::jumanpp::u64 pf_baseform_7 = pfobj_baseform_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_12 = ::jumanpp::util::hashing::FastHash1{}.mix(12ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_12 = fe_pat_hash_12.mix(pf_baseform_7); | |
::jumanpp::u64 fe_pat_12 = fe_pat_hash_12.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_10_{10, 10, 12}; | |
auto value_fng_uni_10_ = fng_uni_10_.maskedValueFor(fe_pat_12, mask); | |
score_part_2 += weights.at(buf2.at(10)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_10_); | |
buf1.at(10) = value_fng_uni_10_; | |
patterns.at(12) = fe_pat_12; | |
// pattern feature #18 (with unigram), usage=1 | |
auto fe_pat_hash_18 = ::jumanpp::util::hashing::FastHash1{}.mix(18ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_18 = fe_pat_hash_18.mix(pf_baseform_7); | |
fe_pat_hash_18 = fe_pat_hash_18.mix(pf_pos_2); | |
::jumanpp::u64 fe_pat_18 = fe_pat_hash_18.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_11_{11, 11, 18}; | |
auto value_fng_uni_11_ = fng_uni_11_.maskedValueFor(fe_pat_18, mask); | |
score_part_3 += weights.at(buf2.at(11)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_11_); | |
buf1.at(11) = value_fng_uni_11_; | |
// pattern feature #19 (with unigram), usage=1 | |
auto fe_pat_hash_19 = ::jumanpp::util::hashing::FastHash1{}.mix(19ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_19 = fe_pat_hash_19.mix(pf_baseform_7); | |
fe_pat_hash_19 = fe_pat_hash_19.mix(pf_pos_2); | |
fe_pat_hash_19 = fe_pat_hash_19.mix(pf_subpos_3); | |
::jumanpp::u64 fe_pat_19 = fe_pat_hash_19.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_12_{12, 12, 19}; | |
auto value_fng_uni_12_ = fng_uni_12_.maskedValueFor(fe_pat_19, mask); | |
score_part_0 += weights.at(buf2.at(12)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_12_); | |
buf1.at(12) = value_fng_uni_12_; | |
// pattern feature #20 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::ShiftMaskPrimFeatureImpl pfobj_isDevoiced_{7, 1, 0x1}; | |
::jumanpp::u64 pf_isDevoiced_8 = pfobj_isDevoiced_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_20 = ::jumanpp::util::hashing::FastHash1{}.mix(20ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_20 = fe_pat_hash_20.mix(pf_isDevoiced_8); | |
::jumanpp::u64 fe_pat_20 = fe_pat_hash_20.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_13_{13, 13, 20}; | |
auto value_fng_uni_13_ = fng_uni_13_.maskedValueFor(fe_pat_20, mask); | |
score_part_1 += weights.at(buf2.at(13)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_13_); | |
buf1.at(13) = value_fng_uni_13_; | |
// pattern feature #21 (with unigram), usage=1 | |
auto fe_pat_hash_21 = ::jumanpp::util::hashing::FastHash1{}.mix(21ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_21 = fe_pat_hash_21.mix(pf_isDevoiced_8); | |
fe_pat_hash_21 = fe_pat_hash_21.mix(pf_pos_2); | |
fe_pat_hash_21 = fe_pat_hash_21.mix(pf_subpos_3); | |
::jumanpp::u64 fe_pat_21 = fe_pat_hash_21.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_14_{14, 14, 21}; | |
auto value_fng_uni_14_ = fng_uni_14_.maskedValueFor(fe_pat_21, mask); | |
score_part_2 += weights.at(buf2.at(14)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_14_); | |
buf1.at(14) = value_fng_uni_14_; | |
// pattern feature #22 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::ProvidedPrimFeatureImpl pfobj_notPrefix_{1}; | |
::jumanpp::u64 pf_notPrefix_9 = pfobj_notPrefix_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_22 = ::jumanpp::util::hashing::FastHash1{}.mix(22ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_22 = fe_pat_hash_22.mix(pf_surfaceLength_6); | |
fe_pat_hash_22 = fe_pat_hash_22.mix(pf_notPrefix_9); | |
::jumanpp::u64 fe_pat_22 = fe_pat_hash_22.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_15_{15, 15, 22}; | |
auto value_fng_uni_15_ = fng_uni_15_.maskedValueFor(fe_pat_22, mask); | |
score_part_3 += weights.at(buf2.at(15)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_15_); | |
buf1.at(15) = value_fng_uni_15_; | |
// pattern feature #23 (with unigram), usage=1 | |
auto fe_pat_hash_23 = ::jumanpp::util::hashing::FastHash1{}.mix(23ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_23 = fe_pat_hash_23.mix(pf_baseform_7); | |
fe_pat_hash_23 = fe_pat_hash_23.mix(pf_notPrefix_9); | |
::jumanpp::u64 fe_pat_23 = fe_pat_hash_23.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_16_{16, 16, 23}; | |
auto value_fng_uni_16_ = fng_uni_16_.maskedValueFor(fe_pat_23, mask); | |
score_part_0 += weights.at(buf2.at(16)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_16_); | |
buf1.at(16) = value_fng_uni_16_; | |
// pattern feature #24 (with unigram), usage=1 | |
auto fe_pat_hash_24 = ::jumanpp::util::hashing::FastHash1{}.mix(24ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_24 = fe_pat_hash_24.mix(pf_pos_2); | |
fe_pat_hash_24 = fe_pat_hash_24.mix(pf_subpos_3); | |
fe_pat_hash_24 = fe_pat_hash_24.mix(pf_surfaceLength_6); | |
::jumanpp::u64 fe_pat_24 = fe_pat_hash_24.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_17_{17, 17, 24}; | |
auto value_fng_uni_17_ = fng_uni_17_.maskedValueFor(fe_pat_24, mask); | |
score_part_1 += weights.at(buf2.at(17)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_17_); | |
buf1.at(17) = value_fng_uni_17_; | |
// pattern feature #25 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::ShiftMaskPrimFeatureImpl pfobj_nominalize_{7, 2, 0x1}; | |
::jumanpp::u64 pf_nominalize_10 = pfobj_nominalize_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_25 = ::jumanpp::util::hashing::FastHash1{}.mix(25ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_25 = fe_pat_hash_25.mix(pf_nominalize_10); | |
::jumanpp::u64 fe_pat_25 = fe_pat_hash_25.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_18_{18, 18, 25}; | |
auto value_fng_uni_18_ = fng_uni_18_.maskedValueFor(fe_pat_25, mask); | |
score_part_2 += weights.at(buf2.at(18)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_18_); | |
buf1.at(18) = value_fng_uni_18_; | |
// pattern feature #26 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::ProvidedPrimFeatureImpl pfobj_nonstdSurf_{0}; | |
::jumanpp::u64 pf_nonstdSurf_11 = pfobj_nonstdSurf_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_26 = ::jumanpp::util::hashing::FastHash1{}.mix(26ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_26 = fe_pat_hash_26.mix(pf_nonstdSurf_11); | |
::jumanpp::u64 fe_pat_26 = fe_pat_hash_26.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_19_{19, 19, 26}; | |
auto value_fng_uni_19_ = fng_uni_19_.maskedValueFor(fe_pat_26, mask); | |
score_part_3 += weights.at(buf2.at(19)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_19_); | |
buf1.at(19) = value_fng_uni_19_; | |
// pattern feature #27 (with unigram), usage=1 | |
auto fe_pat_hash_27 = ::jumanpp::util::hashing::FastHash1{}.mix(27ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_27 = fe_pat_hash_27.mix(pf_nonstdSurf_11); | |
fe_pat_hash_27 = fe_pat_hash_27.mix(pf_pos_2); | |
::jumanpp::u64 fe_pat_27 = fe_pat_hash_27.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_20_{20, 20, 27}; | |
auto value_fng_uni_20_ = fng_uni_20_.maskedValueFor(fe_pat_27, mask); | |
score_part_0 += weights.at(buf2.at(20)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_20_); | |
buf1.at(20) = value_fng_uni_20_; | |
// pattern feature #28 (with unigram), usage=1 | |
auto fe_pat_hash_28 = ::jumanpp::util::hashing::FastHash1{}.mix(28ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_28 = fe_pat_hash_28.mix(pf_nonstdSurf_11); | |
fe_pat_hash_28 = fe_pat_hash_28.mix(pf_pos_2); | |
fe_pat_hash_28 = fe_pat_hash_28.mix(pf_subpos_3); | |
::jumanpp::u64 fe_pat_28 = fe_pat_hash_28.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_21_{21, 21, 28}; | |
auto value_fng_uni_21_ = fng_uni_21_.maskedValueFor(fe_pat_28, mask); | |
score_part_1 += weights.at(buf2.at(21)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_21_); | |
buf1.at(21) = value_fng_uni_21_; | |
// pattern feature #29 (with unigram), usage=1 | |
auto fe_pat_hash_29 = ::jumanpp::util::hashing::FastHash1{}.mix(29ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_29 = fe_pat_hash_29.mix(pf_nonstdSurf_11); | |
fe_pat_hash_29 = fe_pat_hash_29.mix(pf_baseform_7); | |
::jumanpp::u64 fe_pat_29 = fe_pat_hash_29.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_22_{22, 22, 29}; | |
auto value_fng_uni_22_ = fng_uni_22_.maskedValueFor(fe_pat_29, mask); | |
score_part_2 += weights.at(buf2.at(22)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_22_); | |
buf1.at(22) = value_fng_uni_22_; | |
// pattern feature #30 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::CodepointFeatureImpl pfobj_scp1_{1}; | |
::jumanpp::u64 pf_scp1_12 = pfobj_scp1_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_30 = ::jumanpp::util::hashing::FastHash1{}.mix(30ULL).mix(5ULL).mix(34359656763621376ULL); | |
fe_pat_hash_30 = fe_pat_hash_30.mix(pf_pos_2); | |
fe_pat_hash_30 = fe_pat_hash_30.mix(pf_subpos_3); | |
fe_pat_hash_30 = fe_pat_hash_30.mix(pf_conjform_5); | |
fe_pat_hash_30 = fe_pat_hash_30.mix(pf_conjtype_4); | |
fe_pat_hash_30 = fe_pat_hash_30.mix(pf_scp1_12); | |
::jumanpp::u64 fe_pat_30 = fe_pat_hash_30.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_23_{23, 23, 30}; | |
auto value_fng_uni_23_ = fng_uni_23_.maskedValueFor(fe_pat_30, mask); | |
score_part_3 += weights.at(buf2.at(23)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_23_); | |
buf1.at(23) = value_fng_uni_23_; | |
// pattern feature #31 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::CodepointFeatureImpl pfobj_scp2_{2}; | |
::jumanpp::u64 pf_scp2_13 = pfobj_scp2_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_31 = ::jumanpp::util::hashing::FastHash1{}.mix(31ULL).mix(5ULL).mix(34359656763621376ULL); | |
fe_pat_hash_31 = fe_pat_hash_31.mix(pf_pos_2); | |
fe_pat_hash_31 = fe_pat_hash_31.mix(pf_subpos_3); | |
fe_pat_hash_31 = fe_pat_hash_31.mix(pf_conjform_5); | |
fe_pat_hash_31 = fe_pat_hash_31.mix(pf_conjtype_4); | |
fe_pat_hash_31 = fe_pat_hash_31.mix(pf_scp2_13); | |
::jumanpp::u64 fe_pat_31 = fe_pat_hash_31.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_24_{24, 24, 31}; | |
auto value_fng_uni_24_ = fng_uni_24_.maskedValueFor(fe_pat_31, mask); | |
score_part_0 += weights.at(buf2.at(24)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_24_); | |
buf1.at(24) = value_fng_uni_24_; | |
// pattern feature #32 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::CodepointFeatureImpl pfobj_scp3_{3}; | |
::jumanpp::u64 pf_scp3_14 = pfobj_scp3_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_32 = ::jumanpp::util::hashing::FastHash1{}.mix(32ULL).mix(5ULL).mix(34359656763621376ULL); | |
fe_pat_hash_32 = fe_pat_hash_32.mix(pf_pos_2); | |
fe_pat_hash_32 = fe_pat_hash_32.mix(pf_subpos_3); | |
fe_pat_hash_32 = fe_pat_hash_32.mix(pf_conjform_5); | |
fe_pat_hash_32 = fe_pat_hash_32.mix(pf_conjtype_4); | |
fe_pat_hash_32 = fe_pat_hash_32.mix(pf_scp3_14); | |
::jumanpp::u64 fe_pat_32 = fe_pat_hash_32.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_25_{25, 25, 32}; | |
auto value_fng_uni_25_ = fng_uni_25_.maskedValueFor(fe_pat_32, mask); | |
score_part_1 += weights.at(buf2.at(25)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_25_); | |
buf1.at(25) = value_fng_uni_25_; | |
// pattern feature #33 (with unigram), usage=1 | |
auto fe_pat_hash_33 = ::jumanpp::util::hashing::FastHash1{}.mix(33ULL).mix(6ULL).mix(34359656763621376ULL); | |
fe_pat_hash_33 = fe_pat_hash_33.mix(pf_pos_2); | |
fe_pat_hash_33 = fe_pat_hash_33.mix(pf_subpos_3); | |
fe_pat_hash_33 = fe_pat_hash_33.mix(pf_conjform_5); | |
fe_pat_hash_33 = fe_pat_hash_33.mix(pf_conjtype_4); | |
fe_pat_hash_33 = fe_pat_hash_33.mix(pf_scp1_12); | |
fe_pat_hash_33 = fe_pat_hash_33.mix(pf_scp2_13); | |
::jumanpp::u64 fe_pat_33 = fe_pat_hash_33.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_26_{26, 26, 33}; | |
auto value_fng_uni_26_ = fng_uni_26_.maskedValueFor(fe_pat_33, mask); | |
score_part_2 += weights.at(buf2.at(26)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_26_); | |
buf1.at(26) = value_fng_uni_26_; | |
// pattern feature #34 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::CodepointTypeFeatureImpl pfobj_sct0_{0}; | |
::jumanpp::u64 pf_sct0_15 = pfobj_sct0_.access(ctx, nodeInfo, entry); | |
constexpr jumanpp::core::features::impl::CodepointTypeFeatureImpl pfobj_sct1_{1}; | |
::jumanpp::u64 pf_sct1_16 = pfobj_sct1_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_34 = ::jumanpp::util::hashing::FastHash1{}.mix(34ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_34 = fe_pat_hash_34.mix(pf_nonstdSurf_11); | |
fe_pat_hash_34 = fe_pat_hash_34.mix(pf_sct0_15); | |
fe_pat_hash_34 = fe_pat_hash_34.mix(pf_sct1_16); | |
::jumanpp::u64 fe_pat_34 = fe_pat_hash_34.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_27_{27, 27, 34}; | |
auto value_fng_uni_27_ = fng_uni_27_.maskedValueFor(fe_pat_34, mask); | |
score_part_3 += weights.at(buf2.at(27)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_27_); | |
buf1.at(27) = value_fng_uni_27_; | |
// pattern feature #35 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::CodepointTypeFeatureImpl pfobj_sct1n_{-1}; | |
::jumanpp::u64 pf_sct1n_17 = pfobj_sct1n_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_35 = ::jumanpp::util::hashing::FastHash1{}.mix(35ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_35 = fe_pat_hash_35.mix(pf_nonstdSurf_11); | |
fe_pat_hash_35 = fe_pat_hash_35.mix(pf_sct0_15); | |
fe_pat_hash_35 = fe_pat_hash_35.mix(pf_sct1n_17); | |
::jumanpp::u64 fe_pat_35 = fe_pat_hash_35.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_28_{28, 28, 35}; | |
auto value_fng_uni_28_ = fng_uni_28_.maskedValueFor(fe_pat_35, mask); | |
score_part_0 += weights.at(buf2.at(28)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_28_); | |
buf1.at(28) = value_fng_uni_28_; | |
// pattern feature #36 (with unigram), usage=1 | |
constexpr jumanpp::core::features::impl::CopyPrimFeatureImpl pfobj_reading_{6}; | |
::jumanpp::u64 pf_reading_18 = pfobj_reading_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_36 = ::jumanpp::util::hashing::FastHash1{}.mix(36ULL).mix(1ULL).mix(34359656763621376ULL); | |
fe_pat_hash_36 = fe_pat_hash_36.mix(pf_reading_18); | |
::jumanpp::u64 fe_pat_36 = fe_pat_hash_36.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_29_{29, 29, 36}; | |
auto value_fng_uni_29_ = fng_uni_29_.maskedValueFor(fe_pat_36, mask); | |
score_part_1 += weights.at(buf2.at(29)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_29_); | |
buf1.at(29) = value_fng_uni_29_; | |
// pattern feature #13 (with unigram), usage=3 | |
auto fe_pat_hash_13 = ::jumanpp::util::hashing::FastHash1{}.mix(13ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_13 = fe_pat_hash_13.mix(pf_baseform_7); | |
fe_pat_hash_13 = fe_pat_hash_13.mix(pf_reading_18); | |
::jumanpp::u64 fe_pat_13 = fe_pat_hash_13.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_30_{30, 30, 13}; | |
auto value_fng_uni_30_ = fng_uni_30_.maskedValueFor(fe_pat_13, mask); | |
score_part_2 += weights.at(buf2.at(30)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_30_); | |
buf1.at(30) = value_fng_uni_30_; | |
patterns.at(13) = fe_pat_13; | |
// pattern feature #37 (with unigram), usage=1 | |
auto fe_pat_hash_37 = ::jumanpp::util::hashing::FastHash1{}.mix(37ULL).mix(4ULL).mix(34359656763621376ULL); | |
fe_pat_hash_37 = fe_pat_hash_37.mix(pf_baseform_7); | |
fe_pat_hash_37 = fe_pat_hash_37.mix(pf_reading_18); | |
fe_pat_hash_37 = fe_pat_hash_37.mix(pf_pos_2); | |
fe_pat_hash_37 = fe_pat_hash_37.mix(pf_subpos_3); | |
::jumanpp::u64 fe_pat_37 = fe_pat_hash_37.result(); | |
constexpr ::jumanpp::core::features::impl::UnigramFeature fng_uni_31_{31, 31, 37}; | |
auto value_fng_uni_31_ = fng_uni_31_.maskedValueFor(fe_pat_37, mask); | |
score_part_3 += weights.at(buf2.at(31)); // perceptron op | |
weights.prefetch<::jumanpp::util::PrefetchHint::PREFETCH_HINT_T0>(value_fng_uni_31_); | |
buf1.at(31) = value_fng_uni_31_; | |
// pattern feature #2 (without unigram), usage=6 | |
auto fe_pat_hash_2 = ::jumanpp::util::hashing::FastHash1{}.mix(2ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_2 = fe_pat_hash_2.mix(pf_pos_2); | |
fe_pat_hash_2 = fe_pat_hash_2.mix(pf_subpos_3); | |
fe_pat_hash_2 = fe_pat_hash_2.mix(pf_conjform_5); | |
::jumanpp::u64 fe_pat_2 = fe_pat_hash_2.result(); | |
patterns.at(2) = fe_pat_2; | |
// pattern feature #3 (without unigram), usage=6 | |
constexpr jumanpp::core::features::impl::ShiftMaskPrimFeatureImpl pfobj_lexicalized_{7, 3, 0x1}; | |
::jumanpp::u64 pf_lexicalized_19 = pfobj_lexicalized_.access(ctx, nodeInfo, entry); | |
auto fe_pat_hash_3 = ::jumanpp::util::hashing::FastHash1{}.mix(3ULL).mix(1ULL).mix(34359656763621376ULL); | |
if (pf_lexicalized_19 != 0) { // compute feature lexicalized | |
fe_pat_hash_3 = fe_pat_hash_3.mix(pf_surface_0).mix(pf_pos_2).mix(pf_subpos_3).mix(pf_conjtype_4).mix(pf_conjform_5); | |
} else { | |
fe_pat_hash_3 = fe_pat_hash_3.mix(pf_pos_2).mix(pf_subpos_3).mix(pf_conjtype_4); | |
} | |
::jumanpp::u64 fe_pat_3 = fe_pat_hash_3.result(); | |
patterns.at(3) = fe_pat_3; | |
// pattern feature #4 (without unigram), usage=2 | |
auto fe_pat_hash_4 = ::jumanpp::util::hashing::FastHash1{}.mix(4ULL).mix(3ULL).mix(34359656763621376ULL); | |
fe_pat_hash_4 = fe_pat_hash_4.mix(pf_pos_2); | |
fe_pat_hash_4 = fe_pat_hash_4.mix(pf_subpos_3); | |
fe_pat_hash_4 = fe_pat_hash_4.mix(pf_conjtype_4); | |
::jumanpp::u64 fe_pat_4 = fe_pat_hash_4.result(); | |
patterns.at(4) = fe_pat_4; | |
// pattern feature #5 (without unigram), usage=2 | |
auto fe_pat_hash_5 = ::jumanpp::util::hashing::FastHash1{}.mix(5ULL).mix(4ULL).mix(34359656763621376ULL); | |
fe_pat_hash_5 = fe_pat_hash_5.mix(pf_pos_2); | |
fe_pat_hash_5 = fe_pat_hash_5.mix(pf_subpos_3); | |
fe_pat_hash_5 = fe_pat_hash_5.mix(pf_conjtype_4); | |
fe_pat_hash_5 = fe_pat_hash_5.mix(pf_conjform_5); | |
::jumanpp::u64 fe_pat_5 = fe_pat_hash_5.result(); | |
patterns.at(5) = fe_pat_5; | |
// pattern feature #6 (without unigram), usage=2 | |
auto fe_pat_hash_6 = ::jumanpp::util::hashing::FastHash1{}.mix(6ULL).mix(5ULL).mix(34359656763621376ULL); | |
fe_pat_hash_6 = fe_pat_hash_6.mix(pf_pos_2); | |
fe_pat_hash_6 = fe_pat_hash_6.mix(pf_subpos_3); | |
fe_pat_hash_6 = fe_pat_hash_6.mix(pf_conjtype_4); | |
fe_pat_hash_6 = fe_pat_hash_6.mix(pf_conjform_5); | |
fe_pat_hash_6 = fe_pat_hash_6.mix(pf_baseform_7); | |
::jumanpp::u64 fe_pat_6 = fe_pat_hash_6.result(); | |
patterns.at(6) = fe_pat_6; | |
// pattern feature #7 (without unigram), usage=2 | |
auto fe_pat_hash_7 = ::jumanpp::util::hashing::FastHash1{}.mix(7ULL).mix(2ULL).mix(34359656763621376ULL); | |
fe_pat_hash_7 = fe_pat_hash_7.mix(pf_pos_2); | |
fe_pat_hash_7 = fe_pat_hash_7.mix(pf_conjform_5); | |
::jumanpp::u64 fe_pat_7 = fe_pat_hash_7.result(); | |
patterns.at(7) = fe_pat_7; | |
// bigram and trigram state | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_32_{0, 32, 0, 0}; | |
fng_bi_32_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_33_{1, 33, 1, 0}; | |
fng_bi_33_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_34_{2, 34, 0, 1}; | |
fng_bi_34_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_35_{3, 35, 1, 1}; | |
fng_bi_35_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_36_{4, 36, 4, 1}; | |
fng_bi_36_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_37_{5, 37, 2, 1}; | |
fng_bi_37_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_38_{6, 38, 5, 1}; | |
fng_bi_38_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_39_{7, 39, 6, 1}; | |
fng_bi_39_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_40_{8, 40, 1, 4}; | |
fng_bi_40_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_41_{9, 41, 4, 4}; | |
fng_bi_41_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_42_{10, 42, 2, 4}; | |
fng_bi_42_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_43_{11, 43, 6, 4}; | |
fng_bi_43_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_44_{12, 44, 1, 2}; | |
fng_bi_44_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_45_{13, 45, 4, 2}; | |
fng_bi_45_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_46_{14, 46, 2, 2}; | |
fng_bi_46_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_47_{15, 47, 6, 2}; | |
fng_bi_47_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_48_{16, 48, 1, 5}; | |
fng_bi_48_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_49_{17, 49, 5, 5}; | |
fng_bi_49_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_50_{18, 50, 6, 5}; | |
fng_bi_50_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_51_{19, 51, 1, 6}; | |
fng_bi_51_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_52_{20, 52, 4, 6}; | |
fng_bi_52_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_53_{21, 53, 2, 6}; | |
fng_bi_53_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_54_{22, 54, 5, 6}; | |
fng_bi_54_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_55_{23, 55, 6, 6}; | |
fng_bi_55_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_56_{24, 56, 3, 3}; | |
fng_bi_56_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_57_{25, 57, 12, 12}; | |
fng_bi_57_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_58_{26, 58, 9, 8}; | |
fng_bi_58_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_59_{27, 59, 8, 9}; | |
fng_bi_59_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_60_{28, 60, 10, 10}; | |
fng_bi_60_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_61_{29, 61, 0, 10}; | |
fng_bi_61_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_62_{30, 62, 7, 7}; | |
fng_bi_62_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_63_{31, 63, 10, 0}; | |
fng_bi_63_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_64_{32, 64, 0, 11}; | |
fng_bi_64_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_65_{33, 65, 11, 0}; | |
fng_bi_65_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_66_{34, 66, 13, 13}; | |
fng_bi_66_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_67_{35, 67, 13, 3}; | |
fng_bi_67_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::BigramFeature fng_bi_68_{36, 68, 3, 13}; | |
fng_bi_68_.step0(patterns, t1row); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_69_{0, 69, 0, 0, 0}; | |
fng_tri_69_.step0(patterns, t2row); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_70_{1, 70, 1, 1, 1}; | |
fng_tri_70_.step0(patterns, t2row); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_71_{2, 71, 2, 2, 2}; | |
fng_tri_71_.step0(patterns, t2row); | |
constexpr ::jumanpp::core::features::impl::TrigramFeature fng_tri_72_{3, 72, 3, 3, 3}; | |
fng_tri_72_.step0(patterns, t2row); | |
// publish perceptron value | |
if (JPP_LIKELY(item > 0)) { | |
scores.at(item - 1) = score_part_0 + score_part_1 + score_part_2 + score_part_3; | |
} | |
} | |
scores.at(numItems - 1) = ::jumanpp::core::analysis::impl::computeUnrolled4RawPerceptron(weights, buf1); | |
} //end function | |
}; // class PatternFeatureStaticApply_JumandicStatic | |
} //anon namespace | |
jumanpp::core::features::NgramFeatureApply*JumandicStatic::ngram() const { | |
return new NgramFeatureStaticApply_JumandicStatic{}; | |
} | |
jumanpp::core::features::PartialNgramFeatureApply*JumandicStatic::ngramPartial() const { | |
return new PartNgramFeatureStaticApply_JumandicStatic{}; | |
} | |
jumanpp::core::features::GeneratedPatternFeatureApply*JumandicStatic::pattern() const { | |
return new PatternFeatureStaticApply_JumandicStatic{}; | |
} | |
} //jumanpp_generated namespace |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment