diff options
author | Chris Dyer <cdyer@cs.cmu.edu> | 2012-03-15 22:47:04 -0400 |
---|---|---|
committer | Chris Dyer <cdyer@cs.cmu.edu> | 2012-03-15 22:47:04 -0400 |
commit | 0b598b997a7c1d2d9dc255cc2ff1bf9bb2c425a1 (patch) | |
tree | ceaafcb454dd9c6671ad1797330b089006c6a0a0 /gi/pf/quasi_model2.h | |
parent | dfbc278c1057555fda9312291c8024049e00b7d8 (diff) |
bayes bayes bayes
Diffstat (limited to 'gi/pf/quasi_model2.h')
-rw-r--r-- | gi/pf/quasi_model2.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gi/pf/quasi_model2.h b/gi/pf/quasi_model2.h index 588c8f84..4075affe 100644 --- a/gi/pf/quasi_model2.h +++ b/gi/pf/quasi_model2.h @@ -9,6 +9,7 @@ #include "array2d.h" #include "slice_sampler.h" #include "m.h" +#include "have_64_bits.h" struct AlignmentObservation { AlignmentObservation() : src_len(), trg_len(), j(), a_j() {} @@ -20,13 +21,23 @@ struct AlignmentObservation { unsigned short a_j; }; +#ifdef HAVE_64_BITS inline size_t hash_value(const AlignmentObservation& o) { return reinterpret_cast<const size_t&>(o); } - inline bool operator==(const AlignmentObservation& a, const AlignmentObservation& b) { return hash_value(a) == hash_value(b); } +#else +inline size_t hash_value(const AlignmentObservation& o) { + size_t h = 1; + boost::hash_combine(h, o.src_len); + boost::hash_combine(h, o.trg_len); + boost::hash_combine(h, o.j); + boost::hash_combine(h, o.a_j); + return h; +} +#endif struct QuasiModel2 { explicit QuasiModel2(double alpha, double pnull = 0.1) : |