Lines Matching refs:SignedLogWeightTpl
32 class SignedLogWeightTpl
44 typedef SignedLogWeightTpl<T> ReverseWeight;
46 SignedLogWeightTpl() : PairWeight<X1, X2>() {}
48 SignedLogWeightTpl(const SignedLogWeightTpl<T>& w)
51 SignedLogWeightTpl(const PairWeight<X1, X2>& w)
54 SignedLogWeightTpl(const X1& x1, const X2& x2)
57 static const SignedLogWeightTpl<T> &Zero() {
58 static const SignedLogWeightTpl<T> zero(X1(1.0), X2::Zero());
62 static const SignedLogWeightTpl<T> &One() {
63 static const SignedLogWeightTpl<T> one(X1(1.0), X2::One());
67 static const SignedLogWeightTpl<T> &NoWeight() {
68 static const SignedLogWeightTpl<T> no_weight(X1(1.0), X2::NoWeight());
108 inline SignedLogWeightTpl<T> Plus(const SignedLogWeightTpl<T> &w1,
109 const SignedLogWeightTpl<T> &w2) {
111 return SignedLogWeightTpl<T>::NoWeight();
122 return SignedLogWeightTpl<T>(w1.Value1(), (f2 - log(2.0F)));
124 return SignedLogWeightTpl<T>::Zero();
127 return SignedLogWeightTpl<T>(
130 return SignedLogWeightTpl<T>(
135 return SignedLogWeightTpl<T>(
138 return SignedLogWeightTpl<T>(
145 inline SignedLogWeightTpl<T> Minus(const SignedLogWeightTpl<T> &w1,
146 const SignedLogWeightTpl<T> &w2) {
147 SignedLogWeightTpl<T> minus_w2(-w2.Value1().Value(), w2.Value2());
152 inline SignedLogWeightTpl<T> Times(const SignedLogWeightTpl<T> &w1,
153 const SignedLogWeightTpl<T> &w2) {
155 return SignedLogWeightTpl<T>::NoWeight();
161 return SignedLogWeightTpl<T>(TropicalWeight(1.0), (f1 + f2));
163 return SignedLogWeightTpl<T>(TropicalWeight(-1.0), (f1 + f2));
167 inline SignedLogWeightTpl<T> Divide(const SignedLogWeightTpl<T> &w1,
168 const SignedLogWeightTpl<T> &w2,
171 return SignedLogWeightTpl<T>::NoWeight();
177 return SignedLogWeightTpl<T>(TropicalWeight(1.0),
180 return SignedLogWeightTpl<T>(TropicalWeight(1.0),
183 return SignedLogWeightTpl<T>(TropicalWeight(1.0), (f1 - f2));
185 return SignedLogWeightTpl<T>(TropicalWeight(-1.0), (f1 - f2));
189 inline bool ApproxEqual(const SignedLogWeightTpl<T> &w1,
190 const SignedLogWeightTpl<T> &w2,
203 inline bool operator==(const SignedLogWeightTpl<T> &w1,
204 const SignedLogWeightTpl<T> &w2) {
216 typedef SignedLogWeightTpl<float> SignedLogWeight;
218 typedef SignedLogWeightTpl<double> SignedLog64Weight;