Removed some shootout benchmarks from under fibon
authorJohan Tibell <johan.tibell@gmail.com>
Tue, 5 Feb 2013 23:50:23 +0000 (15:50 -0800)
committerJohan Tibell <johan.tibell@gmail.com>
Tue, 5 Feb 2013 23:50:23 +0000 (15:50 -0800)
Newer versions (corresponding to what's currently on the shootout page)
have been added under nofib/shootout in an attempt to make these easier
to run.

17 files changed:
fibon/Shootout/BinaryTrees/BinaryTrees.stdout [deleted file]
fibon/Shootout/BinaryTrees/LICENSE [deleted file]
fibon/Shootout/BinaryTrees/Makefile [deleted file]
fibon/Shootout/BinaryTrees/binarytrees.hs [deleted file]
fibon/Shootout/Makefile
fibon/Shootout/Nbody/LICENSE [deleted file]
fibon/Shootout/Nbody/Makefile [deleted file]
fibon/Shootout/Nbody/Nbody.stdout [deleted file]
fibon/Shootout/Nbody/nbody.hs [deleted file]
fibon/Shootout/Pidigits/LICENSE [deleted file]
fibon/Shootout/Pidigits/Makefile [deleted file]
fibon/Shootout/Pidigits/Pidigits.stdout [deleted file]
fibon/Shootout/Pidigits/pidigits.hs [deleted file]
fibon/Shootout/SpectralNorm/LICENSE [deleted file]
fibon/Shootout/SpectralNorm/Makefile [deleted file]
fibon/Shootout/SpectralNorm/SpectralNorm.stdout [deleted file]
fibon/Shootout/SpectralNorm/spectralnorm.hs [deleted file]

diff --git a/fibon/Shootout/BinaryTrees/BinaryTrees.stdout b/fibon/Shootout/BinaryTrees/BinaryTrees.stdout
deleted file mode 100644 (file)
index 93d172d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-stretch tree of depth 20        check: -1
-1048576         trees of depth 4        check: -1048576
-262144  trees of depth 6        check: -262144
-65536   trees of depth 8        check: -65536
-16384   trees of depth 10       check: -16384
-4096    trees of depth 12       check: -4096
-1024    trees of depth 14       check: -1024
-256     trees of depth 16       check: -256
-64      trees of depth 18       check: -64
-long lived tree of depth 19     check: -1
diff --git a/fibon/Shootout/BinaryTrees/LICENSE b/fibon/Shootout/BinaryTrees/LICENSE
deleted file mode 100644 (file)
index 94056fc..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Copyright Don Stewart 2010
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * Neither the name of Don Stewart nor the names of other
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/fibon/Shootout/BinaryTrees/Makefile b/fibon/Shootout/BinaryTrees/Makefile
deleted file mode 100644 (file)
index 6309472..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-TOP = ../../..
-include $(TOP)/mk/boilerplate.mk
-SRCS = binarytrees.hs
-PROG_ARGS += 19 +RTS -K32M -RTS
-HC_OPTS += -i. -package base
-include $(TOP)/mk/target.mk
diff --git a/fibon/Shootout/BinaryTrees/binarytrees.hs b/fibon/Shootout/BinaryTrees/binarytrees.hs
deleted file mode 100644 (file)
index be58427..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
---
--- The Great Computer Language Shootout
--- http://shootout.alioth.debian.org/
---
--- Contributed by Don Stewart
---
-
-import System.Environment
-
-data Tree = Nil | Node !Int Tree Tree
-
-minN :: Int
-minN = 4
-
-io s n t = putStrLn $ s ++ " of depth "++show n++ "\t check: " ++ show t
-
-main = do
-    n <- fmap (read . head) getArgs
-    let maxN     = max (minN + 2) n
-        stretchN = maxN + 1
-
-    -- stretch memory tree
-    let c = check (make 0 stretchN)
-    io "stretch tree" stretchN c
-
-    -- allocate a long lived tree
-    let long    = make 0 maxN
-
-    -- allocate, walk, and deallocate many bottom-up binary trees
-    let vs = depth minN maxN
-    mapM_ (\((m,d,i)) -> io (show m ++ "\t trees") d i) vs
-
-    -- confirm the the long-lived binary tree still exists
-    io "long lived tree" maxN (check long)
-
-    return ()
-
--- generate many trees
-depth :: Int -> Int -> [(Int,Int,Int)]
-depth d m
-    | d <= m    = (2*n,d,sumT d n 0) : depth (d+2) m
-    | otherwise = []
-  where n = 2 ^ (m - d + minN) :: Int
-
--- allocate and check lots of trees
-sumT :: Int -> Int -> Int -> Int
-sumT  d i t | d `seq` False = undefined -- strictness hint
-sumT  d 0 t = t
-sumT  d i t = sumT d (i-1) (t + a + b)
-  where a = check (make i    d)
-        b = check (make (-i) d)
-
--- traverse the tree, counting up the nodes
-check :: Tree -> Int
-check Nil          = 0
-check (Node i l r) = i + check l - check r
-
--- build a tree
-make :: Int -> Int -> Tree
-make i 0 = Node i Nil Nil
-make i d = Node i (make (i2-1) d2) (make i2 d2)
-  where i2 = 2*i; d2 = d-1
-
index a0fff80..7414f9f 100644 (file)
@@ -2,8 +2,7 @@ TOP = ../..
 include $(TOP)/mk/boilerplate.mk
 
 SSUBDIRS = \
-  BinaryTrees ChameneosRedux Fannkuch Mandelbrot \
-  Nbody Pidigits SpectralNorm
+  ChameneosRedux Fannkuch Mandelbrot \
   
 SUBDIRS = $(filter-out $(NOT_THESE), $(SSUBDIRS))
 
diff --git a/fibon/Shootout/Nbody/LICENSE b/fibon/Shootout/Nbody/LICENSE
deleted file mode 100644 (file)
index 1fb80c3..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Copyright Olof Kraigher, Don Stewart 2010
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * Neither the name of Olof Kraigher, Don Stewart nor the names of other
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/fibon/Shootout/Nbody/Makefile b/fibon/Shootout/Nbody/Makefile
deleted file mode 100644 (file)
index 0bd96f4..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-TOP = ../../..
-include $(TOP)/mk/boilerplate.mk
-SRCS = nbody.hs
-PROG_ARGS += 10000000
-HC_OPTS += -i. -package base
-include $(TOP)/mk/target.mk
diff --git a/fibon/Shootout/Nbody/Nbody.stdout b/fibon/Shootout/Nbody/Nbody.stdout
deleted file mode 100644 (file)
index 8571fce..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
--0.17
--0.17
diff --git a/fibon/Shootout/Nbody/nbody.hs b/fibon/Shootout/Nbody/nbody.hs
deleted file mode 100644 (file)
index 6d76b44..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-{-# OPTIONS_GHC -fexcess-precision #-}
--- 
--- The Computer Language Shootout
--- http://shootout.alioth.debian.org/
---        
--- Contributed by Olof Kraigher, with help from Don Stewart.
---     
--- Compile with:
---
---  -funbox-strict-fields -fglasgow-exts -fbang-patterns -O3
---      -optc-O3 -optc-mfpmath=sse -optc-msse2 -optc-march=pentium4 
--- 
-
-import Foreign
-import Foreign.Storable
-import Foreign.Marshal.Alloc
-import Data.IORef
-import Control.Monad
-import System.Environment
-import Text.Printf
-
-main = do
-    n <- getArgs >>= readIO.head
-    initialize
-    offset_momentum
-    energy 0 planets >>= printf "%.2f\n"
-    replicateM_ n (advance planets)
-    energy 0 planets >>= printf "%.2f\n"
-    return ()
-
-offset_momentum = do
-    m <- foldr (.+.) (Vec 0 0 0)
-             `fmap` (mapM momentum
-                   . take (nbodies - 1)
-                   . iterate next $ next planets)
-
-    setVec (vel planets) $ (-1/solar_mass) *. m
-  where
-    momentum p = p `seq` liftM2 (*.) (mass p) (getVec (vel p))
-
-energy :: Double -> Ptr Double -> IO Double
-energy e p
-    | e `seq` p `seq` False = undefined
-    | p == end = return e
-    | otherwise      = do
-        p1 <- getVec (pos p)
-        v1 <- getVec (vel p)
-        m1 <- mass p
-        e  <- energy2 p1 m1 e p2
-        energy (e + 0.5 * m1 * magnitude2 v1) p2
-    where p2 = next p
-
-energy2 p1 m1 e p
-    | p1 `seq` m1 `seq` e `seq` p `seq` False = undefined
-    | p  == end = return e
-    | otherwise = do
-        p2 <- getVec (pos p)
-        v2 <- getVec (vel p)
-        m2 <- mass p
-        let distance = sqrt . magnitude2 $ p1 .-. p2
-        energy2 p1 m1 (e - m1 * m2 / distance) (next p)
-
-advance :: Ptr Double -> IO ()
-advance p1   | p1 `seq` False = undefined
-advance p1 = when (p1 /= end) $ do
-    pos1 <- getVec $ pos p1
-    m1   <- mass p1
-    let go p2
-            | p2 `seq` False = undefined
-            | p2 /= end = do
-                pos2 <- getVec (pos p2)
-                m2   <- mass p2
-                let vel2       = vel p2
-                    difference = pos1 .-. pos2
-                    distance2  = magnitude2 difference
-                    distance   = sqrt distance2
-                    magnitude  = delta_t / (distance2 * distance)
-                    mass_magn  = magnitude *. difference
-                vel1 -= m2 *. mass_magn
-                vel2 += m1 *. mass_magn
-                go (next p2)
-
-            | otherwise = do
-                v1 <- getVec vel1
-                p1 += delta_t *. v1
-    go p2
-    advance  p2
-  where
-    vel1 = vel p1
-    p2   = next p1
-
-------------------------------------------------------------------------
-
-planets :: Ptr Double
-planets = unsafePerformIO $ mallocBytes (7 * nbodies * 8) -- sizeOf double = 8 
-
-nbodies :: Int
-nbodies = 5
-
-solar_mass, delta_t, days_per_year :: Double
-days_per_year = 365.24
-solar_mass    = 4 * pi ** 2;
-delta_t       = 0.01
-
-initialize = mapM_ newPlanet planets
-  where
-   dp = days_per_year
-   planets =
-    [0, 0, 0,
-     0, 0, 0,
-     1 * solar_mass,
-     4.84143144246472090e+00,        (-1.16032004402742839e+00), (-1.03622044471123109e-01),
-     1.66007664274403694e-03*dp,     7.69901118419740425e-03*dp, (-6.90460016972063023e-05)*dp,
-     9.54791938424326609e-04 * solar_mass,
-
-     8.34336671824457987e+00,        4.12479856412430479e+00,    (-4.03523417114321381e-01),
-     (-2.76742510726862411e-03)*dp,  4.99852801234917238e-03*dp, 2.30417297573763929e-05*dp,
-     2.85885980666130812e-04 * solar_mass,
-
-     1.28943695621391310e+01,        (-1.51111514016986312e+01), (-2.23307578892655734e-01),
-     2.96460137564761618e-03*dp,     2.37847173959480950e-03*dp, (-2.96589568540237556e-05)*dp,
-     4.36624404335156298e-05 * solar_mass,
-
-     1.53796971148509165e+01,        (-2.59193146099879641e+01), 1.79258772950371181e-01,
-     2.68067772490389322e-03*dp,     1.62824170038242295e-03*dp, (-9.51592254519715870e-05)*dp,
-     5.15138902046611451e-05 * solar_mass
-    ]
-
-------------------------------------------------------------------------
--- Support for 3 dimensional mutable vectors
-
-data Vector3 = Vec !Double !Double !Double
-
-cursor :: IORef (Ptr Double)
-cursor = unsafePerformIO $ newIORef planets
-
-end :: Ptr Double
-end  = inc planets (nbodies * 7)
-
-next  :: Ptr Double -> Ptr Double
-next = flip inc 7
-
-inc :: Ptr Double -> Int -> Ptr Double
-inc ptr n = ptr `seq` n `seq` plusPtr ptr (n * 8)
-
-newPlanet :: Double -> IO ()
-newPlanet d = d `seq` do
-    ptr <- readIORef cursor
-    pokeElemOff ptr 0 d
-    writeIORef cursor (inc ptr 1)
-
-pos :: Ptr Double -> Ptr Double
-pos ptr = ptr
-
-vel :: Ptr Double -> Ptr Double
-vel ptr = inc ptr 3
-
-mass :: Ptr Double -> IO Double
-mass = flip peekElemOff 6
-
-------------------------------------------------------------------------
-
-(Vec x y z) .+. (Vec u v w) = Vec (x+u) (y+v) (z+w)
-
-(Vec x y z) .-. (Vec u v w) = Vec (x-u) (y-v) (z-w)
-
-k *. (Vec x y z) = Vec (k*x) (k*y) (k*z) -- allocates
-
-magnitude2 (Vec x y z) = x*x + y*y + z*z
-
-------------------------------------------------------------------------
-
-getVec p = p `seq` liftM3 Vec (peek p) (f 1) (f 2)
-    where f = peekElemOff p
-
-setVec p (Vec x y z)= do
-    poke        p   x
-    pokeElemOff p 1 y
-    pokeElemOff p 2 z
-
-infix 4 +=
-infix 4 -=
-
-v1 += (Vec u v w) = do
-    x <- peek v1;          poke        v1   (x+u)
-    y <- peekElemOff v1 1; pokeElemOff v1 1 (y+v)
-    z <- peekElemOff v1 2; pokeElemOff v1 2 (z+w)
-
-v1 -= (Vec u v w)  = do
-    x <- peek v1;          poke        v1   (x-u)
-    y <- peekElemOff v1 1; pokeElemOff v1 1 (y-v)
-    z <- peekElemOff v1 2; pokeElemOff v1 2 (z-w)
diff --git a/fibon/Shootout/Pidigits/LICENSE b/fibon/Shootout/Pidigits/LICENSE
deleted file mode 100644 (file)
index f3493ea..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Copyright Don Stewart, Einar Karttunen, Branimir Maksimovic and Bertram Felgenhauer 2010
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * Neither the name of Don Stewart, Einar Karttunen, Branimir Maksimovic and Bertram Felgenhauer nor the names of other
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/fibon/Shootout/Pidigits/Makefile b/fibon/Shootout/Pidigits/Makefile
deleted file mode 100644 (file)
index e61b378..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-TOP = ../../..
-include $(TOP)/mk/boilerplate.mk
-SRCS = pidigits.hs
-PROG_ARGS += 10000
-HC_OPTS += -i. -package base
-include $(TOP)/mk/target.mk
diff --git a/fibon/Shootout/Pidigits/Pidigits.stdout b/fibon/Shootout/Pidigits/Pidigits.stdout
deleted file mode 100644 (file)
index 757a2cf..0000000
+++ /dev/null
@@ -1,1000 +0,0 @@
-3141592653     :10
-5897932384     :20
-6264338327     :30
-9502884197     :40
-1693993751     :50
-0582097494     :60
-4592307816     :70
-4062862089     :80
-9862803482     :90
-5342117067     :100
-9821480865     :110
-1328230664     :120
-7093844609     :130
-5505822317     :140
-2535940812     :150
-8481117450     :160
-2841027019     :170
-3852110555     :180
-9644622948     :190
-9549303819     :200
-6442881097     :210
-5665933446     :220
-1284756482     :230
-3378678316     :240
-5271201909     :250
-1456485669     :260
-2346034861     :270
-0454326648     :280
-2133936072     :290
-6024914127     :300
-3724587006     :310
-6063155881     :320
-7488152092     :330
-0962829254     :340
-0917153643     :350
-6789259036     :360
-0011330530     :370
-5488204665     :380
-2138414695     :390
-1941511609     :400
-4330572703     :410
-6575959195     :420
-3092186117     :430
-3819326117     :440
-9310511854     :450
-8074462379     :460
-9627495673     :470
-5188575272     :480
-4891227938     :490
-1830119491     :500
-2983367336     :510
-2440656643     :520
-0860213949     :530
-4639522473     :540
-7190702179     :550
-8609437027     :560
-7053921717     :570
-6293176752     :580
-3846748184     :590
-6766940513     :600
-2000568127     :610
-1452635608     :620
-2778577134     :630
-2757789609     :640
-1736371787     :650
-2146844090     :660
-1224953430     :670
-1465495853     :680
-7105079227     :690
-9689258923     :700
-5420199561     :710
-1212902196     :720
-0864034418     :730
-1598136297     :740
-7477130996     :750
-0518707211     :760
-3499999983     :770
-7297804995     :780
-1059731732     :790
-8160963185     :800
-9502445945     :810
-5346908302     :820
-6425223082     :830
-5334468503     :840
-5261931188     :850
-1710100031     :860
-3783875288     :870
-6587533208     :880
-3814206171     :890
-7766914730     :900
-3598253490     :910
-4287554687     :920
-3115956286     :930
-3882353787     :940
-5937519577     :950
-8185778053     :960
-2171226806     :970
-6130019278     :980
-7661119590     :990
-9216420198     :1000
-9380952572     :1010
-0106548586     :1020
-3278865936     :1030
-1533818279     :1040
-6823030195     :1050
-2035301852     :1060
-9689957736     :1070
-2259941389     :1080
-1249721775     :1090
-2834791315     :1100
-1557485724     :1110
-2454150695     :1120
-9508295331     :1130
-1686172785     :1140
-5889075098     :1150
-3817546374     :1160
-6493931925     :1170
-5060400927     :1180
-7016711390     :1190
-0984882401     :1200
-2858361603     :1210
-5637076601     :1220
-0471018194     :1230
-2955596198     :1240
-9467678374     :1250
-4944825537     :1260
-9774726847     :1270
-1040475346     :1280
-4620804668     :1290
-4259069491     :1300
-2933136770     :1310
-2898915210     :1320
-4752162056     :1330
-9660240580     :1340
-3815019351     :1350
-1253382430     :1360
-0355876402     :1370
-4749647326     :1380
-3914199272     :1390
-6042699227     :1400
-9678235478     :1410
-1636009341     :1420
-7216412199     :1430
-2458631503     :1440
-0286182974     :1450
-5557067498     :1460
-3850549458     :1470
-8586926995     :1480
-6909272107     :1490
-9750930295     :1500
-5321165344     :1510
-9872027559     :1520
-6023648066     :1530
-5499119881     :1540
-8347977535     :1550
-6636980742     :1560
-6542527862     :1570
-5518184175     :1580
-7467289097     :1590
-7772793800     :1600
-0816470600     :1610
-1614524919     :1620
-2173217214     :1630
-7723501414     :1640
-4197356854     :1650
-8161361157     :1660
-3525521334     :1670
-7574184946     :1680
-8438523323     :1690
-9073941433     :1700
-3454776241     :1710
-6862518983     :1720
-5694855620     :1730
-9921922218     :1740
-4272550254     :1750
-2568876717     :1760
-9049460165     :1770
-3466804988     :1780
-6272327917     :1790
-8608578438     :1800
-3827967976     :1810
-6814541009     :1820
-5388378636     :1830
-0950680064     :1840
-2251252051     :1850
-1739298489     :1860
-6084128488     :1870
-6269456042     :1880
-4196528502     :1890
-2210661186     :1900
-3067442786     :1910
-2203919494     :1920
-5047123713     :1930
-7869609563     :1940
-6437191728     :1950
-7467764657     :1960
-5739624138     :1970
-9086583264     :1980
-5995813390     :1990
-4780275900     :2000
-9946576407     :2010
-8951269468     :2020
-3983525957     :2030
-0982582262     :2040
-0522489407     :2050
-7267194782     :2060
-6848260147     :2070
-6990902640     :2080
-1363944374     :2090
-5530506820     :2100
-3496252451     :2110
-7493996514     :2120
-3142980919     :2130
-0659250937     :2140
-2216964615     :2150
-1570985838     :2160
-7410597885     :2170
-9597729754     :2180
-9893016175     :2190
-3928468138     :2200
-2686838689     :2210
-4277415599     :2220
-1855925245     :2230
-9539594310     :2240
-4997252468     :2250
-0845987273     :2260
-6446958486     :2270
-5383673622     :2280
-2626099124     :2290
-6080512438     :2300
-8439045124     :2310
-4136549762     :2320
-7807977156     :2330
-9143599770     :2340
-0129616089     :2350
-4416948685     :2360
-5584840635     :2370
-3422072225     :2380
-8284886481     :2390
-5845602850     :2400
-6016842739     :2410
-4522674676     :2420
-7889525213     :2430
-8522549954     :2440
-6667278239     :2450
-8645659611     :2460
-6354886230     :2470
-5774564980     :2480
-3559363456     :2490
-8174324112     :2500
-5150760694     :2510
-7945109659     :2520
-6094025228     :2530
-8797108931     :2540
-4566913686     :2550
-7228748940     :2560
-5601015033     :2570
-0861792868     :2580
-0920874760     :2590
-9178249385     :2600
-8900971490     :2610
-9675985261     :2620
-3655497818     :2630
-9312978482     :2640
-1682998948     :2650
-7226588048     :2660
-5756401427     :2670
-0477555132     :2680
-3796414515     :2690
-2374623436     :2700
-4542858444     :2710
-7952658678     :2720
-2105114135     :2730
-4735739523     :2740
-1134271661     :2750
-0213596953     :2760
-6231442952     :2770
-4849371871     :2780
-1014576540     :2790
-3590279934     :2800
-4037420073     :2810
-1057853906     :2820
-2198387447     :2830
-8084784896     :2840
-8332144571     :2850
-3868751943     :2860
-5064302184     :2870
-5319104848     :2880
-1005370614     :2890
-6806749192     :2900
-7819119793     :2910
-9952061419     :2920
-6634287544     :2930
-4064374512     :2940
-3718192179     :2950
-9983910159     :2960
-1956181467     :2970
-5142691239     :2980
-7489409071     :2990
-8649423196     :3000
-1567945208     :3010
-0951465502     :3020
-2523160388     :3030
-1930142093     :3040
-7621378559     :3050
-5663893778     :3060
-7083039069     :3070
-7920773467     :3080
-2218256259     :3090
-9661501421     :3100
-5030680384     :3110
-4773454920     :3120
-2605414665     :3130
-9252014974     :3140
-4285073251     :3150
-8666002132     :3160
-4340881907     :3170
-1048633173     :3180
-4649651453     :3190
-9057962685     :3200
-6100550810     :3210
-6658796998     :3220
-1635747363     :3230
-8405257145     :3240
-9102897064     :3250
-1401109712     :3260
-0628043903     :3270
-9759515677     :3280
-1577004203     :3290
-3786993600     :3300
-7230558763     :3310
-1763594218     :3320
-7312514712     :3330
-0532928191     :3340
-8261861258     :3350
-6732157919     :3360
-8414848829     :3370
-1644706095     :3380
-7527069572     :3390
-2091756711     :3400
-6722910981     :3410
-6909152801     :3420
-7350671274     :3430
-8583222871     :3440
-8352093539     :3450
-6572512108     :3460
-3579151369     :3470
-8820914442     :3480
-1006751033     :3490
-4671103141     :3500
-2671113699     :3510
-0865851639     :3520
-8315019701     :3530
-6515116851     :3540
-7143765761     :3550
-8351556508     :3560
-8490998985     :3570
-9982387345     :3580
-5283316355     :3590
-0764791853     :3600
-5893226185     :3610
-4896321329     :3620
-3308985706     :3630
-4204675259     :3640
-0709154814     :3650
-1654985946     :3660
-1637180270     :3670
-9819943099     :3680
-2448895757     :3690
-1282890592     :3700
-3233260972     :3710
-9971208443     :3720
-3573265489     :3730
-3823911932     :3740
-5974636673     :3750
-0583604142     :3760
-8138830320     :3770
-3824903758     :3780
-9852437441     :3790
-7029132765     :3800
-6180937734     :3810
-4403070746     :3820
-9211201913     :3830
-0203303801     :3840
-9762110110     :3850
-0449293215     :3860
-1608424448     :3870
-5963766983     :3880
-8952286847     :3890
-8312355265     :3900
-8213144957     :3910
-6857262433     :3920
-4418930396     :3930
-8642624341     :3940
-0773226978     :3950
-0280731891     :3960
-5441101044     :3970
-6823252716     :3980
-2010526522     :3990
-7211166039     :4000
-6665573092     :4010
-5471105578     :4020
-5376346682     :4030
-0653109896     :4040
-5269186205     :4050
-6476931257     :4060
-0586356620     :4070
-1855810072     :4080
-9360659876     :4090
-4861179104     :4100
-5334885034     :4110
-6113657686     :4120
-7532494416     :4130
-6803962657     :4140
-9787718556     :4150
-0845529654     :4160
-1266540853     :4170
-0614344431     :4180
-8586769751     :4190
-4566140680     :4200
-0700237877     :4210
-6591344017     :4220
-1274947042     :4230
-0562230538     :4240
-9945613140     :4250
-7112700040     :4260
-7854733269     :4270
-9390814546     :4280
-6464588079     :4290
-7270826683     :4300
-0634328587     :4310
-8569830523     :4320
-5808933065     :4330
-7574067954     :4340
-5716377525     :4350
-4202114955     :4360
-7615814002     :4370
-5012622859     :4380
-4130216471     :4390
-5509792592     :4400
-3099079654     :4410
-7376125517     :4420
-6567513575     :4430
-1782966645     :4440
-4779174501     :4450
-1299614890     :4460
-3046399471     :4470
-3296210734     :4480
-0437518957     :4490
-3596145890     :4500
-1938971311     :4510
-1790429782     :4520
-8564750320     :4530
-3198691514     :4540
-0287080859     :4550
-9048010941     :4560
-2147221317     :4570
-9476477726     :4580
-2241425485     :4590
-4540332157     :4600
-1853061422     :4610
-8813758504     :4620
-3063321751     :4630
-8297986622     :4640
-3717215916     :4650
-0771669254     :4660
-7487389866     :4670
-5494945011     :4680
-4654062843     :4690
-3663937900     :4700
-3976926567     :4710
-2146385306     :4720
-7360965712     :4730
-0918076383     :4740
-2716641627     :4750
-4888800786     :4760
-9256029022     :4770
-8472104031     :4780
-7211860820     :4790
-4190004229     :4800
-6617119637     :4810
-7921337575     :4820
-1149595015     :4830
-6604963186     :4840
-2947265473     :4850
-6425230817     :4860
-7036751590     :4870
-6735023507     :4880
-2835405670     :4890
-4038674351     :4900
-3622224771     :4910
-5891504953     :4920
-0984448933     :4930
-3096340878     :4940
-0769325993     :4950
-9780541934     :4960
-1447377441     :4970
-8426312986     :4980
-0809988868     :4990
-7413260472     :5000
-1569516239     :5010
-6586457302     :5020
-1631598193     :5030
-1951673538     :5040
-1297416772     :5050
-9478672422     :5060
-9246543668     :5070
-0098067692     :5080
-8238280689     :5090
-9640048243     :5100
-5403701416     :5110
-3149658979     :5120
-4092432378     :5130
-9690706977     :5140
-9422362508     :5150
-2216889573     :5160
-8379862300     :5170
-1593776471     :5180
-6512289357     :5190
-8601588161     :5200
-7557829735     :5210
-2334460428     :5220
-1512627203     :5230
-7343146531     :5240
-9777741603     :5250
-1990665541     :5260
-8763979293     :5270
-3441952154     :5280
-1341899485     :5290
-4447345673     :5300
-8316249934     :5310
-1913181480     :5320
-9277771038     :5330
-6387734317     :5340
-7207545654     :5350
-5322077709     :5360
-2120190516     :5370
-6096280490     :5380
-9263601975     :5390
-9882816133     :5400
-2316663652     :5410
-8619326686     :5420
-3360627356     :5430
-7630354477     :5440
-6280350450     :5450
-7772355471     :5460
-0585954870     :5470
-2790814356     :5480
-2401451718     :5490
-0624643626     :5500
-7945612753     :5510
-1813407833     :5520
-0336254232     :5530
-7839449753     :5540
-8243720583     :5550
-5311477119     :5560
-9260638133     :5570
-4677687969     :5580
-5970309833     :5590
-9130771098     :5600
-7040859133     :5610
-7464144282     :5620
-2772634659     :5630
-4704745878     :5640
-4778720192     :5650
-7715280731     :5660
-7679077071     :5670
-5721344473     :5680
-0605700733     :5690
-4924369311     :5700
-3835049316     :5710
-3128404251     :5720
-2192565179     :5730
-8069411352     :5740
-8013147013     :5750
-0478164378     :5760
-8518529092     :5770
-8545201165     :5780
-8393419656     :5790
-2134914341     :5800
-5956258658     :5810
-6557055269     :5820
-0496520985     :5830
-8033850722     :5840
-4264829397     :5850
-2858478316     :5860
-3057777560     :5870
-6888764462     :5880
-4824685792     :5890
-6039535277     :5900
-3480304802     :5910
-9005876075     :5920
-8251047470     :5930
-9164396136     :5940
-2676044925     :5950
-6274204208     :5960
-3208566119     :5970
-0625454337     :5980
-2131535958     :5990
-4506877246     :6000
-0290161876     :6010
-6795240616     :6020
-3425225771     :6030
-9542916299     :6040
-1930645537     :6050
-7991403734     :6060
-0432875262     :6070
-8889639958     :6080
-7947572917     :6090
-4642635745     :6100
-5254079091     :6110
-4513571113     :6120
-6941091193     :6130
-9325191076     :6140
-0208252026     :6150
-1879853188     :6160
-7705842972     :6170
-5916778131     :6180
-4969900901     :6190
-9211697173     :6200
-7278476847     :6210
-2686084900     :6220
-3377024242     :6230
-9165130050     :6240
-0516832336     :6250
-4350389517     :6260
-0298939223     :6270
-3451722013     :6280
-8128069650     :6290
-1178440874     :6300
-5196012122     :6310
-8599371623     :6320
-1301711444     :6330
-8464090389     :6340
-0644954440     :6350
-0619869075     :6360
-4851602632     :6370
-7505298349     :6380
-1874078668     :6390
-0881833851     :6400
-0228334508     :6410
-5048608250     :6420
-3930213321     :6430
-9715518430     :6440
-6354550076     :6450
-6828294930     :6460
-4137765527     :6470
-9397517546     :6480
-1395398468     :6490
-3393638304     :6500
-7461199665     :6510
-3858153842     :6520
-0568533862     :6530
-1867252334     :6540
-0283087112     :6550
-3282789212     :6560
-5077126294     :6570
-6322956398     :6580
-9898935821     :6590
-1674562701     :6600
-0218356462     :6610
-2013496715     :6620
-1881909730     :6630
-3811980049     :6640
-7340723961     :6650
-0368540664     :6660
-3193950979     :6670
-0190699639     :6680
-5524530054     :6690
-5058068550     :6700
-1956730229     :6710
-2191393391     :6720
-8568034490     :6730
-3982059551     :6740
-0022635353     :6750
-6192041994     :6760
-7455385938     :6770
-1023439554     :6780
-4959778377     :6790
-9023742161     :6800
-7271117236     :6810
-4343543947     :6820
-8221818528     :6830
-6240851400     :6840
-6660443325     :6850
-8885698670     :6860
-5431547069     :6870
-6574745855     :6880
-0332323342     :6890
-1073015459     :6900
-4051655379     :6910
-0686627333     :6920
-7995851156     :6930
-2578432298     :6940
-8273723198     :6950
-9875714159     :6960
-5781119635     :6970
-8330059408     :6980
-7306812160     :6990
-2876496286     :7000
-7446047746     :7010
-4915995054     :7020
-9737425626     :7030
-9010490377     :7040
-8198683593     :7050
-8146574126     :7060
-8049256487     :7070
-9855614537     :7080
-2347867330     :7090
-3904688383     :7100
-4363465537     :7110
-9498641927     :7120
-0563872931     :7130
-7487233208     :7140
-3760112302     :7150
-9911367938     :7160
-6270894387     :7170
-9936201629     :7180
-5154133714     :7190
-2489283072     :7200
-2012690147     :7210
-5466847653     :7220
-5761647737     :7230
-9467520049     :7240
-0757155527     :7250
-8196536213     :7260
-2392640616     :7270
-0136358155     :7280
-9074220202     :7290
-0318727760     :7300
-5277219005     :7310
-5614842555     :7320
-1879253034     :7330
-3513984425     :7340
-3223415762     :7350
-3361064250     :7360
-6390497500     :7370
-8656271095     :7380
-3591946589     :7390
-7514131034     :7400
-8227693062     :7410
-4743536325     :7420
-6916078154     :7430
-7818115284     :7440
-3667957061     :7450
-1086153315     :7460
-0445212747     :7470
-3924544945     :7480
-4236828860     :7490
-6134084148     :7500
-6377670096     :7510
-1207151249     :7520
-1404302725     :7530
-3860764823     :7540
-6341433462     :7550
-3518975766     :7560
-4521641376     :7570
-7969031495     :7580
-0191085759     :7590
-8442391986     :7600
-2916421939     :7610
-9490723623     :7620
-4646844117     :7630
-3940326591     :7640
-8404437805     :7650
-1333894525     :7660
-7423995082     :7670
-9659122850     :7680
-8555821572     :7690
-5031071257     :7700
-0126683024     :7710
-0292952522     :7720
-0118726767     :7730
-5622041542     :7740
-0516184163     :7750
-4847565169     :7760
-9981161410     :7770
-1002996078     :7780
-3869092916     :7790
-0302884002     :7800
-6910414079     :7810
-2886215078     :7820
-4245167090     :7830
-8700069928     :7840
-2120660418     :7850
-3718065355     :7860
-6725253256     :7870
-7532861291     :7880
-0424877618     :7890
-2582976515     :7900
-7959847035     :7910
-6222629348     :7920
-6003415872     :7930
-2980534989     :7940
-6502262917     :7950
-4878820273     :7960
-4209222245     :7970
-3398562647     :7980
-6691490556     :7990
-2842503912     :8000
-7577102840     :8010
-2799806636     :8020
-5825488926     :8030
-4880254566     :8040
-1017296702     :8050
-6640765590     :8060
-4290994568     :8070
-1506526530     :8080
-5371829412     :8090
-7033693137     :8100
-8517860904     :8110
-0708667114     :8120
-9655834343     :8130
-4769338578     :8140
-1711386455     :8150
-8736781230     :8160
-1458768712     :8170
-6603489139     :8180
-0956200993     :8190
-9361031029     :8200
-1616152881     :8210
-3843790990     :8220
-4231747336     :8230
-3948045759     :8240
-3149314052     :8250
-9763475748     :8260
-1193567091     :8270
-1013775172     :8280
-1008031559     :8290
-0248530906     :8300
-6920376719     :8310
-2203322909     :8320
-4334676851     :8330
-4221447737     :8340
-9393751703     :8350
-4436619910     :8360
-4033751117     :8370
-3547191855     :8380
-0464490263     :8390
-6551281622     :8400
-8824462575     :8410
-9163330391     :8420
-0722538374     :8430
-2182140883     :8440
-5086573917     :8450
-7150968288     :8460
-7478265699     :8470
-5995744906     :8480
-6175834413     :8490
-7522397096     :8500
-8340800535     :8510
-5984917541     :8520
-7381883999     :8530
-4469748676     :8540
-2655165827     :8550
-6584835884     :8560
-5314277568     :8570
-7900290951     :8580
-7028352971     :8590
-6344562129     :8600
-6404352311     :8610
-7600665101     :8620
-2412006597     :8630
-5585127617     :8640
-8583829204     :8650
-1974844236     :8660
-0800719304     :8670
-5761893234     :8680
-9229279650     :8690
-1987518721     :8700
-2726750798     :8710
-1255470958     :8720
-9045563579     :8730
-2122103334     :8740
-6697499235     :8750
-6302549478     :8760
-0249011419     :8770
-5212382815     :8780
-3091140790     :8790
-7386025152     :8800
-2742995818     :8810
-0724716259     :8820
-1668545133     :8830
-3123948049     :8840
-4707911915     :8850
-3267343028     :8860
-2441860414     :8870
-2636395480     :8880
-0044800267     :8890
-0496248201     :8900
-7928964766     :8910
-9758318327     :8920
-1314251702     :8930
-9692348896     :8940
-2766844032     :8950
-3260927524     :8960
-9603579964     :8970
-6925650493     :8980
-6818360900     :8990
-3238092934     :9000
-5958897069     :9010
-5365349406     :9020
-0340216654     :9030
-4375589004     :9040
-5632882250     :9050
-5452556405     :9060
-6448246515     :9070
-1875471196     :9080
-2184439658     :9090
-2533754388     :9100
-5690941130     :9110
-3150952617     :9120
-9378002974     :9130
-1207665147     :9140
-9394259029     :9150
-8969594699     :9160
-5565761218     :9170
-6561967337     :9180
-8623625612     :9190
-5216320862     :9200
-8692221032     :9210
-7488921865     :9220
-4364802296     :9230
-7807057656     :9240
-1514463204     :9250
-6927906821     :9260
-2073883778     :9270
-1423356282     :9280
-3608963208     :9290
-0682224680     :9300
-1224826117     :9310
-7185896381     :9320
-4091839036     :9330
-7367222088     :9340
-8321513755     :9350
-6003727983     :9360
-9400415297     :9370
-0028783076     :9380
-6709444745     :9390
-6013455641     :9400
-7254370906     :9410
-9793961225     :9420
-7142989467     :9430
-1543578468     :9440
-7886144458     :9450
-1231459357     :9460
-1984922528     :9470
-4716050492     :9480
-2124247014     :9490
-1214780573     :9500
-4551050080     :9510
-1908699603     :9520
-3027634787     :9530
-0810817545     :9540
-0119307141     :9550
-2233908663     :9560
-9383395294     :9570
-2578690507     :9580
-6431006383     :9590
-5198343893     :9600
-4159613185     :9610
-4347546495     :9620
-5697810382     :9630
-9309716465     :9640
-1438407007     :9650
-0736041123     :9660
-7359984345     :9670
-2251610507     :9680
-0270562352     :9690
-6601276484     :9700
-8308407611     :9710
-8301305279     :9720
-3205427462     :9730
-8654036036     :9740
-7453286510     :9750
-5706587488     :9760
-2256981579     :9770
-3678976697     :9780
-4220575059     :9790
-6834408697     :9800
-3502014102     :9810
-0672358502     :9820
-0072452256     :9830
-3265134105     :9840
-5924019027     :9850
-4216248439     :9860
-1403599895     :9870
-3539459094     :9880
-4070469120     :9890
-9140938700     :9900
-1264560016     :9910
-2374288021     :9920
-0927645793     :9930
-1065792295     :9940
-5249887275     :9950
-8461012648     :9960
-3699989225     :9970
-6959688159     :9980
-2056001016     :9990
-5525637567     :10000
diff --git a/fibon/Shootout/Pidigits/pidigits.hs b/fibon/Shootout/Pidigits/pidigits.hs
deleted file mode 100644 (file)
index 695647f..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---
--- The Great Computer Language Shootout
--- http://shootout.alioth.debian.org/
--- by Don Stewart, Einar Karttunen, Branimir Maksimovic and Bertram Felgenhauer
---
-
-import System.Environment
-
-data F = F !Integer !Integer !Integer !Integer
-
-main :: IO ()
-main = loop 10 0 . flip take (str (F 1 0 0 1) ns) . read . head =<< getArgs
-
-ns = [ F k (4*k+2) 0 (2*k+1) | k <- [1..] ]
-
-loop :: Int -> Integer -> [Integer] -> IO ()
-loop n s []     = putStrLn $ replicate n ' ' ++ "\t:" ++ show s
-loop 0 s xs     = putStrLn ("\t:"++show s) >> loop 10 s xs
-loop n s (x:xs) = putStr (show x)          >> loop (n-1) (s+1) xs
-
-flr  x           (F q r s t) = (q*x + r) `div` (s*x + t)
-comp1 (F q r s t) (F u v w x) = F (q*u+r*w) (q*v+r*x) (t*w) (t*x)
-comp2 (F q r s t) (F u v w x) = F (q*u) (q*v+r*x) (s*u) (s*v+t*x)
-
-str z (x:xs) | y == flr 4 z = y : str (comp1 (F 10 (-10*y) 0 1) z) (x:xs)
-             | otherwise    =     str (comp2 z x) xs     where y = flr 3 z
diff --git a/fibon/Shootout/SpectralNorm/LICENSE b/fibon/Shootout/SpectralNorm/LICENSE
deleted file mode 100644 (file)
index 94056fc..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-Copyright Don Stewart 2010
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * Neither the name of Don Stewart nor the names of other
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/fibon/Shootout/SpectralNorm/Makefile b/fibon/Shootout/SpectralNorm/Makefile
deleted file mode 100644 (file)
index 1995800..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-TOP = ../../..
-include $(TOP)/mk/boilerplate.mk
-SRCS = spectralnorm.hs
-PROG_ARGS += 3000
-HC_OPTS += -i. -package base -package bytestring
-include $(TOP)/mk/target.mk
diff --git a/fibon/Shootout/SpectralNorm/SpectralNorm.stdout b/fibon/Shootout/SpectralNorm/SpectralNorm.stdout
deleted file mode 100644 (file)
index b0c101e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-1.27
diff --git a/fibon/Shootout/SpectralNorm/spectralnorm.hs b/fibon/Shootout/SpectralNorm/spectralnorm.hs
deleted file mode 100644 (file)
index 5c33b71..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-{-# OPTIONS_GHC -fexcess-precision #-}
---
--- The Computer Language Shootout
--- http://shootout.alioth.debian.org/
---
--- Translation from Clean by Don Stewart
---
--- Should be compiled with:
---      -O -fglasgow-exts -fbang-patterns 
---      -optc-O -optc-march=pentium4 -optc-mfpmath=sse -optc-msse2
---
-
-import System.Environment
-import Foreign.Marshal.Array
-import Foreign
-import Text.Printf
-import Control.Monad
-import Data.ByteString.Internal (inlinePerformIO)
-
-type Reals = Ptr Double
-
-main = do
-    n <- getArgs >>= readIO . head
-
-    u <- mallocArray n :: IO Reals
-    mapM_ (\i -> pokeElemOff u i 1)[0..n-1] 
-    v <- mallocArray n :: IO Reals
-    mapM_ (\i -> pokeElemOff v i 0)[0..n-1] 
-
-    powerMethod 10 n u v
-    printf "%.2f\n" (eigenvalue n u v 0 0 0)
-
-    return ()
-
-------------------------------------------------------------------------
-
-eigenvalue :: Int -> Reals -> Reals -> Int -> Double -> Double -> Double
-eigenvalue n u v i vBv vv
-    | n `seq` u `seq` v `seq` i `seq` vBv `seq` vv `seq` False = undefined
-    | i < n     = eigenvalue n u v (i+1) (vBv + ui * vi) (vv + vi * vi)
-    | otherwise = sqrt $! vBv / vv
-    where
-       ui = inlinePerformIO (peekElemOff u i)
-       vi = inlinePerformIO (peekElemOff v i)
-
-------------------------------------------------------------------------
-
-powerMethod :: Int -> Int -> Reals -> Reals -> IO ()
-powerMethod i n u v | i `seq` n `seq` u `seq` v `seq` False = undefined
-powerMethod i n u v = allocaArray n $ \t ->
-    replicateM_ i $ timesAtAv t n u v >> timesAtAv t n v u
-
--- multiply vector v by matrix A and then by matrix A transposed
-timesAtAv :: Reals -> Int -> Reals -> Reals -> IO ()
-timesAtAv t n u atau | t `seq` n `seq` u `seq` atau `seq` False = undefined
-timesAtAv t n u atau = do
-    timesAv  n u t
-    timesAtv n t atau
-{-# INLINE timesAtAv #-}
-
-timesAv :: Int -> Reals -> Reals -> IO ()
-timesAv n u au | n `seq` u `seq` au `seq` False = undefined
-timesAv n u au = go 0
-  where
-    go :: Int -> IO ()
-    go i = i `seq` when (i < n) $ do
-        pokeElemOff au i (avsum i 0 0)
-        go (i+1)
-
-    avsum :: Int -> Int -> Double -> Double
-    avsum i j acc
-        | i `seq` j `seq` acc `seq` False = undefined
-        | j < n = avsum i (j+1) (acc + ((aij i j) * uj))
-        | otherwise = acc
-        where uj = inlinePerformIO (peekElemOff u j)
-{-# INLINE timesAv #-}
-
-timesAtv :: Int -> Reals -> Reals -> IO ()
-timesAtv n u a | n `seq` u `seq` a `seq` False = undefined
-timesAtv n u a = go 0
-  where
-    go :: Int -> IO ()
-    go i = i `seq` when (i < n) $ do
-        pokeElemOff a i (atvsum i 0 0)
-        go (i+1)
-
-    atvsum :: Int -> Int -> Double -> Double
-    atvsum i j acc
-        | i `seq` j `seq` acc `seq` False = undefined
-        | j < n     = atvsum i (j+1) (acc + ((aij j i) * uj))
-        | otherwise = acc
-        where uj = inlinePerformIO (peekElemOff u j)
-{-# INLINE timesAtv #-}
-
---
--- manually unbox the inner loop:
-aij i j = 1 / fromIntegral ((i+j) * (i+j+1) `div` 2 + i + 1)