LDA++
Parameters.hpp
1 #ifndef _LDAPLUSPLUS_PARAMETERS_HPP_
2 #define _LDAPLUSPLUS_PARAMETERS_HPP_
3 
4 
5 #include <utility>
6 
7 #include <Eigen/Core>
8 
9 namespace ldaplusplus {
10 namespace parameters {
11 
12 
16 struct Parameters
17 {
18 };
19 
20 
26 template <typename Scalar = double>
27 struct ModelParameters : public Parameters
28 {
29  ModelParameters() {}
31  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> a,
32  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> b
33  ) : alpha(std::move(a)),
34  beta(std::move(b))
35  {}
36 
37  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> alpha;
38  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> beta;
39 };
40 
41 
46 template <typename Scalar = double>
48 {
51  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> a,
52  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> b,
53  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> e
54  ) : ModelParameters<Scalar>(a, b),
55  eta(std::move(e))
56  {}
57 
58  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> eta;
59 };
60 
61 
66 template <typename Scalar = double>
68 {
71  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> g,
72  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> p
73  ) : gamma(std::move(g)),
74  phi(std::move(p))
75  {}
76 
77  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> gamma;
78  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> phi;
79 };
80 
81 
86 template <typename Scalar = double>
88 {
91  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> g,
92  Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> p,
93  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> t
95  tau(std::move(t))
96  {}
97 
98  Eigen::Matrix<Scalar, Eigen::Dynamic, 1> tau;
99 };
100 
101 } // namespace parameters
102 } // namespace ldaplusplus
103 
104 #endif // _LDAPLUSPLUS_PARAMETERS_HPP_
Definition: Parameters.hpp:27
Definition: Parameters.hpp:16
Definition: Document.hpp:11