diff --git a/src/Copar/Algorithm/Split.hs b/src/Copar/Algorithm/Split.hs index 8ac4e47ef4ecc1e120488ebd258e5f12efad91ad..ee9df034ec2ed3248f6728752bbae80d334e1370 100644 --- a/src/Copar/Algorithm/Split.hs +++ b/src/Copar/Algorithm/Split.hs @@ -24,7 +24,7 @@ import Control.Monad.ST import Control.Monad.ST.Unsafe (unsafeSTToIO) import Data.Maybe (maybeToList) import Data.STRef -import System.IO.Unsafe (unsafeDupablePerformIO) +import System.IO.Unsafe (unsafeDupablePerformIO, unsafePerformIO) import Data.Ord (comparing) import Control.Monad.Extra (unlessM, whenM) @@ -45,11 +45,17 @@ import Copar.RefinementInterface (RefinementInterface, F3) import qualified Copar.RefinementInterface as RI import Copar.Algorithm.Types +import Debug.Trace +import System.CPUTime + type SplitM s f = ReaderT (AlgoState s f, BlockQueue s) (ST s) split :: RefinementInterface f => Block -> SplitM s f () split blockS = do (as, _) <- ask + let !time = unsafePerformIO getCPUTime + size <- lift (Partition.numBlocks (partition as)) + traceM $ show time <> " " <> show size touchedBlocks <- collectTouchedBlocks blockS forM_ touchedBlocks $ \(b, v0) -> do