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 };