Skip to content
Commit 6daa0bc7 authored by Christoph Schwering's avatar Christoph Schwering
Browse files

Added Grounder::Split(), which caches split setups.

The whole purpose of Grounder::Split() is the caching. The cache is
part of Grounder because it is depends on Grounder::Ground()'s setup:
when Grounder::Ground() re-grounds, the cache must be emptied to avoid
false lookups.

We do not update the cache when new clauses without new names are
added, as this should have the same cost (in terms of
Setup::AddClause()) as spawning new children later.

All experiments so far are strongly in favour of a cache. Minesweeper
is about twice as fast; test-siblings.lela is >25 times as fast.

An analogous cache for assignments will be added later.
parent 8ca2eb2f
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment