ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
arena.h
Go to the documentation of this file.
1#ifndef _arena_h_INCLUDED
2#define _arena_h_INCLUDED
3
4#include "reference.h"
5#include "stack.h"
6#include "utilities.h"
7
8#include "global.h"
10
11#ifdef KISSAT_COMPACT
12typedef word ward;
13#else
14typedef w2rd ward;
15#endif
16
17#define LD_MAX_ARENA_32 (29 - (unsigned) sizeof (ward) / 4)
18
19#define LD_MAX_ARENA ((sizeof (word) == 4) ? LD_MAX_ARENA_32 : LD_MAX_REF)
20
21#define MAX_ARENA ((size_t) 1 << LD_MAX_ARENA)
22
23// clang-format off
24
25typedef STACK (ward) arena;
26
27// clang-format on
28
29struct clause;
30struct kissat;
31
33void kissat_shrink_arena (struct kissat *);
34
35#if !defined(KISSAT_NDEBUG) || defined(LOGGING)
36
37bool kissat_clause_in_arena (const struct kissat *, const struct clause *);
38
39#endif
40
41static inline word kissat_align_ward (word w) {
42#ifdef KISSAT_COMPACT
43 return kissat_align_word (w);
44#else
45 return kissat_align_w2rd (w);
46#endif
47}
48
50
51#endif
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
ABC_NAMESPACE_HEADER_START typedef word ward
Definition arena.h:12
void kissat_shrink_arena(struct kissat *)
Definition arena.c:68
reference kissat_allocate_clause(struct kissat *, size_t size)
Definition arena.c:27
#define STACK(TYPE)
Definition stack.h:10
unsigned __int64 word
DECLARATIONS ///.
Definition kitPerm.c:36
ABC_NAMESPACE_HEADER_START typedef unsigned reference
Definition reference.h:9
unsigned size
Definition internal.h:107
ABC_NAMESPACE_HEADER_START typedef uintptr_t w2rd[2]
Definition utilities.h:38