acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
logic.h
1#pragma once
2
3
4#define CONDITIONAL(p,q) \
5(!(p) || q)
6
7inline bool _xor(bool b1, bool b2)
8{
9 return (!b1 && b2) || (b1 && !b2);
10}
11
12inline bool is_different(i32_boolean b1, i32_boolean b2)
13{
14 return _xor(b1, b2);
15}
16
17
18inline bool default_equivalence_sink(bool b)
19{
20
21 return !!b;
22
23}
24
25
26inline bool is_lesser(bool b1, bool b2)
27{
28 return !b1 && b2;
29}
30
31inline bool is_lesser_or_equal(bool b1, bool b2)
32{
33 return !(b1 && b2);
34}
35
36inline bool is_greater_or_equal(bool b1, bool b2)
37{
38 return !b1 || b2;
39}
40
41inline bool is_greater(bool b1, bool b2)
42{
43 return b1 && !b2;
44}
45
46
47inline bool conditional(bool p, bool q)
48{
49 return is_greater_or_equal(p, q);
50}
51
52#define if_then(p, q) ((!(p))||((q)))
53
54#define safe_int_bool(b) ((b) ? 1 : 0)
Definition boolean.h:7