packages feed

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)