tomoto 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/ext/tomoto/ct.cpp +11 -11
- data/ext/tomoto/dmr.cpp +14 -13
- data/ext/tomoto/dt.cpp +14 -14
- data/ext/tomoto/ext.cpp +7 -7
- data/ext/tomoto/extconf.rb +1 -3
- data/ext/tomoto/gdmr.cpp +7 -7
- data/ext/tomoto/hdp.cpp +9 -9
- data/ext/tomoto/hlda.cpp +13 -13
- data/ext/tomoto/hpa.cpp +5 -5
- data/ext/tomoto/lda.cpp +42 -39
- data/ext/tomoto/llda.cpp +6 -6
- data/ext/tomoto/mglda.cpp +15 -15
- data/ext/tomoto/pa.cpp +6 -6
- data/ext/tomoto/plda.cpp +6 -6
- data/ext/tomoto/slda.cpp +8 -8
- data/ext/tomoto/utils.h +16 -70
- data/lib/tomoto/version.rb +1 -1
- data/vendor/tomotopy/README.kr.rst +57 -0
- data/vendor/tomotopy/README.rst +55 -0
- data/vendor/tomotopy/src/Labeling/Phraser.hpp +3 -3
- data/vendor/tomotopy/src/TopicModel/CTModel.hpp +5 -2
- data/vendor/tomotopy/src/TopicModel/DMRModel.hpp +5 -2
- data/vendor/tomotopy/src/TopicModel/DTModel.hpp +5 -2
- data/vendor/tomotopy/src/TopicModel/HDPModel.hpp +4 -4
- data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +5 -2
- data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +2 -2
- data/vendor/tomotopy/src/TopicModel/LDA.h +3 -3
- data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +3 -3
- data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +34 -14
- data/vendor/tomotopy/src/TopicModel/LLDAModel.hpp +5 -2
- data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +2 -2
- data/vendor/tomotopy/src/TopicModel/PAModel.hpp +1 -1
- data/vendor/tomotopy/src/TopicModel/PLDAModel.hpp +5 -2
- data/vendor/tomotopy/src/TopicModel/PTModel.hpp +5 -2
- data/vendor/tomotopy/src/TopicModel/SLDAModel.hpp +4 -1
- data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +48 -21
- data/vendor/tomotopy/src/Utils/AliasMethod.hpp +5 -4
- data/vendor/tomotopy/src/Utils/Dictionary.h +2 -2
- data/vendor/tomotopy/src/Utils/MultiNormalDistribution.hpp +1 -1
- data/vendor/tomotopy/src/Utils/TruncMultiNormal.hpp +1 -1
- data/vendor/tomotopy/src/Utils/math.h +2 -2
- data/vendor/tomotopy/src/Utils/serializer.hpp +30 -5
- metadata +6 -6
| @@ -35,11 +35,12 @@ namespace tomoto | |
| 35 35 | 
             
            				bitsize = o.bitsize;
         | 
| 36 36 | 
             
            				if (msize)
         | 
