From 7ef3c452e3b9878f6423ca64d25631bc7a422695 Mon Sep 17 00:00:00 2001 From: David Roundy Date: Fri, 1 Jun 2007 20:32:40 +0200 Subject: maximize rather than minimize the rating. darcs-hash:20070601183240-72aca-496237c05e03b76ae05495afb22b36ced21d7b60.gz --- Anneal.hs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Anneal.hs') diff --git a/Anneal.hs b/Anneal.hs index 52f7048..e35a90b 100644 --- a/Anneal.hs +++ b/Anneal.hs @@ -1,4 +1,5 @@ -module XMonadContrib.Anneal ( Rated(Rated), the_value, the_rating, anneal ) where +module XMonadContrib.Anneal ( Rated(Rated), the_value, the_rating + , anneal, annealMax ) where import System.Random ( StdGen, Random, mkStdGen, randomR ) import Control.Monad.State ( State, runState, put, get, gets, modify ) @@ -21,6 +22,9 @@ instance Ord a => Ord (Rated a b) where anneal :: a -> (a -> Double) -> (a -> [a]) -> Rated Double a anneal st r sel = runAnneal st r (do_anneal sel) +annealMax :: a -> (a -> Double) -> (a -> [a]) -> Rated Double a +annealMax st r sel = runAnneal st (negate . r) (do_anneal sel) + do_anneal :: (a -> [a]) -> State (Anneal a) (Rated Double a) do_anneal sel = do sequence_ $ replicate 100 da gets best -- cgit v1.2.3