tomoto 0.1.3 → 0.1.4

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +6 -0
  3. data/LICENSE.txt +1 -1
  4. data/README.md +7 -0
  5. data/ext/tomoto/ct.cpp +54 -0
  6. data/ext/tomoto/dmr.cpp +62 -0
  7. data/ext/tomoto/dt.cpp +82 -0
  8. data/ext/tomoto/ext.cpp +27 -773
  9. data/ext/tomoto/gdmr.cpp +34 -0
  10. data/ext/tomoto/hdp.cpp +42 -0
  11. data/ext/tomoto/hlda.cpp +66 -0
  12. data/ext/tomoto/hpa.cpp +27 -0
  13. data/ext/tomoto/lda.cpp +250 -0
  14. data/ext/tomoto/llda.cpp +29 -0
  15. data/ext/tomoto/mglda.cpp +71 -0
  16. data/ext/tomoto/pa.cpp +27 -0
  17. data/ext/tomoto/plda.cpp +29 -0
  18. data/ext/tomoto/slda.cpp +40 -0
  19. data/ext/tomoto/utils.h +84 -0
  20. data/lib/tomoto/tomoto.bundle +0 -0
  21. data/lib/tomoto/tomoto.so +0 -0
  22. data/lib/tomoto/version.rb +1 -1
  23. data/vendor/tomotopy/README.kr.rst +12 -3
  24. data/vendor/tomotopy/README.rst +12 -3
  25. data/vendor/tomotopy/src/Labeling/FoRelevance.cpp +47 -2
  26. data/vendor/tomotopy/src/Labeling/FoRelevance.h +21 -151
  27. data/vendor/tomotopy/src/Labeling/Labeler.h +5 -3
  28. data/vendor/tomotopy/src/Labeling/Phraser.hpp +518 -0
  29. data/vendor/tomotopy/src/TopicModel/CTModel.hpp +6 -3
  30. data/vendor/tomotopy/src/TopicModel/DT.h +1 -1
  31. data/vendor/tomotopy/src/TopicModel/DTModel.hpp +8 -23
  32. data/vendor/tomotopy/src/TopicModel/HDPModel.hpp +9 -18
  33. data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +56 -58
  34. data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +4 -14
  35. data/vendor/tomotopy/src/TopicModel/LDA.h +69 -17
  36. data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +1 -1
  37. data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +108 -61
  38. data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +7 -8
  39. data/vendor/tomotopy/src/TopicModel/PAModel.hpp +26 -16
  40. data/vendor/tomotopy/src/TopicModel/PT.h +27 -0
  41. data/vendor/tomotopy/src/TopicModel/PTModel.cpp +10 -0
  42. data/vendor/tomotopy/src/TopicModel/PTModel.hpp +273 -0
  43. data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +16 -11
  44. data/vendor/tomotopy/src/Utils/MultiNormalDistribution.hpp +3 -2
  45. data/vendor/tomotopy/src/Utils/Trie.hpp +39 -8
  46. data/vendor/tomotopy/src/Utils/TruncMultiNormal.hpp +36 -38
  47. data/vendor/tomotopy/src/Utils/Utils.hpp +50 -45
  48. data/vendor/tomotopy/src/Utils/math.h +8 -4
  49. data/vendor/tomotopy/src/Utils/tvector.hpp +4 -0
  50. metadata +24 -60
@@ -153,28 +153,32 @@ namespace tomoto
153
153
  inline float lgammaT(float x) { return detail::LUT_lgamma::get(x); }
154
154
  inline float digammaT(float x) { return detail::LUT_digamma::get(x); }
155
155
 
156
+ // approximation : lgamma(z) ~= (z+2.5)ln(z+3) - z - 3 + 0.5 ln (2pi) + 1/12/(z + 3) - ln (z(z+1)(z+2))
156
157
  template<class _T>
157
158
  inline auto lgammaApprox(_T z) -> decltype((z + 2.5)* log(z + 3) - (z + 3) + 0.91893853 + 1. / 12. / (z + 3) - log(z * (z + 1) * (z + 2)))
