Loading src/Copar/Algorithm/Split.hs +7 −1 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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 Loading Loading
src/Copar/Algorithm/Split.hs +7 −1 Original line number Diff line number Diff line Loading @@ -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) Loading @@ -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 Loading