tpdb-2.7.1: test/dp-performance.hs
import TPDB.Data (rules)
import TPDB.Plain.Write
import TPDB.Plain.Read
import TPDB.Pretty
import qualified TPDB.DP.Transform as DT
import qualified TPDB.DP.Graph as DG
import qualified TPDB.DP.Usable as DU
import Data.Either
import Data.Text.Lazy.IO as T
import Control.Monad ( forM, void )
import System.IO (stdout)
import Text.Printf
main = void $ do
s <- T.readFile "test/labelled.trs"
case trs s of
Left err -> error err
Right r -> do
printf "R has %d rules\n" (length $ rules r)
let d = DT.dp r
printf "DP(R) has %d rules\n" (length $ rules d)
let c = rights $ DG.components d
printf "EDG(R) has %d cyclic components with sizes %s\n"
(length c) (show $ map (length . rules) c)
let u = map DU.restrict c
printf "usable sizes %s\n" (show $ map (length . rules) u)