27 #include <deps/builders/eq_graph_builder.hpp>
28 #include <deps/sbg_graph/deps_graph.hpp>
40 class QSSModelGenerator {
43 ~QSSModelGenerator() =
default;
45 void init(SB::Deps::SetVertex vertex);
47 void postProcess(SB::Deps::SetVertex vertex);
48 void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep);
49 void visitF(SB::Deps::SetVertex vertex, SB::Deps::VariableDep var_dep, SB::Deps::SetVertex gen_vertex);
50 void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::Deps::VariableDep var_dep,
int index_shift = 0);
51 void visitG(SB::Deps::SetVertex v_vertex, SB::Deps::SetVertex g_vertex, SB::PWLMap use_map, SB::Deps::LMapExp use_map_exp,
52 Expression use_exp, SB::PWLMap def_map, SB::Deps::LMapExp def_map_exp, SB::Set intersection);
53 void initG(SB::Deps::SetVertex vertex, SB::Deps::SetEdge edge);
56 void setup(QSSModelConfig config);
57 QSSModelConfig config() {
return _config; }
60 QSSModelDef _qss_model_def;
64 bool _post_process_eval;
65 QSSModelConfig _config;
68 template <
typename GraphBuilder>
76 std::string simpleDef();
78 std::string genericDef();