parallel-tree-search-0.4.1/0000755000000000000000000000000011167364127013706 5ustar0000000000000000parallel-tree-search-0.4.1/LICENSE0000644000000000000000000000140311167364127014711 0ustar0000000000000000ALL PUBLIC DOMAIN MATERIAL IS OFFERED AS-IS. NO REPRESENTATIONS OR WARRANTIES OF ANY KIND ARE MADE CONCERNING THE MATERIALS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. IN NO EVENT WILL THE AUTHOR(S), PUBLISHER(S), OR PRESENTER(S) OF ANY PUBLIC DOMAIN MATERIAL BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF THE AUTHOR(S), PUBLISHER(S), OR PRESENTER(S) HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. parallel-tree-search-0.4.1/parallel-tree-search.cabal0000644000000000000000000000152711167364127020673 0ustar0000000000000000Name: parallel-tree-search Version: 0.4.1 Cabal-Version: >= 1.6 Synopsis: Parallel Tree Search Description: This Haskell library provides an implementation of parallel search based on the search tree provided by the package tree-monad. Category: Control, Concurrency License: PublicDomain License-File: LICENSE Author: Fabian Reck, Sebastian Fischer Maintainer: Sebastian Fischer Bug-Reports: mailto:sebf@informatik.uni-kiel.de Homepage: http://github.com/sebfisch/parallel-tree-search Build-Type: Simple Stability: experimental Extra-Source-Files: README Library Build-Depends: base, tree-monad, parallel Exposed-Modules: Control.Parallel.TreeSearch Ghc-Options: -Wall Source-Repository head type: git location: git://github.com/sebfisch/parallel-tree-search.git parallel-tree-search-0.4.1/README0000644000000000000000000000025411167364127014567 0ustar0000000000000000Parallel Tree Search ==================== This Haskell library provides an implementation of parallel search based on the search tree provided by the package tree-monad. parallel-tree-search-0.4.1/Setup.hs0000644000000000000000000000006011167364127015336 0ustar0000000000000000import Distribution.Simple main = defaultMain parallel-tree-search-0.4.1/Control/0000755000000000000000000000000011167364127015326 5ustar0000000000000000parallel-tree-search-0.4.1/Control/Parallel/0000755000000000000000000000000011167364127017062 5ustar0000000000000000parallel-tree-search-0.4.1/Control/Parallel/TreeSearch.hs0000644000000000000000000000146511167364127021451 0ustar0000000000000000-- | -- Module : Control.Parallel.TreeSearch -- Copyright : Fabian Reck, Sebastian Fischer -- License : PublicDomain -- -- Maintainer : Sebastian Fischer (sebf@informatik.uni-kiel.de) -- Stability : experimental -- Portability : portable -- -- This Haskell library provides an implementation of parallel search -- based on the search tree provided by the package tree-monad. -- module Control.Parallel.TreeSearch ( parSearch ) where import Control.Monad.SearchTree import Control.Parallel -- | Enumerate the leaves of a @SearchTree@ using parallel depth-first search. parSearch :: SearchTree a -- ^ tree to search -> [a] -- ^ lazy list of leaves parSearch None = [] parSearch (One x) = [x] parSearch (Choice l r) = rs `par` (parSearch l ++ rs) where rs = parSearch r