solver/SatValue.h
00001 /*
00002  * SatValue.h
00003  *
00004  *  Created on: Aug 3, 2009
00005  *      Author: tdillig
00006  */
00007 
00008 #ifndef SATVALUE_H_
00009 #define SATVALUE_H_
00010 
00011 #include "bignum.h"
00012 
00013 
00014 /*
00015  * Represents a satisfying assignment.
00016  * If the variable is known to be an integer (i.e.
00017  * involved in a linear system), the satisfying
00018  * assignment is an integer. Otherwise,
00019  * we assign some made up element that is
00020  * unique for each equivalence class.
00021  */
00022 class SatValue {
00023 public:
00024 
00025         bool integer;
00026         //If integer, the actual integer value, otherwise a unique id per
00027         //equivalence class.
00028         bignum value;
00029 
00030         string to_string()
00031         {
00032                 if(!integer)
00033                         return "e"+value.to_string();
00034                 return value.to_string();
00035         }
00036 
00037         SatValue();
00038         ~SatValue();
00039 };
00040 
00041 #endif /* SATVALUE_H_ */