ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
probe.h File Reference
#include <stdbool.h>
#include "global.h"
Include dependency graph for probe.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

bool kissat_probing (struct kissat *)
 
int kissat_probe (struct kissat *)
 
int kissat_probe_initially (struct kissat *)
 

Function Documentation

◆ kissat_probe()

int kissat_probe ( struct kissat * solver)

Definition at line 72 of file probe.c.

72 {
73 KISSAT_assert (!solver->inconsistent);
74 INC (probings);
75 KISSAT_assert (!solver->probing);
76 solver->probing = true;
77 const unsigned max_rounds = GET_OPTION (proberounds);
78 for (unsigned round = 0; round != max_rounds; round++) {
79 unsigned before = solver->active;
80 probe (solver);
81 if (solver->inconsistent)
82 break;
83 if (before == solver->active)
84 break;
85 }
87 UPDATE_CONFLICT_LIMIT (probe, probings, NLOGN, true);
88 solver->last.ticks.probe = solver->statistics_.search_ticks;
89 KISSAT_assert (solver->probing);
90 solver->probing = false;
91 return solver->inconsistent ? 20 : 0;
92}
#define INC(NAME)
ABC_NAMESPACE_IMPL_START void kissat_classify(struct kissat *solver)
Definition classify.c:7
#define UPDATE_CONFLICT_LIMIT(NAME, COUNT, SCALE_COUNT_FUNCTION, SCALE_DELTA)
Definition kimits.h:115
#define NLOGN(COUNT)
Definition kimits.h:109
#define KISSAT_assert(ignore)
Definition global.h:13
#define solver
Definition kitten.c:211
#define GET_OPTION(N)
Definition options.h:295
Here is the call graph for this function:
Here is the caller graph for this function:

◆ kissat_probe_initially()

int kissat_probe_initially ( struct kissat * solver)

Definition at line 94 of file probe.c.

94 {
95 KISSAT_assert (!solver->level);
96 KISSAT_assert (!solver->inconsistent);
97 INC (probings);
98 START (probe);
99 KISSAT_assert (!solver->probing);
100 solver->probing = true;
101 probe_initially (solver);
102 KISSAT_assert (solver->probing);
103 solver->probing = false;
104 STOP (probe);
105 return solver->inconsistent ? 20 : 0;
106}
#define STOP(P)
Definition profile.hpp:158
#define START(P)
Definition profile.hpp:150
Here is the caller graph for this function:

◆ kissat_probing()

bool kissat_probing ( struct kissat * solver)

Definition at line 18 of file probe.c.

18 {
19 if (!solver->enabled.probe)
20 return false;
21 statistics *statistics = &solver->statistics_;
22 const uint64_t conflicts = statistics->conflicts;
23 if (solver->last.conflicts.reduce == conflicts)
24 return false;
25 return solver->limits.probe.conflicts < conflicts;
26}
Here is the caller graph for this function: