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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/ext/tomoto/ct.cpp +11 -11
  4. data/ext/tomoto/dmr.cpp +14 -13
  5. data/ext/tomoto/dt.cpp +14 -14
  6. data/ext/tomoto/ext.cpp +7 -7
  7. data/ext/tomoto/extconf.rb +1 -3
  8. data/ext/tomoto/gdmr.cpp +7 -7
  9. data/ext/tomoto/hdp.cpp +9 -9
  10. data/ext/tomoto/hlda.cpp +13 -13
  11. data/ext/tomoto/hpa.cpp +5 -5
  12. data/ext/tomoto/lda.cpp +42 -39
  13. data/ext/tomoto/llda.cpp +6 -6
  14. data/ext/tomoto/mglda.cpp +15 -15
  15. data/ext/tomoto/pa.cpp +6 -6
  16. data/ext/tomoto/plda.cpp +6 -6
  17. data/ext/tomoto/slda.cpp +8 -8
  18. data/ext/tomoto/utils.h +16 -70
  19. data/lib/tomoto/version.rb +1 -1
  20. data/vendor/tomotopy/README.kr.rst +57 -0
  21. data/vendor/tomotopy/README.rst +55 -0
  22. data/vendor/tomotopy/src/Labeling/Phraser.hpp +3 -3
  23. data/vendor/tomotopy/src/TopicModel/CTModel.hpp +5 -2
  24. data/vendor/tomotopy/src/TopicModel/DMRModel.hpp +5 -2
  25. data/vendor/tomotopy/src/TopicModel/DTModel.hpp +5 -2
  26. data/vendor/tomotopy/src/TopicModel/HDPModel.hpp +4 -4
  27. data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +5 -2
  28. data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +2 -2
  29. data/vendor/tomotopy/src/TopicModel/LDA.h +3 -3
  30. data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +3 -3
  31. data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +34 -14
  32. data/vendor/tomotopy/src/TopicModel/LLDAModel.hpp +5 -2
  33. data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +2 -2
  34. data/vendor/tomotopy/src/TopicModel/PAModel.hpp +1 -1
  35. data/vendor/tomotopy/src/TopicModel/PLDAModel.hpp +5 -2
  36. data/vendor/tomotopy/src/TopicModel/PTModel.hpp +5 -2
  37. data/vendor/tomotopy/src/TopicModel/SLDAModel.hpp +4 -1
  38. data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +48 -21
  39. data/vendor/tomotopy/src/Utils/AliasMethod.hpp +5 -4
  40. data/vendor/tomotopy/src/Utils/Dictionary.h +2 -2
  41. data/vendor/tomotopy/src/Utils/MultiNormalDistribution.hpp +1 -1
  42. data/vendor/tomotopy/src/Utils/TruncMultiNormal.hpp +1 -1
  43. data/vendor/tomotopy/src/Utils/math.h +2 -2
  44. data/vendor/tomotopy/src/Utils/serializer.hpp +30 -5
  45. metadata +6 -6
@@ -35,11 +35,12 @@ namespace tomoto
35
35
  bitsize = o.bitsize;
36
36
  if (msize)
37
37
  {
38
- arr = std::make_unique<_Precision[]>(1 << bitsize);
39
- alias = std::make_unique<size_t[]>(1 << bitsize);
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() + (1 << bitsize), arr.get());
42
- std::copy(o.alias.get(), o.alias.get() + (1 << bitsize), 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(std::make_pair(word, dict.size()));
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;
@@ -58,7 +58,7 @@ namespace tomoto
58
58
  }
59
59
  else
60
60
  {
61
- z[j] = rtnorm::rtnorm(rng, lower_pos, upper_pos);
61
+ z[j] = (_Ty)rtnorm::rtnorm(rng, lower_pos, upper_pos);
62
62
  }
63
63
  }
64
64
  }
@@ -141,9 +141,9 @@ namespace tomoto
141
141
  float forSmall(float x)
142
142
  {
143
143
  if (x == 0) return -INFINITY;
144
- return log(x + 2) - 0.5f / (x + 2) - 1 / 12.f / pow(x + 2, 2) - 1 / (x + 1) - 1 / x;
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 log(x) - 0.5f / x - 1 / 12.f / pow(x, 2); }
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, _n - 1> to_array(const char(&a)[_n], seq<_is...>)
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, _n> to_arrayz(const char(&a)[_n], seq<_is...>)
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.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-24 00:00:00.000000000 Z
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: '3'
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: '3'
26
+ version: '4'
27
27
  description:
28
28
  email: andrew@ankane.org
29
29
  executables: []