29 const std::string &in,
const std::string &out,
30 const std::string &binary_override,
31 const std::vector<std::pair<std::string, std::string>> &extra)
const
51 records_.push_back({
"d4",
"cli",
"d4", {
"compile"}, {
"dimacs-cnf"},
52 "ddnnf-nnf",
"nnf", 100,
true, {},
"-dDNNF {in} -out={out}"});
57 records_.push_back({
"d4v2",
"cli",
"d4v2", {
"compile"},
58 {
"circuit-bcs12",
"dimacs-cnf"},
59 "ddnnf-nnf",
"nnf", 90,
true, {},
"-i {in} --dump-file {out}",
60 "-i {in} --input-type circuit -t pcnf --dump-file {out}"});
61 records_.push_back({
"c2d",
"cli",
"c2d", {
"compile"}, {
"dimacs-cnf"},
62 "ddnnf-nnf",
"nnf", 80,
true, {},
"-in {in} -silent"});
63 records_.push_back({
"minic2d",
"cli",
"minic2d", {
"compile"}, {
"dimacs-cnf"},
64 "ddnnf-nnf",
"nnf", 70,
true, {},
"-c {in}"});
65 records_.push_back({
"dsharp",
"cli",
"dsharp", {
"compile"}, {
"dimacs-cnf"},
66 "ddnnf-nnf",
"nnf", 60,
true, {},
"-q -Fnnf {out} {in}"});
72 records_.push_back({
"panini-obdd",
"cli",
"panini", {
"compile"}, {
"dimacs-cnf"},
73 "panini-dd",
"panini-dd", 52,
true, {},
74 "Panini --lang \"OBDD\" --out {out} --quiet {in}"});
75 records_.push_back({
"panini-obdd-and",
"cli",
"panini", {
"compile"}, {
"dimacs-cnf"},
76 "panini-dd",
"panini-dd", 51,
true, {},
77 "Panini --lang \"OBDD[AND]\" --out {out} --quiet {in}"});
78 records_.push_back({
"panini-decdnnf",
"cli",
"panini", {
"compile"}, {
"dimacs-cnf"},
79 "panini-dd",
"panini-dd", 50,
true, {},
80 "Panini --lang \"Decision-DNNF\" --out {out} --quiet {in}"});
88 records_.push_back({
"sharpsat-td",
"cli",
"sharpsat-td", {
"wmc"}, {
"dimacs-cnf"},
89 "decimal",
"wmc-line", 90,
true, {
"flow_cutter_pace17"},
90 "cd \"$(dirname \"$(command -v flow_cutter_pace17)\")\" && "
91 "{binary} -WE -decot 1 -decow 100 -tmpdir {tmpdir} "
92 "-cs 3500 -prec 20 {in} > {out} 2>&1"});
93 records_.push_back({
"ganak",
"cli",
"ganak", {
"wmc"}, {
"dimacs-cnf"},
94 "decimal",
"wmc-line", 80,
true, {},
95 "--mode 7 {in} > {out} 2>&1"});
96 records_.push_back({
"weightmc",
"cli",
"weightmc", {
"wmc"}, {
"dimacs-cnf"},
97 "decimal",
"weightmc", 70,
true, {},
98 "--startIteration=0 --gaussuntil=400 --verbosity=0 "
99 "--pivotAC={pivotAC} {in} > {out}"});
100 records_.push_back({
"dpmc",
"cli",
"", {
"wmc"}, {
"dimacs-cnf"},
101 "decimal",
"wmc-line", 60,
true, {
"htb",
"dmc"},
102 "htb --cf={in} | dmc --cf={in} > {out} 2>&1"});
106 records_.push_back({
"graph-easy",
"cli",
"graph-easy", {
"render"}, {
"dot"},
107 "ascii",
"ascii", 100,
true, {},
108 "--as=boxart --output={out} {in}"});
125 if (rec.name == name)
136std::vector<const ToolRecord *>
139 std::vector<const ToolRecord *> out;
141 if (rec.enabled && rec.hasOperation(op))
144 std::sort(out.begin(), out.end(),
146 if (a->preference != b->preference)
147 return a->preference > b->preference;
148 return a->name < b->name;
156 if (existing.name == rec.
name) {
167 [&](
const ToolRecord &r) { return r.name == name; });
177 if (rec.name == name) {
178 rec.enabled = enabled;
188 if (rec.name == name) {
189 rec.preference = preference;
std::string expandCommandTemplate(const std::string &tpl, const std::string &binary, const std::string &in, const std::string &out, const std::vector< std::pair< std::string, std::string > > &extra={})
Expand a command template into a runnable shell command line.