cjdrake / pyeda

Python EDA
BSD 2-Clause "Simplified" License
301 stars 55 forks source link

Help: satisfy_all on CNF significantly slower than DNF #161

Open Cerebus opened 3 years ago

Cerebus commented 3 years ago

I know I'm probably missing something simple and stupid, but here's the stage:

Or(
  And(
    Or(
      And(var, var, ...),
      And(var, var, ...),
      ...
    ),
    Or(And(...),...),
    ...
  ),
  And(Or(And(...),...), ...),
  ...
)

The times for to_cnf() and to_dnf() are fine, in that this isn't the source of the time difference.

The CNF expression should be foisted off on PicoSAT, and since that's in C I expected that to be a lot faster. What am I missing?