Program Listing for File primitive_types.h

Return to documentation for file (src/primitive_types.h)

#include <vector>

#ifndef PRIMITIVE_TYPES_H_
#define PRIMITIVE_TYPES_H_

#define varsSENTINEL  0
#define clsSENTINEL   NOT_A_CLAUSE

#define EXIT_TIMEOUT 128

typedef uint64_t VariableIndex;
typedef VariableIndex ClauseIndex;
typedef VariableIndex ClauseOfs;
typedef VariableIndex ComponentVarAndCls;
typedef unsigned CacheEntryID;

typedef int64_t DecisionLevel;

static const ClauseIndex NOT_A_CLAUSE(0);
#define SENTINEL_CL NOT_A_CLAUSE

#define BITS_PER_BYTE 8
#define FIRST_VAR 1

enum class SolverExitState {
  NO_STATE, SUCCESS//, TIMEOUT, ABORTED
};
enum class SolverNextAction {
  EXIT, RESOLVED, PROCESS_COMPONENT, BACKTRACK
};


#ifdef DEBUG
  #define toDEBUGOUT(X) std::cout << X;
#else
  #define toDEBUGOUT(X)
#endif

enum AssignmentEncoding{
  ASSN_F = 0x0, ASSN_T = 0x1, ASSN_U = 0x3,
};
typedef std::vector<AssignmentEncoding> PartialAssignment;
typedef uint32_t SampleSize;


typedef int32_t TopTreeLiteral;
typedef uint64_t TreeNodeIndex;
enum class TopTreeNodeType {
  MAX_DEPTH,
  CYLINDER,
  COMPONENT_SPLIT,
  NUM_TREE_NODE_TYPES // Always be last
};

#endif /* PRIMITIVE_TYPES_H_ */