158
159
  {
159
- // approximation : lgamma(z) ~= (z+2.5)ln(z+3) - z - 3 + 0.5 ln (2pi) + 1/12/(z + 3) - ln (z(z+1)(z+2))
160
160
  return (z + 2.5) * log(z + 3) - (z + 3) + 0.91893853 + 1. / 12. / (z + 3) - log(z * (z + 1) * (z + 2));
161
161
  }
162
162
 
163
+ // calc lgamma(z + a) - lgamma(z)
163
164
  template<class _T, class _U>
164
- inline _T lgammaSubt(_T z, _U a) // calc lgamma(z + a) - lgamma(z)
165
+ inline auto lgammaSubt(_T z, _U a) -> decltype((z + a + 1.5)* log(z + a + 2) - (z + 1.5) * log(z + 2) - a + (1. / (z + a + 2) - 1. / (z + 2)) / 12. - log(((z + a) * (z + a + 1)) / (z * (z + 1))))
165
166
  {
166
167
  return (z + a + 1.5) * log(z + a + 2) - (z + 1.5) * log(z + 2) - a + (1. / (z + a + 2) - 1. / (z + 2)) / 12. - log(((z + a) * (z + a + 1)) / (z * (z + 1)));
167
168
  }
168
169
 
170
+ // approximation : digamma(z) ~= ln(z+4) - 1/2/(z+4) - 1/12/(z+4)^2 - 1/z - 1/(z+1) - 1/(z+2) - 1/(z+3)
169
171
  template<class _T>
170
172
  inline auto digammaApprox(_T z) -> decltype(log(z + 4) - 1. / 2. / (z + 4) - 1. / 12. / ((z + 4) * (z + 4)) - 1. / z - 1. / (z + 1) - 1. / (z + 2) - 1. / (z + 3))
171
173
  {
172
- // approximation : digamma(z) ~= ln(z+4) - 1/2/(z+4) - 1/12/(z+4)^2 - 1/z - 1/(z+1) - 1/(z+2) - 1/(z+3)
173
174
  return log(z + 4) - 1. / 2. / (z + 4) - 1. / 12. / ((z + 4) * (z + 4)) - 1. / z - 1. / (z + 1) - 1. / (z + 2) - 1. / (z + 3);
174
175
  }
175
176
 
177
+ // calc digamma(z + a) - digamma(z)
176
178
  template<class _T, class _U>
