ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
act_var.h
Go to the documentation of this file.
1//===--- act_var.h ----------------------------------------------------------===
2//
3// satoko: Satisfiability solver
4//
5// This file is distributed under the BSD 2-Clause License.
6// See LICENSE for details.
7//
8//===------------------------------------------------------------------------===
9#ifndef satoko__act_var_h
10#define satoko__act_var_h
11
12#include "solver.h"
13#include "types.h"
14#include "utils/heap.h"
15#include "utils/sdbl.h"
16
19
22static inline void var_act_rescale(solver_t *s)
23{
24 unsigned i;
25 act_t *activity = vec_act_data(s->activity);
26
27 for (i = 0; i < vec_sdbl_size(s->activity); i++)
28 activity[i] = sdbl_div(activity[i], s->opts.var_act_rescale);
29 s->var_act_inc = sdbl_div(s->var_act_inc, s->opts.var_act_rescale);
30}
31
34static inline void var_act_bump(solver_t *s, unsigned var)
35{
36 act_t *activity = vec_act_data(s->activity);
37
38 activity[var] = sdbl_add(activity[var], s->var_act_inc);
39 if (activity[var] > s->opts.var_act_limit)
40 var_act_rescale(s);
41 if (heap_in_heap(s->var_order, var))
42 heap_decrease(s->var_order, var);
43}
44
47static inline void var_act_decay(solver_t *s)
48{
49 s->var_act_inc = sdbl_mult(s->var_act_inc, double2sdbl(1 /s->opts.var_decay));
50}
51
53#endif /* satoko__act_var_h */
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
unsigned short var
Definition giaNewBdd.h:35
struct solver_t_ solver_t
Definition solver.h:37
act_t var_act_limit
Definition satoko.h:61
double var_decay
Definition satoko.h:58
unsigned var_act_rescale
Definition satoko.h:60
struct satoko_opts opts
Definition solver.h:110
act_t var_act_inc
Definition solver.h:51
vec_act_t * activity
Definition solver.h:55
heap_t * var_order
Definition solver.h:56
#define vec_act_data(vec)
Definition types.h:28
sdbl_t act_t
Definition types.h:23