summaryrefslogtreecommitdiff
path: root/klm/search/final.hh
diff options
context:
space:
mode:
authorKenneth Heafield <github@kheafield.com>2012-09-11 14:30:16 +0100
committerKenneth Heafield <github@kheafield.com>2012-09-11 14:31:42 +0100
commit45c9efc7d558dbe160056f02e74df1fee5d2d0e5 (patch)
tree0c26a847b78b4c0d86507b21b7338beb98ff1e73 /klm/search/final.hh
parent8882e9ebe158aef382bb5544559ef7f2a553db62 (diff)
Add search library to cdec (not used yet)
Diffstat (limited to 'klm/search/final.hh')
-rw-r--r--klm/search/final.hh40
1 files changed, 40 insertions, 0 deletions
diff --git a/klm/search/final.hh b/klm/search/final.hh
new file mode 100644
index 00000000..24e6f0a5
--- /dev/null
+++ b/klm/search/final.hh
@@ -0,0 +1,40 @@
+#ifndef SEARCH_FINAL__
+#define SEARCH_FINAL__
+
+#include "search/rule.hh"
+#include "search/types.hh"
+
+#include <boost/array.hpp>
+
+namespace search {
+
+class Final {
+ public:
+ typedef boost::array<const Final*, search::kMaxArity> ChildArray;
+
+ void Reset(Score bound, const Rule &from, const Final &left, const Final &right) {
+ bound_ = bound;
+ from_ = &from;
+ children_[0] = &left;
+ children_[1] = &right;
+ }
+
+ const ChildArray &Children() const { return children_; }
+
+ unsigned int ChildCount() const { return from_->Arity(); }
+
+ const Rule &From() const { return *from_; }
+
+ Score Bound() const { return bound_; }
+
+ private:
+ Score bound_;
+
+ const Rule *from_;
+
+ ChildArray children_;
+};
+
+} // namespace search
+
+#endif // SEARCH_FINAL__