| 37 37 | 
             
            				{
         | 
| 38 | 
            -
            					 | 
| 39 | 
            -
            					 | 
| 38 | 
            +
            					size_t n = (size_t)1 << bitsize;
         | 
| 39 | 
            +
            					arr = std::make_unique<_Precision[]>(n);
         | 
| 40 | 
            +
            					alias = std::make_unique<size_t[]>(n);
         | 
| 40 41 |  | 
| 41 | 
            -
            					std::copy(o.arr.get(), o.arr.get() +  | 
| 42 | 
            -
            					std::copy(o.alias.get(), o.alias.get() +  | 
| 42 | 
            +
            					std::copy(o.arr.get(), o.arr.get() + n, arr.get());
         | 
| 43 | 
            +
            					std::copy(o.alias.get(), o.alias.get() + n, alias.get());
         | 
| 43 44 | 
             
            				}
         | 
| 44 45 | 
             
            				return *this;
         | 
| 45 46 | 
             
            			}
         | 
| @@ -32,7 +32,7 @@ namespace tomoto | |
| 32 32 | 
             
            			auto it = dict.find(word);
         | 
| 33 33 | 
             
            			if (it == dict.end())
         | 
| 34 34 | 
             
            			{
         | 
| 35 | 
            -
            				dict.emplace( | 
| 35 | 
            +
            				dict.emplace(word, (Vid)dict.size());
         | 
| 36 36 | 
             
            				id2word.emplace_back(word);
         | 
| 37 37 | 
             
            				return (Vid)(dict.size() - 1);
         | 
| 38 38 | 
             
            			}
         | 
| @@ -64,7 +64,7 @@ namespace tomoto | |
| 64 64 | 
             
            			serializer::readMany(reader, serializer::to_key("Dict"), id2word);
         | 
| 65 65 | 
             
            			for (size_t i = 0; i < id2word.size(); ++i)
         | 
| 66 66 | 
             
            			{
         | 
| 67 | 
            -
            				dict.emplace(id2word[i], i);
         | 
| 67 | 
            +
            				dict.emplace(id2word[i], (Vid)i);
         | 
| 68 68 | 
             
            			}
         | 
| 69 69 | 
             
            		}
         | 
| 70 70 |  | 
| @@ -10,7 +10,7 @@ namespace tomoto | |
| 10 10 | 
             
            		template<typename _Ty = float>
         | 
| 11 11 | 
             
            		struct MultiNormalDistribution
         | 
| 12 12 | 
             
            		{
         | 
| 13 | 
            -
            			static constexpr _Ty log2pi = 1.83787706641;
         | 
| 13 | 
            +
            			static constexpr _Ty log2pi = (_Ty)1.83787706641;
         | 
| 14 14 | 
             
            			Eigen::Matrix<_Ty, -1, 1> mean;
         | 
| 15 15 | 
             
            			Eigen::Matrix<_Ty, -1, -1> cov, l;
         | 
| 16 16 | 
             
            			_Ty logDet = 0;
         | 
| @@ -141,9 +141,9 @@ namespace tomoto | |
| 141 141 | 
             
            				float forSmall(float x) 
         | 
| 142 142 | 
             
            				{
         | 
| 143 143 | 
             
            					if (x == 0) return -INFINITY;
         | 
| 144 | 
            -
            					return  | 
| 144 | 
            +
            					return logf(x + 2) - 0.5f / (x + 2) - 1 / 12.f / powf(x + 2, 2) - 1 / (x + 1) - 1 / x; 
         | 
| 145 145 | 
             
            				}
         | 
| 146 | 
            -
            				float forLarge(float x) { return  | 
| 146 | 
            +
            				float forLarge(float x) { return logf(x) - 0.5f / x - 1 / 12.f / powf(x, 2); }
         | 
| 147 147 | 
             
            				float forNonFinite(float x) { if (std::isnan(x) || x < 0) return NAN; return INFINITY;}
         | 
| 148 148 | 
             
            			};
         | 
| 149 149 |  | 
| @@ -89,7 +89,7 @@ namespace tomoto | |
| 89 89 | 
             
            			template<> struct gen_seq<1> : seq<0> {};
         | 
| 90 90 |  | 
| 91 91 | 
             
            			template <size_t _n, size_t ... _is>
         | 
| 92 | 
            -
            			std::array<char,  | 
| 92 | 
            +
            			constexpr std::array<char, sizeof... (_is)> to_array(const char(&a)[_n], seq<_is...>)
         | 
| 93 93 | 
             
            			{
         | 
| 94 94 | 
             
            				return { {a[_is]...} };
         | 
| 95 95 | 
             
            			}
         | 
| @@ -101,7 +101,13 @@ namespace tomoto | |
| 101 101 | 
             
            			}
         | 
| 102 102 |  | 
| 103 103 | 
             
            			template <size_t _n, size_t ... _is>
         | 
| 104 | 
            -
            			std::array<char,  | 
| 104 | 
            +
            			constexpr std::array<char, sizeof... (_is) + 1> to_arrayz(const char(&a)[_n], seq<_is...>)
         | 
| 105 | 
            +
            			{
         | 
| 106 | 
            +
            				return { {a[_is]..., 0} };
         | 
| 107 | 
            +
            			}
         | 
| 108 | 
            +
             | 
| 109 | 
            +
            			template <size_t _n, size_t ... _is>
         | 
| 110 | 
            +
            			constexpr std::array<char, sizeof... (_is) + 1> to_arrayz(const std::array<char, _n>& a, seq<_is...>)
         | 
| 105 111 | 
             
            			{
         | 
| 106 112 | 
             
            				return { {a[_is]..., 0} };
         | 
| 107 113 | 
             
            			}
         | 
| @@ -132,17 +138,24 @@ namespace tomoto | |
| 132 138 | 
             
            				return std::string{ m.begin(), m.end() };
         | 
| 133 139 | 
             
            			}
         | 
