9 bool satisfied_is_enough,
unsigned start,
10 unsigned size,
unsigned *lits) {
14 unsigned a = lits[start];
17 if (!u || (u > 0 && satisfied_is_enough))
20 unsigned pos = 0, best = a;
23 const unsigned i =
IDX (a);
27 for (
unsigned i = start + 1; i <
size; i++) {
28 const unsigned b = lits[i];
29 const value v = values[b];
31 if (!v || (v > 0 && satisfied_is_enough)) {
38 const unsigned j =
IDX (b);
45 else if (u > 0 && v < 0)
73 LOG (
"new smallest literal %s at %u swapped with %s at %u",
LOGLIT (best),
87 const value *
const values,
90 unsigned size,
unsigned *lits) {
98 move_smallest_literal_to_front (
solver, values,
assigned, (u >= 0), 1,
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
ABC_NAMESPACE_IMPL_START typedef signed char value
#define KISSAT_assert(ignore)
void kissat_sort_literals(kissat *solver, unsigned size, unsigned *lits)