tomoto 0.1.4 → 0.2.0
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 +5 -0
- data/ext/tomoto/ct.cpp +8 -4
- data/ext/tomoto/dmr.cpp +10 -4
- data/ext/tomoto/dt.cpp +13 -4
- data/ext/tomoto/extconf.rb +1 -1
- data/ext/tomoto/gdmr.cpp +14 -6
- data/ext/tomoto/hdp.cpp +9 -4
- data/ext/tomoto/hlda.cpp +9 -4
- data/ext/tomoto/hpa.cpp +9 -4
- data/ext/tomoto/lda.cpp +8 -4
- data/ext/tomoto/llda.cpp +8 -4
- data/ext/tomoto/mglda.cpp +11 -1
- data/ext/tomoto/pa.cpp +9 -4
- data/ext/tomoto/plda.cpp +8 -4
- data/ext/tomoto/slda.cpp +13 -5
- data/lib/tomoto/gdmr.rb +2 -2
- data/lib/tomoto/version.rb +1 -1
- data/vendor/EigenRand/EigenRand/Core.h +6 -1107
- data/vendor/EigenRand/EigenRand/Dists/Basic.h +490 -43
- data/vendor/EigenRand/EigenRand/Dists/Discrete.h +916 -285
- data/vendor/EigenRand/EigenRand/Dists/GammaPoisson.h +85 -36
- data/vendor/EigenRand/EigenRand/Dists/NormalExp.h +1038 -290
- data/vendor/EigenRand/EigenRand/EigenRand +2 -2
- data/vendor/EigenRand/EigenRand/Macro.h +4 -4
- data/vendor/EigenRand/EigenRand/MorePacketMath.h +54 -22
- data/vendor/EigenRand/EigenRand/MvDists/Multinomial.h +222 -0
- data/vendor/EigenRand/EigenRand/MvDists/MvNormal.h +492 -0
- data/vendor/EigenRand/EigenRand/PacketFilter.h +2 -2
- data/vendor/EigenRand/EigenRand/PacketRandomEngine.h +2 -2
- data/vendor/EigenRand/EigenRand/RandUtils.h +65 -11
- data/vendor/EigenRand/EigenRand/doc.h +142 -25
- data/vendor/EigenRand/LICENSE +1 -1
- data/vendor/EigenRand/README.md +109 -24
- data/vendor/tomotopy/README.kr.rst +27 -6
- data/vendor/tomotopy/README.rst +29 -8
- data/vendor/tomotopy/src/Labeling/FoRelevance.cpp +60 -12
- data/vendor/tomotopy/src/Labeling/FoRelevance.h +2 -2
- data/vendor/tomotopy/src/Labeling/Phraser.hpp +33 -21
- data/vendor/tomotopy/src/TopicModel/CT.h +8 -5
- data/vendor/tomotopy/src/TopicModel/CTModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/CTModel.hpp +29 -23
- data/vendor/tomotopy/src/TopicModel/DMR.h +33 -4
- data/vendor/tomotopy/src/TopicModel/DMRModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/DMRModel.hpp +231 -57
- data/vendor/tomotopy/src/TopicModel/DT.h +24 -5
- data/vendor/tomotopy/src/TopicModel/DTModel.cpp +2 -8
- data/vendor/tomotopy/src/TopicModel/DTModel.hpp +41 -28
- data/vendor/tomotopy/src/TopicModel/GDMR.h +31 -5
- data/vendor/tomotopy/src/TopicModel/GDMRModel.cpp +2 -7
- data/vendor/tomotopy/src/TopicModel/GDMRModel.hpp +211 -104
- data/vendor/tomotopy/src/TopicModel/HDP.h +11 -2
- data/vendor/tomotopy/src/TopicModel/HDPModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/HDPModel.hpp +52 -45
- data/vendor/tomotopy/src/TopicModel/HLDA.h +11 -2
- data/vendor/tomotopy/src/TopicModel/HLDAModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/HLDAModel.hpp +13 -16
- data/vendor/tomotopy/src/TopicModel/HPA.h +5 -2
- data/vendor/tomotopy/src/TopicModel/HPAModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/HPAModel.hpp +51 -21
- data/vendor/tomotopy/src/TopicModel/LDA.h +9 -2
- data/vendor/tomotopy/src/TopicModel/LDACVB0Model.hpp +8 -8
- data/vendor/tomotopy/src/TopicModel/LDAModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/LDAModel.hpp +70 -28
- data/vendor/tomotopy/src/TopicModel/LLDA.h +1 -2
- data/vendor/tomotopy/src/TopicModel/LLDAModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/LLDAModel.hpp +22 -12
- data/vendor/tomotopy/src/TopicModel/MGLDA.h +12 -3
- data/vendor/tomotopy/src/TopicModel/MGLDAModel.cpp +2 -10
- data/vendor/tomotopy/src/TopicModel/MGLDAModel.hpp +42 -19
- data/vendor/tomotopy/src/TopicModel/PA.h +9 -4
- data/vendor/tomotopy/src/TopicModel/PAModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/PAModel.hpp +48 -25
- data/vendor/tomotopy/src/TopicModel/PLDA.h +13 -2
- data/vendor/tomotopy/src/TopicModel/PLDAModel.cpp +2 -6
- data/vendor/tomotopy/src/TopicModel/PLDAModel.hpp +27 -19
- data/vendor/tomotopy/src/TopicModel/PT.h +12 -5
- data/vendor/tomotopy/src/TopicModel/PTModel.cpp +2 -3
- data/vendor/tomotopy/src/TopicModel/PTModel.hpp +29 -14
- data/vendor/tomotopy/src/TopicModel/SLDA.h +18 -6
- data/vendor/tomotopy/src/TopicModel/SLDAModel.cpp +2 -10
- data/vendor/tomotopy/src/TopicModel/SLDAModel.hpp +93 -43
- data/vendor/tomotopy/src/TopicModel/TopicModel.hpp +58 -23
- data/vendor/tomotopy/src/Utils/AliasMethod.hpp +6 -6
- data/vendor/tomotopy/src/Utils/Dictionary.h +11 -0
- data/vendor/tomotopy/src/Utils/SharedString.hpp +26 -1
- data/vendor/tomotopy/src/Utils/Trie.hpp +46 -21
- data/vendor/tomotopy/src/Utils/Utils.hpp +99 -14
- data/vendor/tomotopy/src/Utils/exception.h +1 -1
- data/vendor/tomotopy/src/Utils/math.h +5 -7
- data/vendor/tomotopy/src/Utils/serializer.hpp +329 -201
- data/vendor/tomotopy/src/Utils/text.hpp +8 -0
- data/vendor/tomotopy/src/Utils/tvector.hpp +49 -7
- metadata +9 -7
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
#include <string>
|
|
5
5
|
#include <iostream>
|
|
6
6
|
#include <iterator>
|
|
7
|
+
#include <iomanip>
|
|
7
8
|
#include <algorithm>
|
|
8
9
|
#include <cstdio>
|
|
9
10
|
|
|
@@ -31,6 +32,13 @@ namespace tomoto
|
|
|
31
32
|
return s;
|
|
32
33
|
}
|
|
33
34
|
|
|
35
|
+
inline std::string quote(const std::string& s)
|
|
36
|
+
{
|
|
37
|
+
std::ostringstream stream;
|
|
38
|
+
stream << std::quoted(s);
|
|
39
|
+
return stream.str();
|
|
40
|
+
}
|
|
41
|
+
|
|
34
42
|
inline std::vector<std::string> split(const std::string& str, const std::string& delim)
|
|
35
43
|
{
|
|
36
44
|
std::vector<std::string> tokens;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
#include <algorithm>
|
|
3
3
|
#include <cstring>
|
|
4
|
+
#include "serializer.hpp"
|
|
5
|
+
|
|
4
6
|
namespace tomoto
|
|
5
7
|
{
|
|
6
8
|
/**
|
|
@@ -24,14 +26,10 @@ namespace tomoto
|
|
|
24
26
|
|
|
25
27
|
tvector() noexcept
|
|
26
28
|
{
|
|
27
|
-
_first = _Alloc{}.allocate(4);
|
|
28
|
-
_last = _first;
|
|
29
|
-
_rsvEnd = _first + 4;
|
|
30
29
|
}
|
|
31
30
|
|
|
32
31
|
tvector(std::nullptr_t) noexcept
|
|
33
32
|
{
|
|
34
|
-
|
|
35
33
|
}
|
|
36
34
|
|
|
37
35
|
// non-owning, just pointing constructor
|
|
@@ -292,7 +290,7 @@ namespace tomoto
|
|
|
292
290
|
|
|
293
291
|
bool isOwner() const noexcept
|
|
294
292
|
{
|
|
295
|
-
return _rsvEnd;
|
|
293
|
+
return _rsvEnd || (_rsvEnd == nullptr && _first == nullptr);
|
|
296
294
|
}
|
|
297
295
|
|
|
298
296
|
// 23.3.11.5, modifiers:
|
|
@@ -521,8 +519,11 @@ namespace tomoto
|
|
|
521
519
|
{
|
|
522
520
|
size_type s = size();
|
|
523
521
|
T *tarr = _Alloc{}.allocate(newSize);
|
|
524
|
-
|
|
525
|
-
|
|
522
|
+
if (_first)
|
|
523
|
+
{
|
|
524
|
+
memcpy(tarr, _first, s * sizeof(T));
|
|
525
|
+
_Alloc{}.deallocate(_first, capacity());
|
|
526
|
+
}
|
|
526
527
|
_first = tarr;
|
|
527
528
|
_last = _first + s;
|
|
528
529
|
_rsvEnd = _first + newSize;
|
|
@@ -544,4 +545,45 @@ namespace tomoto
|
|
|
544
545
|
return geometric;
|
|
545
546
|
}
|
|
546
547
|
};
|
|
548
|
+
|
|
549
|
+
namespace serializer
|
|
550
|
+
{
|
|
551
|
+
template<typename _Ty>
|
|
552
|
+
struct Serializer<tvector<_Ty>, typename std::enable_if<std::is_fundamental<_Ty>::value>::type>
|
|
553
|
+
{
|
|
554
|
+
using VTy = tvector<_Ty>;
|
|
555
|
+
void write(std::ostream& ostr, const VTy& v)
|
|
556
|
+
{
|
|
557
|
+
writeToStream(ostr, (uint32_t)v.size());
|
|
558
|
+
if (!ostr.write((const char*)v.data(), sizeof(_Ty) * v.size()))
|
|
559
|
+
throw std::ios_base::failure(std::string("writing type '") + typeid(_Ty).name() + std::string("' is failed"));
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
void read(std::istream& istr, VTy& v)
|
|
563
|
+
{
|
|
564
|
+
auto size = readFromStream<uint32_t>(istr);
|
|
565
|
+
v.resize(size);
|
|
566
|
+
if (!istr.read((char*)v.data(), sizeof(_Ty) * size))
|
|
567
|
+
throw std::ios_base::failure(std::string("reading type '") + typeid(_Ty).name() + std::string("' is failed"));
|
|
568
|
+
}
|
|
569
|
+
};
|
|
570
|
+
|
|
571
|
+
template<typename _Ty>
|
|
572
|
+
struct Serializer<tvector<_Ty>, typename std::enable_if<!std::is_fundamental<_Ty>::value>::type>
|
|
573
|
+
{
|
|
574
|
+
using VTy = tvector<_Ty>;
|
|
575
|
+
void write(std::ostream& ostr, const VTy& v)
|
|
576
|
+
{
|
|
577
|
+
writeToStream(ostr, (uint32_t)v.size());
|
|
578
|
+
for (auto& e : v) Serializer<_Ty>{}.write(ostr, e);
|
|
579
|
+
}
|
|
580
|
+
|
|
581
|
+
void read(std::istream& istr, VTy& v)
|
|
582
|
+
{
|
|
583
|
+
auto size = readFromStream<uint32_t>(istr);
|
|
584
|
+
v.resize(size);
|
|
585
|
+
for (auto& e : v) Serializer<_Ty>{}.read(istr, e);
|
|
586
|
+
}
|
|
587
|
+
};
|
|
588
|
+
}
|
|
547
589
|
}
|
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.
|
|
4
|
+
version: 0.2.0
|
|
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-
|
|
11
|
+
date: 2021-05-23 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: '3'
|
|
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: '3'
|
|
27
27
|
description:
|
|
28
28
|
email: andrew@ankane.org
|
|
29
29
|
executables: []
|
|
@@ -75,6 +75,8 @@ files:
|
|
|
75
75
|
- vendor/EigenRand/EigenRand/EigenRand
|
|
76
76
|
- vendor/EigenRand/EigenRand/Macro.h
|
|
77
77
|
- vendor/EigenRand/EigenRand/MorePacketMath.h
|
|
78
|
+
- vendor/EigenRand/EigenRand/MvDists/Multinomial.h
|
|
79
|
+
- vendor/EigenRand/EigenRand/MvDists/MvNormal.h
|
|
78
80
|
- vendor/EigenRand/EigenRand/PacketFilter.h
|
|
79
81
|
- vendor/EigenRand/EigenRand/PacketRandomEngine.h
|
|
80
82
|
- vendor/EigenRand/EigenRand/RandUtils.h
|
|
@@ -499,7 +501,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
499
501
|
requirements:
|
|
500
502
|
- - ">="
|
|
501
503
|
- !ruby/object:Gem::Version
|
|
502
|
-
version: '2.
|
|
504
|
+
version: '2.6'
|
|
503
505
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
504
506
|
requirements:
|
|
505
507
|
- - ">="
|