lib/pluck/src/state/config.zig
daab053ee43316e1809a84551d573ddd1e5bf3d2
1 const pluck = @import("../root.zig");
2
3 const definition_order = pluck.definition_order;
4 const StateVars = pluck.runtime.StateVars;
5 const Bdd = pluck.bdd.Bdd;
6
7 pub const LazyKCConfig = struct {
8 max_depth: ?u32 = null,
9
10 sample_after_max_depth: bool = false,
11
12 use_strict_order: bool = true,
13
14 use_reverse_order: bool = false,
15
16 definition_order: ?*const definition_order.DefinitionOrder = null,
17
18 use_thunk_unions: bool = true,
19
20 disable_validity_tracking: bool = false,
21
22 disable_path_conditions: bool = false,
23
24 time_limit: ?f64 = null,
25
26 ite_limit: ?u64 = null,
27
28 factor_max_branches: usize = 64,
29
30 weight_dd_max_nodes: usize = 0,
31
32 fallback_mode: FallbackMode = .@"error",
33
34 inference_mode: InferenceMode = .exact,
35
36 sample_constraint: ?Bdd = null,
37
38 full_dist: bool = false,
39
40 dual: bool = false,
41
42 vector_size: u32 = 0,
43
44 state_vars: StateVars = StateVars.init(),
45
46 stacktrace: bool = true,
47
48 parallel_wmc: bool = false,
49
50 parallel_wmc_threshold: usize = 16,
51
52 parallel_wmc_threads: ?usize = null,
53 };
54
55 pub const FallbackMode = enum {
56 @"error",
57 lpsmc,
58 };
59
60 pub const InferenceMode = enum {
61 exact,
62 lpsmc,
63 };