Kulitta-2.2.1: Library for automated composition and musical learning

Safe HaskellNone
LanguageHaskell98

Kulitta.Search

Documentation

type Constraints = [[(Int, Int)]] Source #

type Index = Int Source #

type Bound = Int Source #

allSolns :: (Eq a, Show a) => QSpace a -> EqRel a -> [a] -> [[a]] Source #

pairProg :: (Eq a, Show a) => QSpace a -> EqRel a -> Predicate (a, a) -> [a] -> [[a]] Source #

choose :: StdGen -> [a] -> (StdGen, a) Source #

type Fallback a = EqClass a -> StdGen -> a -> (StdGen, a) Source #

greedyProg :: (Eq a, Show a) => QSpace a -> EqRel a -> Predicate (a, a) -> Fallback a -> StdGen -> [a] -> [a] Source #

greedyChord :: (Eq a, Show a) => EqClass a -> a -> Predicate (a, a) -> Fallback a -> StdGen -> (StdGen, a) Source #

fallFun :: Show a => Predicate (a, a) -> EqClass a -> StdGen -> a -> (StdGen, a) Source #

greedyProg' :: (Eq a, Show a) => Predicate (a, a) -> Fallback a -> StdGen -> [EqClass a] -> [a] Source #

pairProg' :: (Eq a, Show a) => Predicate (a, a) -> [EqClass a] -> [[a]] Source #

mkCons :: Eq a => [Term b c] -> Predicate [a] Source #

findInds :: [(String, [Term a b])] -> [Term a b] -> [[(Int, Int)]] Source #

expand' :: [(String, Sentence a b)] -> Sentence a b -> Sentence a b Source #

findIndsSub :: String -> Int -> [Term a b] -> [(Int, Int)] Source #

pAdd :: Num b => b -> (b, b) -> (b, b) Source #

findSoln :: (Eq a, Show a) => Constraints -> Predicate [a] -> [[a]] -> (Int, [a]) Source #

findSoln2 :: (NFData a, Eq a, Show a) => Constraints -> Predicate [a] -> [[a]] -> IO (Int, [a]) Source #

findSolnPar :: (NFData a, Eq a, Show a) => Constraints -> Predicate [a] -> [[a]] -> Int -> IO (Int, [a]) Source #

makeSoln :: Int -> [[a]] -> [Int] -> [a] Source #

fetch :: [p] -> Int -> p Source #

applyCons :: [Int] -> [(Int, Int)] -> [Int] Source #

incr :: [(Bool, Int, Int)] -> [Int] Source #

incr2 :: [(Bool, Int, Int)] -> [Int] Source #

greedyLet :: (Eq a, Show a) => Predicate (a, a) -> Fallback a -> Constraints -> [EqClass a] -> StdGen -> [a] Source #