File tree Expand file tree Collapse file tree 3 files changed +17
-7
lines changed
chr-lang/src/CHR/Language/Examples/Term Expand file tree Collapse file tree 3 files changed +17
-7
lines changed Original file line number Diff line number Diff line change @@ -51,6 +51,6 @@ library
51
51
-- fclabels >= 2.0.3,
52
52
chr-data >= 0.1.0.0 ,
53
53
chr-pretty >= 0.1.0.0 ,
54
- logict-state >= 0.1.0.2
54
+ logict-state >= 0.1.0.4
55
55
hs-source-dirs : src
56
56
default-language : Haskell2010
Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ module CHR.Solve.MonoBacktrackPrio
25
25
, CHRGlobState (.. )
26
26
, emptyCHRGlobState
27
27
, chrgstVarToNmMp
28
+ , chrgstStatNrSolveSteps
28
29
29
30
, CHRBackState (.. )
30
31
, emptyCHRBackState
@@ -649,8 +650,8 @@ runCHRMonoBacktrackPrioT
649
650
-> CHRBackState cnstr bprio subst env
650
651
-- -> CHRPrioEvaluatableVal bprio
651
652
-> CHRMonoBacktrackPrioT cnstr guard bprio prio subst env m (SolverResult subst )
652
- -> m [SolverResult subst ]
653
- runCHRMonoBacktrackPrioT gs bs {- bp -} m = observeAllT (gs, bs {- _chrbstBacktrackPrio=bp -} ) m
653
+ -> m ( [SolverResult subst ], ( CHRGlobState cnstr guard bprio prio subst env m , CHRBackState cnstr bprio subst env ))
654
+ runCHRMonoBacktrackPrioT gs bs {- bp -} m = observeStateAllT (gs, bs {- _chrbstBacktrackPrio=bp -} ) m
654
655
655
656
-------------------------------------------------------------------------------------------
656
657
--- Solver: Intermediate structures
@@ -787,13 +788,13 @@ defaultCHRSolveOpts
787
788
-------------------------------------------------------------------------------------------
788
789
789
790
{-# INLINABLE chrSolve #-}
790
- {-# SPECIALIZE chrSolve
791
+ {- # SPECIALIZE chrSolve
791
792
:: ( MonoBacktrackPrio c g bp p s e IO
792
793
, PP s
793
794
) => CHRSolveOpts
794
795
-> e
795
796
-> CHRMonoBacktrackPrioT c g bp p s e IO (SolverResult s)
796
- #-}
797
+ # -}
797
798
-- | (Under dev) solve
798
799
chrSolve
799
800
:: forall c g bp p s e m .
Original file line number Diff line number Diff line change @@ -9,6 +9,8 @@ module CHR.Language.Examples.Term.Run
9
9
import Data.Maybe
10
10
import System.IO
11
11
import Data.Time.Clock.POSIX
12
+ import Data.Time.Clock.System
13
+ import Data.Time.Clock.TAI
12
14
import Control.Monad
13
15
import Control.Monad.IO.Class
14
16
import Control.Monad.State.Class
@@ -89,10 +91,17 @@ runFile runopts f = do
89
91
liftIO $ putStrLn $ " Written visualization as " ++ fileName
90
92
else (return () )
91
93
return r
92
- runCHRMonoBacktrackPrioT (chrgstVarToNmMp ^= Lk. inverse (flip (,)) varToNmMp $ emptyCHRGlobState) (emptyCHRBackState {- _chrbstBacktrackPrio=0 -} ) {- 0 -} mbp
94
+ tBef <- getSystemTime
95
+ (_,(gs,_)) <- runCHRMonoBacktrackPrioT
96
+ (chrgstVarToNmMp ^= Lk. inverse (flip (,)) varToNmMp $ emptyCHRGlobState)
97
+ (emptyCHRBackState {- _chrbstBacktrackPrio=0 -} ) {- 0 -}
98
+ mbp
99
+ tAft <- getSystemTime
100
+ let tDif = systemToTAITime tAft `diffAbsoluteTime` systemToTAITime tBef
101
+ nSteps = gs ^. MBP. chrgstStatNrSolveSteps
93
102
94
103
-- done
95
- msg $ " DONE " ++ f
104
+ msg $ " DONE ( " ++ show tDif ++ " / " ++ show nSteps ++ " = " ++ show (tDif / fromIntegral nSteps) ++ " ) " ++ f
96
105
97
106
where
98
107
msg m = putStrLn $ " ---------------- " ++ m ++ " ----------------"
You can’t perform that action at this time.
0 commit comments