packages feed

tsne 1.1.0 → 1.2.0

raw patch · 2 files changed

+63/−1 lines, 2 filesdep +timedep ~basenew-component:exe:haskell_tsne_timing

Dependencies added: time

Dependency ranges changed: base

Files

+ timing/Main.hs view
@@ -0,0 +1,51 @@+module Main where++import System.Environment(getArgs)+import System.Exit+import Control.Monad(when)+import Data.Default(def)+import Data.Time+import Data.Algorithm.TSNE++++main :: IO ()+main = do+    putStrLn "Haskell tSNE Timing"++    args <- getArgs+    let argc = length args+    when (argc < 1 || argc > 2) $ do+        putStrLn "Usage haskell_tsne_timing {input file name} [{num input values}]"+        exitFailure++    let inputFileName = head args+    inputData <- readDataFile inputFileName++    let n = length inputData+    putStrLn $ "total input: " ++ show n++    let n' = if (argc < 2) then n else (read (args !! 1)) ++    putStrLn $ "using: " ++ show n'++    t0 <- getCurrentTime+    forTsne3D (outputResult t0) def $ take n' inputData+    +readDataFile :: FilePath -> IO [[Double]]+readDataFile f = do+    d <- readFile f+    return $ map read (lines d)++outputResult :: UTCTime -> TSNEOutput3D -> IO ()+outputResult t0 s = do+    let i = tsneIteration3D s++    when (i > 0 && (i == 1 || i `mod` 100 == 0)) $ do +        putStrLn $ "iteration: " ++ show i+        t <- getCurrentTime+        let dt = diffUTCTime t t0+            ms = round $ 1000.0 * realToFrac dt / realToFrac i+        putStrLn $ "  elapsed time: " ++ show dt+        putStrLn $ "  average iteration time: " ++ show ms ++ "ms"+
tsne.cabal view
@@ -1,5 +1,5 @@ name:                tsne-version:             1.1.0+version:             1.2.0 synopsis:            t-SNE description:         Pure Haskell implementation of the t-SNE dimension reduction algorithm. homepage:            https://bitbucket.org/robagar/haskell-tsne@@ -49,6 +49,17 @@   build-depends:       base,                        data-default,                        pipes,+                       tsne+  ghc-options:         -threaded+  default-language:    Haskell2010++executable haskell_tsne_timing+  hs-source-dirs:      timing+  main-is:             Main.hs+  build-depends:       base,+                       data-default,+                       pipes,+                       time,                        tsne   ghc-options:         -threaded   default-language:    Haskell2010