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