Skip to content

Commit b18d3c2

Browse files
committed
pass sampling vars to sampling modes as well
1 parent fb2fbe1 commit b18d3c2

File tree

5 files changed

+13
-11
lines changed

5 files changed

+13
-11
lines changed

include/stp/Sat/CMSGen.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ THE SOFTWARE.
3333
#include "stp/Sat/SATSolver.h"
3434
#include "cmsgen/cmsgen.h"
3535
#include <unordered_set>
36+
#include <vector>
3637
// clang-format on
3738
namespace CMSGenNS
3839
{

include/stp/Sat/UniSamp.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class UniSamp : public SATSolver
5858
uint64_t samples_generated = 0;
5959
uint64_t samples_needed = 0;
6060
bool unisamp_ran;
61+
vector<uint32_t> sampling_vars_orig;
6162

6263
public:
6364
UniSamp(uint64_t unisamp_seed, uint64_t samples_needed,

lib/Sat/ApxMC.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,6 @@ bool ApxMC::solve(bool& timeout_expired) // Search without assumptions.
116116
for (uint32_t i = 0; i < arjun->nVars(); i++)
117117
sampling_vars.push_back(i);
118118

119-
arjun->set_seed(5);
120119
arjun->set_seed(seed);
121120
arjun->set_verbosity(0);
122121
arjun->set_simp(1);
@@ -149,9 +148,6 @@ bool ApxMC::solve(bool& timeout_expired) // Search without assumptions.
149148

150149
delete arjun;
151150

152-
//TODO AS: this is debugging as Arjun is not performing correctly
153-
//sampling_vars = sampling_vars_orig;
154-
155151
a->set_sampl_vars(sampling_vars);
156152

157153
auto sol_count = a->count();

lib/Sat/CMSGen.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ bool CMSGenC::solve(bool& timeout_expired) // Search without assumptions.
104104
s->set_max_time(max_time);
105105
}
106106

107+
s->set_sampling_vars(&sampling_vars_orig);
108+
107109
CMSGen::lbool ret = s->solve();
108110
if (ret == CMSGen::l_Undef)
109111
{
@@ -119,7 +121,8 @@ uint8_t CMSGenC::modelValue(uint32_t x) const
119121

120122
uint32_t CMSGenC::newProjVar(uint32_t x)
121123
{
122-
return 42;
124+
sampling_vars_orig.push_back(x);
125+
return 1;
123126
}
124127

125128
uint32_t CMSGenC::newVar()

lib/Sat/UniSamp.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,10 +135,10 @@ bool UniSamp::solve(bool& timeout_expired) // Search without assumptions.
135135
std::cout << "c [stp->unigen] UniSamp solving instance with "
136136
<< arjun->nVars() << " variables." << std::endl;
137137

138-
vector<uint32_t> sampling_vars, sampling_vars_orig;
138+
vector<uint32_t> sampling_vars, all_vars;
139139
for (uint32_t i = 0; i < arjun->nVars(); i++)
140-
sampling_vars.push_back(i);
141-
sampling_vars_orig = sampling_vars;
140+
all_vars.push_back(i);
141+
142142
arjun->set_sampl_vars(sampling_vars_orig);
143143

144144
const uint32_t orig_num_vars = arjun->nVars();
@@ -192,8 +192,8 @@ bool UniSamp::solve(bool& timeout_expired) // Search without assumptions.
192192
unigen->set_verb_sampler_cls(0);
193193
unigen->set_kappa(0.1);
194194
unigen->set_multisample(false);
195-
unigen->set_full_sampling_vars(sampling_vars_orig);
196-
unigen->set_empty_sampling_vars(empty_sampl_vars);
195+
unigen->set_full_sampling_vars(all_vars);
196+
// unigen->set_empty_sampling_vars(empty_sampl_vars);
197197

198198
unigen->sample(&sol_count, samples_needed);
199199
unisamp_ran = true;
@@ -217,7 +217,8 @@ uint8_t UniSamp::modelValue(uint32_t x) const
217217

218218
uint32_t UniSamp::newProjVar(uint32_t x)
219219
{
220-
return 42;
220+
sampling_vars_orig.push_back(x);
221+
return 1;
221222
}
222223

223224
uint32_t UniSamp::newVar()

0 commit comments

Comments
 (0)