ABC: A System for Sequential Synthesis and Verification
Loading...
Searching...
No Matches
cadical_score.cpp
Go to the documentation of this file.
1
#include "
global.h
"
2
3
#include "
internal.hpp
"
4
5
ABC_NAMESPACE_IMPL_START
6
7
namespace
CaDiCaL
{
8
9
// This initializes variables on the binary 'scores' heap also with
10
// smallest variable index first (thus picked first) and larger indices at
11
// the end.
12
//
13
void
Internal::init_scores
(
int
old_max_var,
int
new_max_var) {
14
LOG
(
"initializing EVSIDS scores from %d to %d"
, old_max_var + 1,
15
new_max_var);
16
for
(
int
i = old_max_var; i < new_max_var; i++)
17
scores
.push_back (i + 1);
18
}
19
20
// Shuffle the EVSIDS heap.
21
22
void
Internal::shuffle_scores
() {
23
if
(!
opts
.shuffle)
24
return
;
25
if
(!
opts
.shufflescores)
26
return
;
27
CADICAL_assert
(!
level
);
28
stats
.shuffled++;
29
LOG
(
"shuffling scores"
);
30
vector<int>
shuffle;
31
if
(
opts
.shufflerandom) {
32
scores
.erase ();
33
for
(
int
idx =
max_var
; idx; idx--)
34
shuffle.push_back (idx);
35
Random
random
(
opts
.seed);
// global seed
36
random
+=
stats
.shuffled;
// different every time
37
for
(
int
i = 0; i <=
max_var
- 2; i++) {
38
const
int
j =
random
.pick_int (i,
max_var
- 1);
39
swap (shuffle[i], shuffle[j]);
40
}
41
}
else
{
42
while
(!
scores
.empty ()) {
43
int
idx =
scores
.front ();
44
(void)
scores
.pop_front ();
45
shuffle.push_back (idx);
46
}
47
}
48
score_inc
= 0;
49
for
(
const
auto
&idx : shuffle) {
50
stab
[idx] =
score_inc
++;
51
scores
.push_back (idx);
52
}
53
}
54
55
}
// namespace CaDiCaL
56
57
ABC_NAMESPACE_IMPL_END
ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_START
Definition
abc_namespaces.h:54
ABC_NAMESPACE_IMPL_END
#define ABC_NAMESPACE_IMPL_END
Definition
abc_namespaces.h:55
global.h
CADICAL_assert
#define CADICAL_assert(ignore)
Definition
global.h:14
LOG
#define LOG(...)
Definition
cadical_kitten.c:368
CaDiCaL::Random
Definition
random.hpp:14
internal.hpp
CaDiCaL
Definition
arena.hpp:8
CaDiCaL::Internal::max_var
int max_var
Definition
internal.hpp:200
CaDiCaL::Internal::init_scores
void init_scores(int old_max_var, int new_max_var)
Definition
cadical_score.cpp:13
CaDiCaL::Internal::shuffle_scores
void shuffle_scores()
Definition
cadical_score.cpp:22
CaDiCaL::Internal::stats
Stats stats
Definition
internal.hpp:302
CaDiCaL::Internal::level
int level
Definition
internal.hpp:219
CaDiCaL::Internal::opts
Options opts
Definition
internal.hpp:301
CaDiCaL::Internal::stab
vector< double > stab
Definition
internal.hpp:230
CaDiCaL::Internal::scores
ScoreSchedule scores
Definition
internal.hpp:229
CaDiCaL::Internal::score_inc
double score_inc
Definition
internal.hpp:228
vector
Definition
vector.h:32
random
long random()
src
sat
cadical
cadical_score.cpp
Generated by Doxygen 1.13.2 © 2025 EPTansuo. All rights reserved.
鲁ICP备2021046540号