[project @ 2000-08-17 11:36:47 by rrt]
authorrrt <unknown>
Thu, 17 Aug 2000 11:36:47 +0000 (11:36 +0000)
committerrrt <unknown>
Thu, 17 Aug 2000 11:36:47 +0000 (11:36 +0000)
This test used a library module that no longer exists (Printf).

ghc/tests/programs/waugh_neural/BpGen.lhs [deleted file]
ghc/tests/programs/waugh_neural/MAIL [deleted file]
ghc/tests/programs/waugh_neural/Main.lhs [deleted file]
ghc/tests/programs/waugh_neural/Makefile [deleted file]
ghc/tests/programs/waugh_neural/ReadLists.lhs [deleted file]
ghc/tests/programs/waugh_neural/waugh_neural.stdout [deleted file]
ghc/tests/programs/waugh_neural/xor [deleted file]

diff --git a/ghc/tests/programs/waugh_neural/BpGen.lhs b/ghc/tests/programs/waugh_neural/BpGen.lhs
deleted file mode 100644 (file)
index edba27a..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-BpGen.hs
-Written by Sam Waugh
-Date started : 9th November 1992 
-
-This module implements backprop using pattern presentation style, 
-allowing for a general number of layers.  No sigmoid on last layer.
-+ 0.1 to sigmoid derivative.  It does not implement momentum.
-
-Need to use modules for matrix and vector operations.
-
-> module BpGen {-partain:(Dimensions(..),
->              Layer(..),  Layers(..),
->              Eg(..),     Egs(..),
->              Weight(..), Weights(..),
->              maxplace, classeg, calcerror, selectegs,
->              trainweights, randweights)-} where
-
-> import {-fool mkdependHS-}
->       Random
-> import List(transpose)
-> infixl 7 $$
-
-> randomInts :: a -> Int -> [Int]
-> randomInts _ l = randoms (mkStdGen l)
-> randomDoubles :: a -> Int -> [Double]
-> randomDoubles _ l = randoms (mkStdGen l)
-
--------------------------------------------------------------------------------
-|                              Data Types                                    |
--------------------------------------------------------------------------------
-
-> type Dimensions = [Int]        -- for network topology
-> type Layer     = [Double]      -- vector for layers (incl. input and output)
-> type Layers    = [Layer]
-> type Weight    = [[Double]]    -- connections between layers
-> type Weights   = [Weight]
-> type Eg        = (Layer,Layer) -- attributes and classes
-> type Egs       = [Eg]
-
-
--------------------------------------------------------------------------------
-|                              Utility functions                             |
--------------------------------------------------------------------------------
-
-Maxplace finds the position of the maximum element in a list.
-sublist subtracts two vectors, $$ performs across vector multiplication
-weivecmult multiplies a matrix and a vector
-classeg takes the weights of a network and an input vector, and produces
-a list of the Layers of the network after classification
-calcerror calculates the root mean squared error of the data set
-Also implemented sqr and sig (Sigmoid function).
-
-> maxplace :: (Ord a) => [a] -> Int
-> maxplace xs = length (takeWhile (/=(maximum xs)) xs)
-
-> sqr :: (Num a) => a -> a
-> sqr x = x * x
-
-> sig :: (Floating a) => a -> a
-> sig x = 1.0 / (1.0 + exp (negate x))
-
-> sublist, ($$) :: (Num a) => [a] -> [a] -> [a]
-> sublist = zipWith (-)
-> ($$)    = zipWith (*)
-
-> weivecmult :: Weight -> Layer -> Layer
-> weivecmult w v = [sum (wi $$ v) | wi <- w]
-
-
-> classeg :: Weights -> Layer -> Layers
-> classeg [] y = [y]
-> classeg (w:ws) l
->  = let l' = if null ws then weivecmult w templ
->                       else map sig (weivecmult w templ)
->       templ = if null ws then l
->                          else 1.0 : l
->    in templ : (classeg ws l')
-
-
-
-> calcerror :: Weights -> Egs -> Double
-> calcerror ws egs = sqrt (calcerror1 ws egs)
-
-> calcerror1 :: Weights -> Egs -> Double
-> calcerror1 _ []  = 0.0
-> calcerror1 ws ((x,t):egs)
->    = (sum.(map sqr).(sublist t).last) (classeg ws x)
->    + calcerror1 ws egs
-
-
--------------------------------------------------------------------------------
-|                      Network Training Functions                            |
--------------------------------------------------------------------------------
-
-selectegs produces a list of random numbers corresponding to the examples
-to be selected during training.  (It takes the range of the examples)
-
-> selectegs :: Int -> [Int]
-> selectegs n = map (`rem` n) (randomInts n n)
-
-
-trainweights calls trainepoch to iteratively train the network.  It
-also checks the error at the end of each call to see if it has fallen to
-a reasonable level.
-
-> trainweights :: Egs -> Weights -> Int -> Double -> Double
->              -> [Int] -> (Weights, [Double])
-> trainweights _   ws 0       _   _   _  = (ws, [])
-> --should be:trainweights egs ws (eps+1) err eta rs
-> trainweights egs ws eps err eta rs
->    | eps < 0 = error "BpGen.trainweights"
->    | otherwise
->    = let (ws',rs')   = trainepoch egs ws (length egs) eta rs
->         newerr       = calcerror ws' egs
->         (ws'', errs) = trainweights egs ws' (eps-1) err eta rs'
->      in if newerr < err then (ws',  [newerr])
->                        else (ws'', newerr:errs)
-
-
-trainepoch iteratively calls classeg and backprop to train the network,
-as well as selecting an example.
-
-> trainepoch :: Egs -> Weights -> Int -> Double -> [Int] -> (Weights, [Int])
-> trainepoch _   ws 0        _   rs     = (ws,rs)
-> --should be: trainepoch egs ws (egno+1) eta (r:rs)
-> trainepoch egs ws egno eta (r:rs)
->    | egno < 0 = error "BpGen.trainepoch"
->    | otherwise
->    = let (x,t) = egs !! r
->         ws'   = backprop eta (classeg ws x) ws t
->      in trainepoch egs ws' (egno-1) eta rs
-
-
-backprop causes weight changes after calculating the change
-
-> backprop :: Double -> Layers -> Weights -> Layer -> Weights
-> backprop eta (o:os) (w:ws) t
->  = changeweights eta (o:os) (calcchange os ws t) (w:ws)
-
-
-calcchange calculates the changes to the weights
-
-> calcchange :: Layers -> Weights -> Layer -> Layers
-> calcchange [o]    []     t = [sublist t o]
-> calcchange (o:os) (w:ws) t
->    = (sigop o (weivecmult (transpose w) (head ds))) : ds
->        where ds = calcchange os ws t
-
-
-sigop performs the calculations involving the derivative of the sigmoid.
-This uses a constant to eliminate flat spots [Fahlman, 1988]
-
-> sigop :: Layer -> Layer -> Layer
-> sigop out change
->    = let sig' x = x * (1.0 - x) + 0.1
->      in (map sig' out) $$ change
-
-
-changeweights makes the actual changes to weights
-
-> changeweights :: Double -> Layers -> Layers -> Weights -> Weights
-> changeweights eta os ds ws
->    = [[[wji + eta * dj * oi | (oi,wji) <- zip o wj]
->                            | (dj,wj)  <- zip d w]
->                            | (w,d,o)  <- zip3 ws ds os]
-
-
--------------------------------------------------------------------------------
-|                              Weight Manipulation                           |
--------------------------------------------------------------------------------
-
-randweights generates random weights in the range -1.0 to +1.0
-
-> randweights :: Dimensions -> Weights
-> randweights dimensions
->    = genweights dimensions (map (\x -> 2.0 * x - 1.0) (randomDoubles 1 1))
-
-
-Generates weights, taking the values from the list of Doubles.
-The weight sizes are taken from the list of dimensions.
-
-> genweights :: Dimensions -> [Double] -> Weights
-> genweights [x] _ = []
-> genweights (x:y:dimensions) rs
->    = let (w, rs') = if null dimensions then multSplitAt x    y rs
->                                       else multSplitAt (x+1) y rs
->      in w : (genweights (y:dimensions) rs')
-
-
-> multSplitAt :: Int -> Int -> [a] -> ([[a]],[a])
-> multSplitAt inner 0 xs = ([], xs)
-> --should be:multSplitAt inner (outer + 1) xs
-> multSplitAt inner outer xs
->   | outer < 0 = error "BpGen.multSplitAt"
->   | otherwise
->     = let (l,  xs')  = splitAt inner xs
->          (ls, xs'') = multSplitAt inner (outer-1) xs'
->       in (l:ls, xs'')
diff --git a/ghc/tests/programs/waugh_neural/MAIL b/ghc/tests/programs/waugh_neural/MAIL
deleted file mode 100644 (file)
index 9f0fc17..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From: waugh@probitas.cs.utas.edu.au (Sam Waugh)
-Message-Id: <9410100613.AA68794@probitas.cs.utas.edu.au>
-Subject: "Bug" in 0.22 -- order of magnitude slower than hbc
-To: glasgow-haskell-bugs@dcs.gla.ac.uk
-Date: Mon, 10 Oct 1994 17:13:41 +1000 (EETDT)
-
-Hi.
-
-I've come up with what you might consider to be a bug with ghc-0.22 (unless
-I've done something obviously wrong).  I wrote some code to perform a simple
-backpropagation neural network simulator (just to see how it would go), and
-I have just recompiled it using hbc version 0.999.4.  The ghc executable was
-much slower -- even when "optimised".
-
-I've included at the bottom of this message a uuencoded gzipped tar file
-(took a while to make) which includes the following documents:
-
-       *.lhs           -- actual code
-       makefile        -- makefile for ghc (hbc was compiled by producing
-                               object files and linking them together.  The
-                               optimised hbc code used -O.  The optimised
-                               ghc code was generated with the extra options
-                               in the makefile).
-       temp            -- machine and gcc compiler details.
-       compile         -- standard ghc compilation with -v
-       out.0.22        -- output from all trials
-       err.*           -- the timings of the different trials (ignore the
-                               .2 on the .999.4.2 files -- it was a second
-                               try).
-
-Hopefully that is all the files I've included and all the files you need.
-Let me know if you have any problems.
-
-On a final note -- when compiling using all the optimisations for ghc there
-were an awful lot of warnings.  Is there anyway you can get rid of these
-(like by fixing the problems)?  It might be obscuring something important.
-
-Thanks for your time.
-
-Sam.
--- 
-Sam Waugh                              Phone: +61 02 202962
-Department of Computer Science         Fax:   +61 02 202913
-University of Tasmania                 Email: waugh@cs.utas.edu.au
-GPO Box 252C, Hobart Tasmania 7001, Australia
-
-[snip snip]
diff --git a/ghc/tests/programs/waugh_neural/Main.lhs b/ghc/tests/programs/waugh_neural/Main.lhs
deleted file mode 100644 (file)
index 7776183..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-Main.hs for backprop simulation
-Written by Sam Waugh
-Date started: 10th November 1992.
-
-This main module initialises, runs and gets results from the 
-backpropagation functions and values.
-
-> import BpGen
-> import ReadLists (readWhiteList)
-> import Numeric(showFFloat)
-
--------------------------------------------------------------------------------
-|                              Constant Values                               |
--------------------------------------------------------------------------------
-The following constants set the training problem and parameters:
-  name         - the name of the file
-  dimensions   - the layered network topology
-  eta          - the learning rate
-  accepterr    - the level of error acceptable to stop training
-  epochs       - the maximum number of epochs in training
-
-> name         :: String
-> name         = "xor"
-> dimensions   :: Dimensions
-> dimensions   = [2,2,1]
-> eta,accepterr        :: Double
-> eta          = 1.0
-> accepterr    = 0.001
-> epochs       :: Int
-> epochs       = 10000
-
-
--------------------------------------------------------------------------------
-|                      IO and Main Program                                   |
--------------------------------------------------------------------------------
-
-> main = do
->   s <- readFile name
->   putStr (program s "")
-
-> program :: String -> ShowS
-> program s
->   = let egs      = readegs s
->        ws        = randweights dimensions
->        rs        = selectegs (length egs)
->        (ws',res) = trainweights egs ws epochs accepterr eta rs
->     in
->     showString "Examples:\n"
->     . showegs egs
->     . showString "Classification:\n"
->     . showresults egs ws
->     . showString "Training Error:\n"
->     . showerr res
->     . showString "Trained Classification:\n"
->     . showresults egs ws'
-
-> {- ORIG:
-> program :: String -> String
-> program s
->   = _scc_ "program" (
->     let egs      = _scc_ "readegs" readegs s
->        ws        = _scc_ "randweights" randweights dimensions
->        rs        = _scc_ "selectegs" selectegs (length egs)
->        (ws',res) = _scc_ "trainweights" trainweights egs ws epochs accepterr eta rs
->     in "Examples:\n"
->     ++ _scc_ "showegs" showegs egs
->     ++ "Classification:\n"
->     ++ _scc_ "showresults" showresults egs ws
->     ++ "Training Error:\n"
->     ++ _scc_ "showerr" showerr res
->     ++ "Trained Classification:\n"
->     ++ _scc_ "showresults2" showresults egs ws'
->     )
-> -}
-
--------------------------------------------------------------------------------
-|                              Show Functions                                |
--------------------------------------------------------------------------------
-
-> showdouble :: Double -> ShowS
-> showdouble = showFFloat (Just 4)
-
-> showdoubles :: [Double] -> ShowS
-> showdoubles []     = showString ""
-> showdoubles (v:vs) = showdouble v . showdoubles vs
-
-> showegs :: Egs -> ShowS
-> showegs [] = showString "\n"
-> showegs ((x,t):egs)
->      = showdoubles x . showString " " . showdoubles t . showString "\n" . showegs egs
-
-> showresults :: Egs -> Weights -> ShowS
-> showresults [] _ = showString "\n"
-> showresults ((x,t):egs) ws
->   = let y = last (classeg ws x)
->        p = maxplace y
->        c = maxplace t
->     in shows p . showString "  " . showdouble (y!!p) . showString "    " .
->        shows c . showString "  " . showdouble (t!!c) . showString "\n" . showresults egs ws
-
-> showerr :: [Double] -> ShowS
-> showerr [] = showString ""
-> showerr (x:xs) = showerr xs . showdouble x . showString "\n" 
-
-> showweights :: Weights -> ShowS
-> showweights [] = showString "\n"
-> showweights (w:ws) = showweight w . showweights ws
-
-> showweight, showl :: Weight -> ShowS
-> showweight []     = showString "[]\n"
-> showweight (x:xs) = showString "[" . showdoubles x . showl xs
-
-> showl []     = showString "]\n"
-> showl (x:xs) = showString "\n " . showdoubles x . showl xs
-
-> {- ORIG:
-> showdouble :: Double -> String
-> showdouble v = printf "%6.4f " [UDouble v]
-
-> showdoubles :: [Double] -> String
-> showdoubles []     = ""
-> showdoubles (v:vs) = showdouble v ++ showdoubles vs
-
-> showegs :: Egs -> String
-> showegs [] = "\n"
-> showegs ((x,t):egs)
->      = (showdoubles x) ++ " " ++ (showdoubles t) ++ "\n" ++ showegs egs
-
-> showresults :: Egs -> Weights -> String
-> showresults [] _ = "\n"
-> showresults ((x,t):egs) ws
->   = let y = last (classeg ws x)
->        p = maxplace y
->        c = maxplace t
->     in show p ++ "  " ++ showdouble (y!!p) ++ "    " ++
->        show c ++ "  " ++ showdouble (t!!c) ++ "\n"   ++ showresults egs ws
-
-> showerr :: [Double] -> String
-> showerr [] = ""
-> showerr (x:xs) = showerr xs ++ showdouble x ++ "\n" 
-
-> showweights :: Weights -> String
-> showweights [] = "\n"
-> showweights (w:ws) = showweight w ++ showweights ws
-> showweight, showl :: Weight -> String
-> showweight []     = "[]\n"
-> showweight (x:xs) = "["    ++ showdoubles x ++ showl xs
-> showl []     = "]\n"
-> showl (x:xs) = "\n " ++ showdoubles x ++ showl xs
-> -}
-
--------------------------------------------------------------------------------
-|                      Data Reading Functions                                |
--------------------------------------------------------------------------------
-
-> readegs :: String -> Egs
-> readegs s = readData (readWhiteList s)
-
-> readData :: [Double] -> Egs
-> readData [] = []
-> readData bs = let (inp, bs')  = splitAt (head dimensions) bs
->                  (out, bs'') = splitAt (last dimensions) bs'
->              in (inp,out) : (readData bs'')
diff --git a/ghc/tests/programs/waugh_neural/Makefile b/ghc/tests/programs/waugh_neural/Makefile
deleted file mode 100644 (file)
index 89ba1f9..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-TOP = ..
-include $(TOP)/mk/boilerplate.mk
-
-SRC_HC_OPTS += -package lang
-
-all :: runtest
-
-include $(TOP)/mk/target.mk
-
diff --git a/ghc/tests/programs/waugh_neural/ReadLists.lhs b/ghc/tests/programs/waugh_neural/ReadLists.lhs
deleted file mode 100644 (file)
index 5303e7a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-ReadLists
-Written by Sam Waugh
-Date Started : 10th September 1992
-Last Modified: 10th November 1992
-
-This module allows the reading of lists of values from a string
-of the one type seperated by white space.
-
-Thanks to Paul Hudak for suggestions concerning getVals.
-
-> module ReadLists (readWhiteList, readNumBools) where
-
-
-readWhiteList reads a white-spaced list from a given string
-
-> readWhiteList :: (Read a) => String -> [a]
-> readWhiteList = getVals reads
-
-
-readNumBools reads a list of white-spaced boolean values from a given
-string.  Booleans in a string are represented as 1's and 0's.
-
-> readNumBools :: String -> [Bool]
-> readNumBools = getVals readBool
-
-> readBool :: ReadS Bool
-> readBool []     = []
-> readBool (x:xs) = [(x == '1', xs)]
-
-
-getVals (base function) takes a string, s, and a reading function, readVal,
-and repeatedly applies readVal to s while removing whitespace
-
-> getVals :: ReadS a -> String -> [a]
-> getVals readVal s = case readVal (stripWhite s) of
->                       []       -> []
->                       (x,s'):_ -> x : getVals readVal s'
-
-
-stripWhite removes white space from the front of a string
-
-> stripWhite :: String -> String
-> stripWhite = dropWhile (`elem` " \t\n")
diff --git a/ghc/tests/programs/waugh_neural/waugh_neural.stdout b/ghc/tests/programs/waugh_neural/waugh_neural.stdout
deleted file mode 100644 (file)
index 9df417c..0000000
+++ /dev/null
@@ -1,1379 +0,0 @@
-Examples:
-0.0000 0.0000  0.0000 
-0.0000 1.0000  1.0000 
-1.0000 0.0000  1.0000 
-1.0000 1.0000  0.0000 
-
-Classification:
-0  -0.1059     0  0.0000 
-0  0.0368     0  1.0000 
-0  0.1047     0  1.0000 
-0  0.1930     0  0.0000 
-
-Training Error:
-0.0006 
-0.0013 
-0.0012 
-0.0012 
-0.0015 
-0.0011 
-0.0013 
-0.0018 
-0.0025 
-0.0014 
-0.0017 
-0.0023 
-0.0013 
-0.0022 
-0.0020 
-0.0021 
-0.0023 
-0.0015 
-0.0012 
-0.0023 
-0.0019 
-0.0042 
-0.0031 
-0.0026 
-0.0019 
-0.0020 
-0.0039 
-0.0026 
-0.0031 
-0.0028 
-0.0023 
-0.0022 
-0.0022 
-0.0028 
-0.0027 
-0.0047 
-0.0030 
-0.0027 
-0.0046 
-0.0038 
-0.0027 
-0.0077 
-0.0034 
-0.0041 
-0.0113 
-0.0077 
-0.0156 
-0.0171 
-0.0159 
-0.0126 
-0.0094 
-0.0104 
-0.0095 
-0.0117 
-0.0151 
-0.0150 
-0.0109 
-0.0158 
-0.0136 
-0.0100 
-0.0080 
-0.0067 
-0.0063 
-0.0063 
-0.0070 
-0.0141 
-0.0087 
-0.0090 
-0.0107 
-0.0163 
-0.0127 
-0.0159 
-0.0100 
-0.0078 
-0.0136 
-0.0184 
-0.0264 
-0.0263 
-0.0165 
-0.0277 
-0.0200 
-0.0340 
-0.0156 
-0.0350 
-0.0263 
-0.0175 
-0.0300 
-0.0246 
-0.0285 
-0.0179 
-0.0348 
-0.0139 
-0.0365 
-0.0287 
-0.0216 
-0.0237 
-0.0168 
-0.0153 
-0.0384 
-0.0316 
-0.0286 
-0.0228 
-0.0261 
-0.0219 
-0.0168 
-0.0089 
-0.0098 
-0.0092 
-0.0124 
-0.0105 
-0.0160 
-0.0209 
-0.0283 
-0.0132 
-0.0139 
-0.0192 
-0.0212 
-0.0117 
-0.0120 
-0.0109 
-0.0133 
-0.0292 
-0.0230 
-0.0360 
-0.0266 
-0.0203 
-0.0161 
-0.0172 
-0.0171 
-0.0187 
-0.0377 
-0.0174 
-0.0136 
-0.0127 
-0.0136 
-0.0171 
-0.0163 
-0.0193 
-0.0099 
-0.0177 
-0.0182 
-0.0063 
-0.0092 
-0.0080 
-0.0124 
-0.0145 
-0.0107 
-0.0075 
-0.0073 
-0.0114 
-0.0071 
-0.0081 
-0.0203 
-0.0087 
-0.0114 
-0.0173 
-0.0130 
-0.0081 
-0.0217 
-0.0131 
-0.0139 
-0.0125 
-0.0275 
-0.0174 
-0.0241 
-0.0210 
-0.0123 
-0.0140 
-0.0094 
-0.0084 
-0.0137 
-0.0150 
-0.0137 
-0.0078 
-0.0138 
-0.0078 
-0.0092 
-0.0090 
-0.0090 
-0.0080 
-0.0186 
-0.0081 
-0.0074 
-0.0125 
-0.0306 
-0.0278 
-0.0241 
-0.0451 
-0.0218 
-0.0224 
-0.0605 
-0.0442 
-0.0214 
-0.0072 
-0.0086 
-0.0124 
-0.0130 
-0.0075 
-0.0081 
-0.0069 
-0.0198 
-0.0073 
-0.0114 
-0.0078 
-0.0239 
-0.0125 
-0.0164 
-0.0082 
-0.0075 
-0.0061 
-0.0052 
-0.0136 
-0.0071 
-0.0105 
-0.0137 
-0.0062 
-0.0065 
-0.0128 
-0.0145 
-0.0102 
-0.0064 
-0.0113 
-0.0090 
-0.0107 
-0.0066 
-0.0069 
-0.0052 
-0.0054 
-0.0051 
-0.0113 
-0.0163 
-0.0238 
-0.0115 
-0.0091 
-0.0094 
-0.0094 
-0.0107 
-0.0243 
-0.0206 
-0.0160 
-0.0134 
-0.0132 
-0.0158 
-0.0202 
-0.0291 
-0.0289 
-0.0155 
-0.0206 
-0.0256 
-0.0123 
-0.0153 
-0.0339 
-0.0148 
-0.0360 
-0.0188 
-0.0230 
-0.0388 
-0.0203 
-0.0263 
-0.0179 
-0.0406 
-0.0174 
-0.0163 
-0.0295 
-0.0180 
-0.0356 
-0.0290 
-0.0328 
-0.0419 
-0.0259 
-0.0170 
-0.0198 
-0.0317 
-0.0296 
-0.0452 
-0.0356 
-0.0396 
-0.0251 
-0.0250 
-0.0156 
-0.0286 
-0.0288 
-0.0320 
-0.0232 
-0.0309 
-0.0199 
-0.0365 
-0.0251 
-0.0210 
-0.0362 
-0.0262 
-0.0460 
-0.0453 
-0.0319 
-0.0144 
-0.0257 
-0.0434 
-0.0281 
-0.0432 
-0.0296 
-0.0212 
-0.0292 
-0.0191 
-0.0152 
-0.0235 
-0.0090 
-0.0251 
-0.0153 
-0.0462 
-0.0317 
-0.0218 
-0.0133 
-0.0202 
-0.0421 
-0.0151 
-0.0277 
-0.0136 
-0.0213 
-0.0351 
-0.0287 
-0.0296 
-0.0377 
-0.0419 
-0.0238 
-0.0305 
-0.0285 
-0.0184 
-0.0147 
-0.0292 
-0.0249 
-0.0228 
-0.0314 
-0.0336 
-0.0472 
-0.0721 
-0.0395 
-0.0469 
-0.0238 
-0.0322 
-0.0150 
-0.0125 
-0.0267 
-0.0253 
-0.0177 
-0.0100 
-0.0177 
-0.0246 
-0.0135 
-0.0174 
-0.0122 
-0.0222 
-0.0165 
-0.0214 
-0.0313 
-0.0299 
-0.0172 
-0.0273 
-0.0197 
-0.0261 
-0.0266 
-0.0191 
-0.0272 
-0.0139 
-0.0185 
-0.0132 
-0.0164 
-0.0178 
-0.0179 
-0.0237 
-0.0335 
-0.0205 
-0.0316 
-0.0345 
-0.0643 
-0.0431 
-0.0894 
-0.0560 
-0.0509 
-0.1541 
-0.0750 
-0.0944 
-0.0815 
-0.1373 
-0.0743 
-0.1324 
-0.0990 
-0.1165 
-0.2020 
-0.1822 
-0.3030 
-0.2503 
-0.1155 
-0.3019 
-0.2439 
-0.4729 
-0.1733 
-0.1518 
-0.3804 
-0.1371 
-0.1534 
-0.4186 
-0.2648 
-0.1183 
-0.3230 
-0.2882 
-0.2370 
-0.2439 
-0.1663 
-0.0973 
-0.1101 
-0.2022 
-0.0969 
-0.1587 
-0.0838 
-0.1114 
-0.0676 
-0.1860 
-0.1772 
-0.0820 
-0.0949 
-0.0887 
-0.2098 
-0.0934 
-0.0965 
-0.1262 
-0.0529 
-0.0849 
-0.1050 
-0.0565 
-0.1413 
-0.1486 
-0.1968 
-0.1590 
-0.1195 
-0.1178 
-0.1361 
-0.0793 
-0.2035 
-0.0685 
-0.0888 
-0.0676 
-0.0484 
-0.0430 
-0.0492 
-0.0444 
-0.0696 
-0.0338 
-0.0754 
-0.0768 
-0.0535 
-0.0455 
-0.0331 
-0.0330 
-0.0310 
-0.0343 
-0.0364 
-0.0649 
-0.0419 
-0.0309 
-0.0633 
-0.0419 
-0.0528 
-0.0311 
-0.0421 
-0.0453 
-0.0227 
-0.0259 
-0.0613 
-0.0408 
-0.0224 
-0.0115 
-0.0247 
-0.0109 
-0.0161 
-0.0168 
-0.0104 
-0.0185 
-0.0193 
-0.0067 
-0.0069 
-0.0081 
-0.0077 
-0.0101 
-0.0109 
-0.0182 
-0.0113 
-0.0232 
-0.0111 
-0.0102 
-0.0139 
-0.0115 
-0.0189 
-0.0151 
-0.0203 
-0.0115 
-0.0217 
-0.0189 
-0.0243 
-0.0369 
-0.0417 
-0.0471 
-0.0645 
-0.0411 
-0.0549 
-0.0196 
-0.0393 
-0.0298 
-0.0125 
-0.0093 
-0.0218 
-0.0116 
-0.0118 
-0.0147 
-0.0116 
-0.0210 
-0.0179 
-0.0348 
-0.0198 
-0.0119 
-0.0106 
-0.0101 
-0.0149 
-0.0335 
-0.0257 
-0.0249 
-0.0284 
-0.0340 
-0.0794 
-0.1231 
-0.0752 
-0.1574 
-0.0589 
-0.1023 
-0.1208 
-0.1316 
-0.0805 
-0.0667 
-0.0898 
-0.1548 
-0.1017 
-0.1279 
-0.0981 
-0.1481 
-0.1220 
-0.1387 
-0.2427 
-0.3398 
-0.2162 
-0.2501 
-0.1538 
-0.1318 
-0.0558 
-0.0853 
-0.1432 
-0.1571 
-0.0789 
-0.0717 
-0.0585 
-0.0543 
-0.0529 
-0.1346 
-0.0512 
-0.0431 
-0.0462 
-0.0767 
-0.0596 
-0.0914 
-0.0345 
-0.0331 
-0.0451 
-0.0491 
-0.0318 
-0.0335 
-0.0410 
-0.0354 
-0.0879 
-0.0471 
-0.0492 
-0.0497 
-0.0848 
-0.0490 
-0.0592 
-0.0423 
-0.0585 
-0.0426 
-0.0258 
-0.0402 
-0.0188 
-0.0197 
-0.0195 
-0.0241 
-0.0264 
-0.0408 
-0.0226 
-0.0344 
-0.0188 
-0.0364 
-0.0431 
-0.0198 
-0.0282 
-0.0243 
-0.0521 
-0.0483 
-0.0292 
-0.0342 
-0.0653 
-0.0286 
-0.0381 
-0.0274 
-0.0525 
-0.0661 
-0.0286 
-0.0666 
-0.0384 
-0.0285 
-0.0217 
-0.0405 
-0.0443 
-0.0303 
-0.0601 
-0.0370 
-0.0232 
-0.0259 
-0.0274 
-0.0295 
-0.0694 
-0.0371 
-0.0323 
-0.0515 
-0.0687 
-0.0305 
-0.0508 
-0.0402 
-0.0428 
-0.0922 
-0.0459 
-0.1083 
-0.1454 
-0.1593 
-0.1142 
-0.0774 
-0.1408 
-0.1267 
-0.1318 
-0.0634 
-0.0862 
-0.1191 
-0.0954 
-0.0965 
-0.0734 
-0.0700 
-0.0778 
-0.0901 
-0.0614 
-0.1199 
-0.0618 
-0.0505 
-0.0697 
-0.0410 
-0.0572 
-0.1019 
-0.0856 
-0.0771 
-0.0908 
-0.0332 
-0.0674 
-0.0483 
-0.0339 
-0.0309 
-0.0308 
-0.0443 
-0.0467 
-0.0714 
-0.0540 
-0.0408 
-0.0450 
-0.0482 
-0.0558 
-0.0683 
-0.0407 
-0.0375 
-0.0416 
-0.0891 
-0.0968 
-0.0586 
-0.1387 
-0.0728 
-0.0705 
-0.0565 
-0.1113 
-0.0723 
-0.1056 
-0.0658 
-0.0625 
-0.0344 
-0.0468 
-0.0392 
-0.0317 
-0.0265 
-0.0360 
-0.0338 
-0.0308 
-0.0727 
-0.0286 
-0.0522 
-0.0405 
-0.0375 
-0.0257 
-0.0249 
-0.0346 
-0.0191 
-0.0286 
-0.0311 
-0.0283 
-0.0407 
-0.0275 
-0.0750 
-0.0911 
-0.0425 
-0.0362 
-0.0591 
-0.0270 
-0.0290 
-0.0338 
-0.0592 
-0.0350 
-0.0552 
-0.0564 
-0.0446 
-0.0558 
-0.0369 
-0.0497 
-0.0650 
-0.0433 
-0.0420 
-0.0434 
-0.0546 
-0.0415 
-0.0394 
-0.0488 
-0.0695 
-0.0372 
-0.0458 
-0.0385 
-0.0337 
-0.0354 
-0.0324 
-0.0575 
-0.0505 
-0.0566 
-0.1589 
-0.1263 
-0.1118 
-0.2126 
-0.2967 
-0.2778 
-0.2609 
-0.6322 
-0.7693 
-0.5429 
-0.1965 
-0.3751 
-0.3611 
-0.2222 
-0.2763 
-0.2273 
-0.3213 
-0.2207 
-0.2181 
-0.1717 
-0.1765 
-0.3055 
-0.2081 
-0.2476 
-0.2661 
-0.1559 
-0.1006 
-0.1233 
-0.1502 
-0.1001 
-0.1113 
-0.1471 
-0.1477 
-0.0594 
-0.1124 
-0.0564 
-0.0538 
-0.0451 
-0.0435 
-0.0558 
-0.0365 
-0.0820 
-0.0432 
-0.0735 
-0.0375 
-0.0851 
-0.0587 
-0.1136 
-0.0859 
-0.1611 
-0.0959 
-0.1569 
-0.1321 
-0.0898 
-0.0977 
-0.1466 
-0.1692 
-0.0777 
-0.1352 
-0.0826 
-0.0442 
-0.0398 
-0.0639 
-0.0494 
-0.0545 
-0.0318 
-0.0795 
-0.0540 
-0.0687 
-0.0597 
-0.0709 
-0.0997 
-0.0884 
-0.1047 
-0.1659 
-0.1014 
-0.1369 
-0.1411 
-0.0814 
-0.0963 
-0.0805 
-0.0774 
-0.1477 
-0.0741 
-0.0723 
-0.1459 
-0.0819 
-0.0615 
-0.0622 
-0.0539 
-0.0547 
-0.0599 
-0.0635 
-0.1005 
-0.0703 
-0.0717 
-0.0415 
-0.0654 
-0.0331 
-0.0417 
-0.1216 
-0.0763 
-0.0705 
-0.0923 
-0.0792 
-0.0829 
-0.0462 
-0.0870 
-0.1555 
-0.1023 
-0.1440 
-0.0655 
-0.1040 
-0.2320 
-0.0897 
-0.0833 
-0.0592 
-0.0559 
-0.0569 
-0.0643 
-0.0807 
-0.0862 
-0.0502 
-0.0679 
-0.0652 
-0.0575 
-0.0557 
-0.0711 
-0.1001 
-0.0551 
-0.0560 
-0.0537 
-0.0539 
-0.0600 
-0.0759 
-0.1523 
-0.1705 
-0.1183 
-0.1832 
-0.2640 
-0.1693 
-0.1337 
-0.2807 
-0.8807 
-1.0110 
-1.1298 
-0.8362 
-0.3536 
-0.2293 
-0.0994 
-0.1356 
-0.1334 
-0.2120 
-0.0832 
-0.1290 
-0.0884 
-0.1778 
-0.1456 
-0.1121 
-0.1612 
-0.0711 
-0.1206 
-0.1081 
-0.0507 
-0.0819 
-0.0771 
-0.0783 
-0.0783 
-0.0560 
-0.1450 
-0.2208 
-0.0846 
-0.2032 
-0.1537 
-0.1352 
-0.2858 
-0.3946 
-0.3023 
-0.4804 
-0.3720 
-0.3830 
-0.4174 
-0.3898 
-0.6058 
-0.3161 
-0.2903 
-0.2651 
-0.1544 
-0.4088 
-0.2355 
-0.2825 
-0.4602 
-0.2062 
-0.1985 
-0.1613 
-0.1495 
-0.1726 
-0.3099 
-0.1895 
-0.1237 
-0.1268 
-0.1344 
-0.1068 
-0.1129 
-0.0869 
-0.0912 
-0.0926 
-0.0905 
-0.1214 
-0.0649 
-0.0876 
-0.1203 
-0.1225 
-0.1146 
-0.1131 
-0.1489 
-0.1334 
-0.1083 
-0.0903 
-0.0981 
-0.3364 
-0.2867 
-0.3913 
-0.3200 
-0.3584 
-0.2114 
-0.1862 
-0.1882 
-0.1458 
-0.1275 
-0.2299 
-0.2936 
-0.3161 
-0.3604 
-0.1345 
-0.2309 
-0.2310 
-0.3559 
-0.3741 
-0.3841 
-0.1600 
-0.3186 
-0.1768 
-0.1374 
-0.1833 
-0.1551 
-0.1107 
-0.0685 
-0.1061 
-0.0834 
-0.0876 
-0.0769 
-0.1060 
-0.1000 
-0.0803 
-0.2304 
-0.1964 
-0.3363 
-0.1922 
-0.2041 
-0.1679 
-0.1237 
-0.0920 
-0.1977 
-0.3451 
-0.2789 
-0.2462 
-0.2204 
-0.2798 
-0.3526 
-0.2780 
-0.5861 
-0.3788 
-0.6887 
-0.4506 
-0.3664 
-0.2358 
-0.0767 
-0.2181 
-0.2429 
-0.2658 
-0.3366 
-0.1841 
-0.1113 
-0.0914 
-0.0824 
-0.0719 
-0.1407 
-0.0824 
-0.1721 
-0.1516 
-0.1562 
-0.1351 
-0.1235 
-0.1095 
-0.0962 
-0.1015 
-0.0892 
-0.1545 
-0.1909 
-0.4212 
-0.4129 
-0.3782 
-0.3431 
-0.3330 
-0.2739 
-0.3242 
-0.2353 
-0.2348 
-0.3102 
-0.3587 
-0.5124 
-0.3840 
-0.4732 
-0.4399 
-0.2119 
-0.1322 
-0.1233 
-0.1316 
-0.1150 
-0.0998 
-0.1800 
-0.1273 
-0.2833 
-0.1345 
-0.1112 
-0.1187 
-0.1175 
-0.1231 
-0.4920 
-0.6189 
-0.2811 
-0.2768 
-0.3276 
-0.2768 
-0.4092 
-0.3237 
-0.5175 
-0.3444 
-0.2286 
-0.3363 
-0.2437 
-0.2369 
-0.3936 
-0.2882 
-0.1668 
-0.2125 
-0.1564 
-0.2847 
-0.3474 
-0.3749 
-0.2152 
-0.4767 
-0.3737 
-0.2519 
-0.1675 
-0.1980 
-0.1459 
-0.1549 
-0.1512 
-0.1498 
-0.2775 
-0.3663 
-0.2599 
-0.3337 
-0.1786 
-0.7095 
-0.4253 
-0.2590 
-0.2128 
-0.3139 
-0.4042 
-0.3455 
-0.8963 
-0.5630 
-0.6491 
-0.3273 
-0.5495 
-0.7103 
-0.3689 
-0.3517 
-0.2506 
-0.2394 
-0.2563 
-0.2178 
-0.3305 
-0.2091 
-0.2713 
-0.9382 
-0.4809 
-0.3457 
-0.3757 
-0.3567 
-0.3623 
-0.7483 
-0.2758 
-0.3359 
-0.4226 
-0.4436 
-0.5415 
-0.7246 
-0.5840 
-0.5240 
-0.4820 
-0.4918 
-0.3472 
-0.4292 
-0.2638 
-0.8652 
-0.6386 
-0.2970 
-0.2482 
-0.3634 
-0.5364 
-0.3266 
-0.2738 
-0.3561 
-0.2874 
-0.2952 
-0.3432 
-0.5600 
-0.4412 
-0.7108 
-0.5172 
-1.1662 
-1.0235 
-0.5857 
-0.9115 
-0.8491 
-0.6621 
-0.3065 
-0.4287 
-0.4757 
-0.5191 
-0.3534 
-0.4221 
-0.4662 
-0.3410 
-0.4524 
-0.7814 
-0.4169 
-0.4127 
-0.3937 
-0.5450 
-0.3860 
-0.3942 
-0.4960 
-0.4516 
-0.5248 
-0.4116 
-0.4200 
-0.4214 
-0.5984 
-0.5791 
-0.5775 
-0.6311 
-0.6828 
-1.0524 
-1.0729 
-0.7104 
-0.7662 
-0.5090 
-0.6262 
-0.5004 
-0.8285 
-0.5389 
-0.6671 
-0.7463 
-0.6655 
-0.8002 
-1.0429 
-1.1349 
-0.5813 
-0.5798 
-0.6674 
-0.7338 
-1.0065 
-0.8124 
-0.6703 
-0.6968 
-0.6548 
-0.7707 
-0.6928 
-0.6606 
-0.7861 
-0.7466 
-0.7467 
-0.9788 
-0.7896 
-0.8128 
-0.8151 
-0.8171 
-1.1193 
-1.0804 
-1.0764 
-0.8801 
-0.9400 
-1.0559 
-0.8107 
-0.8610 
-0.8641 
-0.8087 
-0.8159 
-0.8625 
-0.9505 
-0.9631 
-0.9564 
-0.8354 
-0.8608 
-0.9085 
-0.8384 
-1.0629 
-0.8835 
-0.8643 
-0.9080 
-0.9002 
-1.0846 
-0.9661 
-0.9995 
-1.0096 
-1.0039 
-1.0839 
-0.9100 
-1.0386 
-1.2184 
-1.1378 
-0.8842 
-1.0651 
-0.8931 
-0.9578 
-1.0597 
-0.8947 
-0.9176 
-0.9138 
-0.9297 
-1.0663 
-0.9131 
-1.0254 
-1.1214 
-1.0609 
-0.9520 
-1.0866 
-1.0985 
-0.9468 
-0.9588 
-0.9661 
-1.0548 
-1.0921 
-1.1088 
-1.1045 
-1.1313 
-0.9873 
-1.1151 
-1.1237 
-0.9889 
-1.0286 
-1.0728 
-1.1691 
-1.0330 
-1.0835 
-1.1305 
-0.9608 
-1.1476 
-1.0012 
-1.0972 
-1.1373 
-1.0784 
-1.0679 
-1.0392 
-1.1016 
-0.9909 
-1.0779 
-0.9820 
-1.0325 
-1.0863 
-1.1063 
-0.9852 
-1.5432 
-1.0038 
-1.0676 
-0.9857 
-1.1375 
-1.0446 
-1.1342 
-1.1891 
-0.9901 
-1.1802 
-1.1556 
-0.9927 
-1.0766 
-1.1414 
-1.0948 
-1.1492 
-0.9973 
-1.1168 
-1.1166 
-1.0655 
-1.0620 
-1.0904 
-1.0921 
-1.0157 
-1.2459 
-1.3257 
-1.0308 
-1.1034 
-1.0122 
-0.9948 
-1.2459 
-1.3062 
-1.3424 
-Trained Classification:
-0  -0.0001     0  0.0000 
-0  1.0000     0  1.0000 
-0  1.0006     0  1.0000 
-0  0.0002     0  0.0000 
-
diff --git a/ghc/tests/programs/waugh_neural/xor b/ghc/tests/programs/waugh_neural/xor
deleted file mode 100644 (file)
index c829d52..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-0.0 0.0  0.0
-0.0 1.0  1.0
-1.0 0.0  1.0
-1.0 1.0  0.0