Open Cerebus opened 4 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(...),...), ...), ... )
list(x.satisfy_all())
list(x.to_dnf().satisfy_all())
list(x.to_cnf().satisfy_all())
The times for to_cnf() and to_dnf() are fine, in that this isn't the source of the time difference.
to_cnf()
to_dnf()
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?
I know I'm probably missing something simple and stupid, but here's the stage:
list(x.satisfy_all())
on the un-normalized expression as the baselinelist(x.to_dnf().satisfy_all())
runs ~20x fasterlist(x.to_cnf().satisfy_all())
runs >100x slowerThe times for
to_cnf()
andto_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?