SemOpt  $Revision:83+[c2a47fa11ed3+]$
CompleteSemantics.cpp
Go to the documentation of this file.
1 
10 #include "CompleteSemantics.h"
11 
12 bool CompleteSemantics::another_complete()
13 {
15  this->sat_pigreek.clone(&compute);
16 
17  vector<Labelling>::iterator it;
18  for (it = this->labellings.begin(); it != this->labellings.end(); it++)
19  {
20  OrClause negation = OrClause();
22  for (arg = (*it).inargs()->begin(); arg != (*it).inargs()->end(); arg++)
23  {
24  negation.appendVariable((*arg)->NotInVar());
25  }
26 
27  for (arg = (*it).outargs()->begin(); arg != (*it).outargs()->end();
28  arg++)
29  {
30  negation.appendVariable((*arg)->NotOutVar());
31  }
32 
33  for (arg = (*it).undecargs()->begin(); arg != (*it).undecargs()->end();
34  arg++)
35  {
36  negation.appendVariable((*arg)->NotUndecVar());
37  }
38  compute.appendOrClause(negation);
39  }
40  Labelling res = Labelling();
41  if(this->satlab(compute, &res))
42  {
43  this->labellings.push_back(res);
44  return true;
45  }
46  return false;
47 }
52 {
53  this->cleanlabs();
54  while(this->another_complete());
55 }
56 
57 CompleteSemantics::~CompleteSemantics()
58 {
59  // TODO Auto-generated destructor stub
60 }
61