177
- inline _T digammaSubt(_T z, _U a) // calc digamma(z + a) - digamma(z)
179
+ inline auto digammaSubt(_T z, _U a) -> decltype(log((z + a + 2) / (z + 2)) - (1 / (z + a + 2) - 1 / (z + 2)) / 2 - (1 / (z + a + 2) / (z + a + 2) - 1 / (z + 2) / (z + 2)) / 12
180
+ - 1. / (z + a) - 1. / (z + a + 1)
181
+ - 1. / z - 1. / (z + 1))
178
182
  {
179
183
  return log((z + a + 2) / (z + 2)) - (1 / (z + a + 2) - 1 / (z + 2)) / 2 - (1 / (z + a + 2) / (z + a + 2) - 1 / (z + 2) / (z + 2)) / 12
180
184
  - 1. / (z + a) - 1. / (z + a + 1)
@@ -172,10 +172,14 @@ namespace tomoto
172
172
 
173
173
  reverse_iterator rbegin() noexcept { return reverse_iterator(_last); }
174
174
 
175
+ const_reverse_iterator rbegin() const noexcept { return reverse_iterator(_last); }
176
+
175
177
  const_reverse_iterator crbegin() const noexcept { return reverse_iterator(_last); }
176
178
 
177
179
  reverse_iterator rend() noexcept { return reverse_iterator(_first); }
178
180
 
181
+ const_reverse_iterator rend() const noexcept { return reverse_iterator(_first); }
182
+
179
183
  const_reverse_iterator crend() const noexcept { return reverse_iterator(_first); }
180
184
 
181
185
  // 23.3.11.3, capacity:
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tomoto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-19 00:00:00.000000000 Z
11
+ date: 2021-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -24,64 +24,8 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.2'
27
- - !ruby/object:Gem::Dependency
28
- name: bundler
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rake
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rake-compiler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: minitest
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '5'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '5'
83
27
  description:
84
- email: andrew@chartkick.com
28
+ email: andrew@ankane.org
85
29
  executables: []
86
30
  extensions:
87
31
  - ext/tomoto/extconf.rb
@@ -90,8 +34,22 @@ files:
90
34
  - CHANGELOG.md
91
35
  - LICENSE.txt
92
36
  - README.md
37
+ - ext/tomoto/ct.cpp
38
+ - ext/tomoto/dmr.cpp
39
+ - ext/tomoto/dt.cpp
93
40
  - ext/tomoto/ext.cpp
94
41
  - ext/tomoto/extconf.rb
42
+ - ext/tomoto/gdmr.cpp
43
+ - ext/tomoto/hdp.cpp
44
+ - ext/tomoto/hlda.cpp
45
+ - ext/tomoto/hpa.cpp
46
+ - ext/tomoto/lda.cpp
47
+ - ext/tomoto/llda.cpp
48
+ - ext/tomoto/mglda.cpp
49
+ - ext/tomoto/pa.cpp
50
+ - ext/tomoto/plda.cpp
51
+ - ext/tomoto/slda.cpp
52
+ - ext/tomoto/utils.h
95
53
  - lib/tomoto.rb
96
54
  - lib/tomoto/ct.rb
97
55
  - lib/tomoto/dmr.rb
@@ -106,6 +64,8 @@ files:
106
64
  - lib/tomoto/pa.rb
107
65
  - lib/tomoto/plda.rb
108
66
  - lib/tomoto/slda.rb
67
+ - lib/tomoto/tomoto.bundle
68
+ - lib/tomoto/tomoto.so
109
69
  - lib/tomoto/version.rb
110
70
  - vendor/EigenRand/EigenRand/Core.h
111
71
  - vendor/EigenRand/EigenRand/Dists/Basic.h
@@ -446,6 +406,7 @@ files:
446
406
  - vendor/tomotopy/src/Labeling/FoRelevance.cpp
447
407
  - vendor/tomotopy/src/Labeling/FoRelevance.h
448
408
  - vendor/tomotopy/src/Labeling/Labeler.h
409
+ - vendor/tomotopy/src/Labeling/Phraser.hpp
449
410
  - vendor/tomotopy/src/TopicModel/CT.h
450
411
  - vendor/tomotopy/src/TopicModel/CTModel.cpp
451
412
  - vendor/tomotopy/src/TopicModel/CTModel.hpp
@@ -484,6 +445,9 @@ files:
484
445
  - vendor/tomotopy/src/TopicModel/PLDA.h
485
446
  - vendor/tomotopy/src/TopicModel/PLDAModel.cpp
486
447
  - vendor/tomotopy/src/TopicModel/PLDAModel.hpp
448
+ - vendor/tomotopy/src/TopicModel/PT.h
449
+ - vendor/tomotopy/src/TopicModel/PTModel.cpp
450
+ - vendor/tomotopy/src/TopicModel/PTModel.hpp
487
451
  - vendor/tomotopy/src/TopicModel/SLDA.h
488
452
  - vendor/tomotopy/src/TopicModel/SLDAModel.cpp
489
453
  - vendor/tomotopy/src/TopicModel/SLDAModel.hpp
@@ -542,7 +506,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
542
506
  - !ruby/object:Gem::Version
543
507
  version: '0'
544
508
  requirements: []
545
- rubygems_version: 3.1.4
509
+ rubygems_version: 3.2.3
546
510
  signing_key:
547
511
  specification_version: 4
548
512
  summary: High performance topic modeling for Ruby