ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
require.h
Go to the documentation of this file.
1#ifndef _require_h_INCLUDED
2#define _require_h_INCLUDED
3
4#include "global.h"
6
7#define kissat_require(COND, ...) \
8 do { \
9 if ((COND)) \
10 break; \
11 kissat_fatal_message_start (); \
12 fprintf (stderr, "calling '%s': ", __func__); \
13 fprintf (stderr, __VA_ARGS__); \
14 fputc ('\n', stderr); \
15 fflush (stderr); \
16 kissat_abort (); \
17 } while (0)
18
19#define kissat_require_initialized(SOLVER) \
20 kissat_require (SOLVER, "uninitialized")
21
22#define kissat_require_valid_external_internal(LIT) \
23 do { \
24 kissat_require ((LIT) != INT_MIN, "invalid literal '%d' (INT_MIN)", \
25 (LIT)); \
26 const int TMP_IDX = ABS (LIT); \
27 kissat_require (TMP_IDX <= EXTERNAL_MAX_VAR, \
28 "invalid literal '%d' (variable larger than %d)", \
29 (LIT), EXTERNAL_MAX_VAR); \
30 KISSAT_assert (VALID_EXTERNAL_LITERAL (LIT)); \
31 } while (0)
32
34
35#endif
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.