Documentation
¶
Overview ¶
Package dl allows to solve any exact cover problem via dancing links.
The implementation is spread across internal packages:
x provides basic constituents (Names, Items, Optas, Dict ...). m implements M, the matrix representing a named problem built from a given list of lists of symbols. d provides D, a dancer dancing its graceful dance -pretty fast- on the links of the given M which implements Searcher. This is the core of the algorithm - the heartbeat! s provides a Searcher who invokes a suitable D, manages its heartbeat, operation and output, given a way to build some M. Many options permit finetuning on the fly: plug-in functions as needed.
Index ¶
- func CountDeadEnd(perLevel bool) do.Option
- func CountGrooves(perLevel bool) do.Option
- func CountNiveaus(perLevel bool) do.Option
- func CountUpDates(perLevel bool) do.Option
- func CountUpdates(perCells bool) do.Option
- func LogProgress(everyNmillion int64) do.Option
- func LogSize() do.Option
- func LogTime() do.Option
- func OnFail(fs ...func(*d.D)) do.Option
- func OnGoal(fs ...func(*d.D)) do.Option
- func OnLeaf(fs ...func(*d.D)) do.Option
- func OnSkip(fs ...func(*d.D) bool) do.Option
- func VerboseD(v bool) do.Option
- func VerboseM(v bool) do.Option
- func VerboseX(v bool) do.Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CountUpdates ¶
CountUpdates returns a function which sets D.Drum.UseMap to perCell and returns it's undo do.Opt.
func LogProgress ¶
LogProgress sends a progress line to the current logger upon everyNmillion (minimum = 10) updates which shows the completition (in permille) as well as the number of Grooves, DeadEnd and millions-of-Updates.
func LogTime ¶
LogTime logs a finished-line upon Done with the time elapsed since On.Init.
Note: runtime.GC is forced before the timer starts.
Types ¶
This section is empty.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.