| 134 140 |  | 
| 135 | 
            -
            			Key(const std::array<char, _len>& _m) : m(_m)
         | 
| 141 | 
            +
            			constexpr Key(const std::array<char, _len>& _m) : m(_m)
         | 
| 136 142 | 
             
            			{
         | 
| 137 143 | 
             
            			}
         | 
| 138 144 |  | 
| 139 | 
            -
            			Key(std::array<char, _len>&& _m) : m(_m)
         | 
| 145 | 
            +
            			constexpr Key(std::array<char, _len>&& _m) : m(_m)
         | 
| 140 146 | 
             
            			{
         | 
| 141 147 | 
             
            			}
         | 
| 142 148 |  | 
| 143 | 
            -
            			Key(const char(&a)[_len + 1]) : Key{ detail::to_array(a) }
         | 
| 149 | 
            +
            			constexpr Key(const char(&a)[_len + 1]) : Key{ detail::to_array(a) }
         | 
| 144 150 | 
             
            			{
         | 
| 145 151 | 
             
            			}
         | 
| 152 | 
            +
             | 
| 153 | 
            +
            			constexpr char operator[](size_t n) const
         | 
| 154 | 
            +
            			{
         | 
| 155 | 
            +
            				return n < _len ? m[n] : throw std::out_of_range("");
         | 
| 156 | 
            +
            			}
         | 
| 157 | 
            +
             | 
| 158 | 
            +
            			constexpr size_t size() const { return _len; }
         | 
| 146 159 | 
             
            		};
         | 
| 147 160 |  | 
| 148 161 | 
             
            		template<typename _Ty>
         | 
| @@ -161,12 +174,24 @@ namespace tomoto | |
| 161 174 | 
             
            			return Key<_n - 1>{detail::to_array(a)};
         | 
| 162 175 | 
             
            		}
         | 
| 163 176 |  | 
| 177 | 
            +
            		template<size_t _n>
         | 
| 178 | 
            +
            		constexpr Key<_n> to_key(const Key<_n>& key)
         | 
| 179 | 
            +
            		{
         | 
| 180 | 
            +
            			return key;
         | 
| 181 | 
            +
            		}
         | 
| 182 | 
            +
             | 
| 164 183 | 
             
            		template<size_t _n>
         | 
| 165 184 | 
             
            		constexpr Key<_n> to_keyz(const char(&a)[_n])
         | 
| 166 185 | 
             
            		{
         | 
| 167 186 | 
             
            			return Key<_n>{detail::to_arrayz(a)};
         | 
| 168 187 | 
             
            		}
         | 
| 169 188 |  | 
| 189 | 
            +
            		template<size_t _n>
         | 
| 190 | 
            +
            		constexpr Key<_n + 1> to_keyz(const Key<_n>& key)
         | 
| 191 | 
            +
            		{
         | 
| 192 | 
            +
            			return Key<_n + 1>{detail::to_arrayz(key.m, detail::GenSeq<_n>{})};
         | 
| 193 | 
            +
            		}
         | 
| 194 | 
            +
             | 
| 170 195 | 
             
            		template<typename _Ty, typename = void>
         | 
| 171 196 | 
             
            		struct Serializer;
         | 
| 172 197 |  | 
    
        metadata
    CHANGED
    
    | @@ -1,29 +1,29 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: tomoto
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.2. | 
| 4 | 
            +
              version: 0.2.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Andrew Kane
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2021-08- | 
| 11 | 
            +
            date: 2021-08-27 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rice
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - - " | 
| 17 | 
            +
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: ' | 
| 19 | 
            +
                    version: '4'
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - - " | 
| 24 | 
            +
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: ' | 
| 26 | 
            +
                    version: '4'
         | 
| 27 27 | 
             
            description:
         | 
| 28 28 | 
             
            email: andrew@ankane.org
         | 
| 29 29 | 
             
            executables: []
         |