[commit: nofib] master: Remove broken ghc benchmark. (0ba9cc1)
David Terei
davidterei at gmail.com
Tue Jan 17 20:11:56 CET 2012
Repository : ssh://darcs.haskell.org//srv/darcs/nofib
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/0ba9cc19e4668328518d2ae3a5e20fa0b4ef17a8
>---------------------------------------------------------------
commit 0ba9cc19e4668328518d2ae3a5e20fa0b4ef17a8
Author: David Terei <davidterei at gmail.com>
Date: Mon Jan 16 00:04:14 2012 -0800
Remove broken ghc benchmark.
>---------------------------------------------------------------
ghc/Makefile | 7 --
ghc/matrix/Main.hs | 54 ----------------
ghc/matrix/Makefile | 7 --
ghc/matrix/Matrix.hs | 159 ----------------------------------------------
ghc/matrix/matrix.stdout | 1 -
5 files changed, 0 insertions(+), 228 deletions(-)
diff --git a/ghc/Makefile b/ghc/Makefile
deleted file mode 100644
index ad19d7a..0000000
--- a/ghc/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-TOP = ..
-include $(TOP)/mk/boilerplate.mk
-
-SUBDIRS = matrix
-
-include $(TOP)/mk/target.mk
-
diff --git a/ghc/matrix/Main.hs b/ghc/matrix/Main.hs
deleted file mode 100644
index f9ab7b1..0000000
--- a/ghc/matrix/Main.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-module Main where
-
-import ST
-import MutableArray
-import Matrix
-
-eps :: Double
-eps = 1.0E-12
-
-size :: Int
-size = 25
-
-size2 :: Int
-size2 = size * size
-
-main = print (runST (do
- let a = fplMatrix size
- x0 <- createVector (take size2 (repeat 1))
- b <- createVector (take size2 (repeat (0.1)))
- x <- cg a x0 b
- readDoubleArray x 0
- ))
-
-cg :: Matrix -> Vector s -> Vector s -> ST s (Vector s)
-cg a x b = do
- d <- newVector x
- h <- newVector x
- g <- newVector x
- g <- amx g a x
- g <- xmy g b
- delta0 <- innerProd g g
- if delta0 <= eps
- then
- return x
- else do
- d <- negx g d
- cgLoop a x g delta0 d h
-
-cgLoop :: Matrix -> Vector s -> Vector s -> Double -> Vector s -> Vector s ->
- ST s (Vector s)
-cgLoop a x g delta0 d h = do
- h <- _scc_ "amx" amx h a d
- ip_dh <- innerProd d h
- let tau = delta0 / ip_dh
- x1 <- _scc_ "saxpy1" saxpy tau d x
- g <- _scc_ "saxpy2" saxpy tau h g
- delta1 <- innerProd g g
- if delta1 <= eps
- then
- return x
- else do
- let beta = delta1 / delta0
- d <- _scc_ "saxmy" saxmy beta d g
- cgLoop a x1 g delta1 d h
diff --git a/ghc/matrix/Makefile b/ghc/matrix/Makefile
deleted file mode 100644
index b9798ec..0000000
--- a/ghc/matrix/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-TOP = ../..
-include $(TOP)/mk/boilerplate.mk
-
-SRC_HC_OPTS += -fglasgow-exts
-
-include $(TOP)/mk/target.mk
-
diff --git a/ghc/matrix/Matrix.hs b/ghc/matrix/Matrix.hs
deleted file mode 100644
index b055960..0000000
--- a/ghc/matrix/Matrix.hs
+++ /dev/null
@@ -1,159 +0,0 @@
-module Matrix (
- Matrix(..),
- Vector(..),
- fplMatrix,
- createVector,
- newVector,
- amx,
- saxpy,
- saxmy,
- xmy,
- negx,
- innerProd
-) where
-
-import MutableArray
-import ByteArray
-import ST
-
-type Vector s = MutableByteArray s Int
-type Diagonal = ByteArray Int
-type Matrix = (Int, Diagonal, Diagonal, Diagonal)
-
-fplMatrix :: Int -> Matrix
-fplMatrix size = (size, d0, d1, d2)
- where
- n = size * size
- d0 = al n (\i -> 4)
- d1 = al (n - 1) (\i -> if ((i + 1) `mod` size == 0) then 0 else (-1))
- d2 = al (n - size) (\i -> -1)
-
- al n f = runST (do
- a <- newDoubleArray (0 :: Int, n - 1)
- a <- al_ 0 a
- freezeDoubleArray a)
- where
- al_ i a
- | i >= n = return a
- | otherwise = do
- writeDoubleArray a i (f i)
- al_ (i + 1) a
-
-createVector :: [Double] -> ST s (Vector s)
-createVector xs = do
- a <- newDoubleArray (0 :: Int, length xs - 1)
- createVector_ xs 0 a
- where
- createVector_ [] i a = return a
- createVector_ (x:xs) i a = do
- writeDoubleArray a i x
- createVector_ xs (i + 1) a
-
-newVector :: Vector s -> ST s (Vector s)
-newVector v = newDoubleArray (p, q)
- where
- (p, q) = boundsOfMutableByteArray v
-
-saxmy :: Double -> Vector s -> Vector s -> ST s (Vector s)
-saxmy a x y =
- saxmy' 0 n x y
- where
- n = div (sizeofMutableByteArray x) 8
-
- saxmy' :: Int -> Int -> Vector s -> Vector s -> ST s (Vector s)
- saxmy' i n x y
- | i >= n = return x
- | otherwise = do
- xe <- readDoubleArray x i
- ye <- readDoubleArray y i
- writeDoubleArray x i (a * xe - ye)
- saxmy' (i + 1) n x y
-
-saxpy :: Double -> Vector s -> Vector s -> ST s (Vector s)
-saxpy a x y =
- saxpy' 0 n x y
- where
- n = div (sizeofMutableByteArray x) 8
-
- saxpy' :: Int -> Int -> Vector s -> Vector s -> ST s (Vector s)
- saxpy' i n x y
- | i >= n = return y
- | otherwise = do
- xe <- readDoubleArray x i
- ye <- readDoubleArray y i
- writeDoubleArray y i (a * xe + ye)
- saxpy' (i + 1) n x y
-
-xmy :: Vector s -> Vector s -> ST s (Vector s)
-xmy x y =
- xmy' 0 n x y
- where
- n = div (sizeofMutableByteArray x) 8
-
- xmy' :: Int -> Int -> Vector s -> Vector s -> ST s (Vector s)
- xmy' i n x y
- | i >= n = return x
- | otherwise = do
- xe <- readDoubleArray x i
- ye <- readDoubleArray y i
- writeDoubleArray x i (xe - ye)
- xmy' (i + 1) n x y
-
-negx :: Vector s -> Vector s -> ST s (Vector s)
-negx x u =
- negx' 0 n x u
- where
- n = div (sizeofMutableByteArray x) 8
-
- negx' :: Int -> Int -> Vector s -> Vector s -> ST s (Vector s)
- negx' i n x u
- | i >= n = return u
- | otherwise = do
- xe <- readDoubleArray x i
- writeDoubleArray u i (negate xe)
- negx' (i + 1) n x u
-
-innerProd :: Vector s -> Vector s -> ST s Double
-innerProd x y =
- innerProd' 0 0 n x y
- where
- n = div (sizeofMutableByteArray x) 8
-
- innerProd' :: Double -> Int -> Int -> Vector s -> Vector s -> ST s Double
- innerProd' r i n x y
- | i >= n = return r
- | otherwise = do
- xe <- readDoubleArray x i
- ye <- readDoubleArray y i
- innerProd' (r + xe * ye) (i + 1) n x y
-
-amx :: Vector s -> Matrix -> Vector s -> ST s (Vector s)
-amx u (offset, d0, d1, d2) v = do
- u <- mul0 0 n d0 v u
- u <- mul1 0 1 n d1 v u
- u <- mul1 0 offset n d2 v u
- return u
- where
- n = div (sizeofMutableByteArray v) 8
-
--- mul0 :: Int -> Int -> Diagonal -> Vector s -> Vector s -> ST s (Vector s)
- mul0 i (n :: Int) d0 v u
- | (i :: Int) >= n = return u
- | otherwise = do
- ve <- readDoubleArray v i
- let de = indexDoubleArray d0 i
- writeDoubleArray u i (de * ve)
- mul0 (i + 1) n d0 v u
-
--- mul1 :: Int -> Int -> Int -> Diagonal -> Vector s -> Vector s -> ST s (Vector s)
- mul1 i1 i2 (n :: Int) d v u
- | (i2 :: Int) >= n = return u
- | otherwise = do
- let de = indexDoubleArray d i1
- e1 <- readDoubleArray u i1
- e2 <- readDoubleArray u i2
- ve1 <- readDoubleArray v i1
- ve2 <- readDoubleArray v i2
- writeDoubleArray u i1 (e1 + de * ve2)
- writeDoubleArray u i2 (e2 + de * ve1)
- mul1 (i1 + 1) (i2 + 1) n d v u
diff --git a/ghc/matrix/matrix.stdout b/ghc/matrix/matrix.stdout
deleted file mode 100644
index 02c602f..0000000
--- a/ghc/matrix/matrix.stdout
+++ /dev/null
@@ -1 +0,0 @@
-0.18918007884682553
More information about the Cvs-ghc
mailing list