ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
vector.h
Go to the documentation of this file.
1#ifndef _vector_h_INCLUDED
2#define _vector_h_INCLUDED
3
4#include "stack.h"
5#include "utilities.h"
6
7#include <limits.h>
8
9#include "global.h"
11
12#ifdef KISSAT_COMPACT
13#define LD_MAX_VECTORS (sizeof (word) == 8 ? 32u : 28u)
14#else
15#define LD_MAX_VECTORS (sizeof (word) == 8 ? 48u : 28u)
16#endif
17
18#define MAX_VECTORS (((uint64_t) 1) << LD_MAX_VECTORS)
19
20#define INVALID_VECTOR_ELEMENT UINT_MAX
21
22#define MAX_SECTOR MAX_SIZE_T
23
24typedef struct vector vector;
25typedef struct vectors vectors;
26
27struct vectors {
28 unsigneds stack;
29 size_t usable;
30};
31
32struct vector {
33#ifdef KISSAT_COMPACT
34 unsigned offset;
35 unsigned size;
36#else
37 unsigned *begin;
38 unsigned *end;
39#endif
40};
41
42struct kissat;
43
44#ifdef CHECK_VECTORS
45void kissat_check_vectors (struct kissat *);
46#else
47#define kissat_check_vectors(...) \
48 do { \
49 } while (0)
50#endif
51
52unsigned *kissat_enlarge_vector (struct kissat *, vector *);
53void kissat_defrag_vectors (struct kissat *, size_t, vector *);
54void kissat_remove_from_vector (struct kissat *, vector *, unsigned);
55void kissat_resize_vector (struct kissat *, vector *, size_t);
56void kissat_release_vectors (struct kissat *);
57
59
60#endif
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
unsigned offset
Definition vector.h:34
unsigned size
Definition vector.h:35
unsigneds stack
Definition vector.h:28
size_t usable
Definition vector.h:29
void kissat_remove_from_vector(struct kissat *, vector *, unsigned)
Definition vector.c:238
void kissat_resize_vector(struct kissat *, vector *, size_t)
Definition vector.c:261
void kissat_defrag_vectors(struct kissat *, size_t, vector *)
Definition vector.c:161
unsigned * kissat_enlarge_vector(struct kissat *, vector *)
Definition vector.c:45
#define kissat_check_vectors(...)
Definition vector.h:47
void kissat_release_vectors(struct kissat *)
Definition vector.c:284