1 #ifndef _RBASE_HPP_YPLSW
2 #define _RBASE_HPP_YPLSW
3 
4 #include "library/library.hpp"
5 #include "library/vec1.hpp"
6 #include "memory_backtrack.hpp"
7 #include "partition_stack.hpp"
8 #include "queue/tracer.hpp"
9 #include "library/shared_ptr.hpp"
10 
11 class RBase
12 {
13 	// Make non-copyable
14 	RBase(const RBase&);
15 	void operator=(const RBase&);
16 public:
17 
RBase()18 	RBase() : initial_permstack(0)
19 	{ }
20 
21     vec1<int> branchcell;
22     vec1<int> branchvalue;
23     PartitionStack* initial_permstack;
24     vec1<TraceList> trace;
25     vec1<int> value_ordering;
26     vec1<int> inv_value_ordering;
27 
depth() const28     int depth() const
29     { return branchcell.size(); }
30 
~RBase()31     ~RBase()
32     { delete initial_permstack; }
33 };
34 
35 
36 #endif
37