From a22963fa83156b76dd73777b7044897eed50e3bc Mon Sep 17 00:00:00 2001 From: Dominic Steinitz Date: Sun, 11 Mar 2018 14:21:31 +0000 Subject: The start of an hmatrix interface to sundials --- packages/sundials/MyMain.c | 19 + packages/sundials/src/Test.hs | 164 + packages/sundials/src/Types.hs | 44 + packages/sundials/src/Types2.hs | 10658 +++++++++++++++++++++++++++++++++++++ packages/sundials/src/gsl-ode.hs | 152 + packages/sundials/src/helpers.c | 37 + packages/sundials/src/helpers.h | 1 + 7 files changed, 11075 insertions(+) create mode 100644 packages/sundials/MyMain.c create mode 100644 packages/sundials/src/Test.hs create mode 100644 packages/sundials/src/Types.hs create mode 100644 packages/sundials/src/Types2.hs create mode 100644 packages/sundials/src/gsl-ode.hs create mode 100644 packages/sundials/src/helpers.c create mode 100644 packages/sundials/src/helpers.h diff --git a/packages/sundials/MyMain.c b/packages/sundials/MyMain.c new file mode 100644 index 0000000..1a7f579 --- /dev/null +++ b/packages/sundials/MyMain.c @@ -0,0 +1,19 @@ +#include +#include +#include /* prototypes for ARKODE fcts., consts. */ +#include /* serial N_Vector types, fcts., macros */ +#include /* access to dense SUNMatrix */ +#include /* access to dense SUNLinearSolver */ +#include /* access to ARKDls interface */ +#include /* definition of type realtype */ +#include + +#include "src/helpers.h" + +int main () { + sunindextype NEQ = 1; /* number of dependent vars. */ + N_Vector y = NULL; /* empty vector for storing solution */ + y = N_VNew_Serial(NEQ); /* Create serial vector for solution */ + if (check_flag((void *)y, "N_VNew_Serial", 0)) return 1; + return 0; +} diff --git a/packages/sundials/src/Test.hs b/packages/sundials/src/Test.hs new file mode 100644 index 0000000..a99582a --- /dev/null +++ b/packages/sundials/src/Test.hs @@ -0,0 +1,164 @@ +{-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE OverloadedStrings #-} + +import qualified Language.C.Inline as C +import qualified Language.C.Inline.Unsafe as CU +import Data.Monoid ((<>)) +import Foreign.C.Types +import Foreign.Ptr (Ptr) +import Foreign.Marshal.Array +import qualified Data.Vector.Storable as V + +import Data.Coerce (coerce) +import Data.Monoid ((<>)) +import qualified Data.Vector.Storable as V +import qualified Data.Vector.Storable.Mutable as VM +import Foreign.C.Types +import Foreign.ForeignPtr (newForeignPtr_) +import Foreign.Ptr (Ptr) +import Foreign.Storable (Storable) +import qualified Language.C.Inline as C +import qualified Language.C.Inline.Unsafe as CU +import System.IO.Unsafe (unsafePerformIO) + +import qualified Language.Haskell.TH as TH +import qualified Language.C.Types as CT +import qualified Data.Map as Map +import Language.C.Inline.Context + +C.context (C.baseCtx <> C.vecCtx <> C.funCtx) + +-- C includes +C.include "" +C.include "" +C.include "" -- prototypes for ARKODE fcts., consts. +C.include "" -- serial N_Vector types, fcts., macros +C.include "" -- access to dense SUNMatrix +C.include "" -- access to dense SUNLinearSolver +C.include "" -- access to ARKDls interface +C.include "" -- definition of type realtype +C.include "" +C.include "helpers.h" + +-- | Solves a system of ODEs. Every 'V.Vector' involved must be of the +-- same size. +-- {-# NOINLINE solveOdeC #-} +-- solveOdeC +-- :: (CDouble -> V.Vector CDouble -> V.Vector CDouble) +-- -- ^ ODE to Solve +-- -> CDouble +-- -- ^ Start +-- -> V.Vector CDouble +-- -- ^ Solution at start point +-- -> CDouble +-- -- ^ End +-- -> Either String (V.Vector CDouble) +-- -- ^ Solution at end point, or error. +-- solveOdeC fun x0 f0 xend = unsafePerformIO $ do +-- let dim = V.length f0 +-- let dim_c = fromIntegral dim -- This is in CInt +-- -- Convert the function to something of the right type to C. +-- let funIO x y f _ptr = do +-- -- Convert the pointer we get from C (y) to a vector, and then +-- -- apply the user-supplied function. +-- fImm <- fun x <$> vectorFromC dim y +-- -- Fill in the provided pointer with the resulting vector. +-- vectorToC fImm dim f +-- -- Unsafe since the function will be called many times. +-- [CU.exp| int{ GSL_SUCCESS } |] +-- -- Create a mutable vector from the initial solution. This will be +-- -- passed to the ODE solving function provided by GSL, and will +-- -- contain the final solution. +-- fMut <- V.thaw f0 +-- res <- [C.block| int { +-- gsl_odeiv2_system sys = { +-- $fun:(int (* funIO) (double t, const double y[], double dydt[], void * params)), +-- // The ODE to solve, converted to function pointer using the `fun` +-- // anti-quoter +-- NULL, // We don't provide a Jacobian +-- $(int dim_c), // The dimension +-- NULL // We don't need the parameter pointer +-- }; +-- // Create the driver, using some sensible values for the stepping +-- // function and the tolerances +-- gsl_odeiv2_driver *d = gsl_odeiv2_driver_alloc_y_new ( +-- &sys, gsl_odeiv2_step_rk8pd, 1e-6, 1e-6, 0.0); +-- // Finally, apply the driver. +-- int status = gsl_odeiv2_driver_apply( +-- d, &$(double x0), $(double xend), $vec-ptr:(double *fMut)); +-- // Free the driver +-- gsl_odeiv2_driver_free(d); +-- return status; +-- } |] +-- -- Check the error code +-- maxSteps <- [C.exp| int{ GSL_EMAXITER } |] +-- smallStep <- [C.exp| int{ GSL_ENOPROG } |] +-- good <- [C.exp| int{ GSL_SUCCESS } |] +-- if | res == good -> Right <$> V.freeze fMut +-- | res == maxSteps -> return $ Left "Too many steps" +-- | res == smallStep -> return $ Left "Step size dropped below minimum allowed size" +-- | otherwise -> return $ Left $ "Unknown error code " ++ show res + +-- -- Utils + +-- vectorFromC :: Storable a => Int -> Ptr a -> IO (V.Vector a) +-- vectorFromC len ptr = do +-- ptr' <- newForeignPtr_ ptr +-- V.freeze $ VM.unsafeFromForeignPtr0 ptr' len + +-- vectorToC :: Storable a => V.Vector a -> Int -> Ptr a -> IO () +-- vectorToC vec len ptr = do +-- ptr' <- newForeignPtr_ ptr +-- V.copy (VM.unsafeFromForeignPtr0 ptr' len) vec + + +-- /* Check function return value... +-- opt == 0 means SUNDIALS function allocates memory so check if +-- returned NULL pointer +-- opt == 1 means SUNDIALS function returns a flag so check if +-- flag >= 0 +-- opt == 2 means function allocates memory so check if returned +-- NULL pointer +-- */ +-- static int check_flag(void *flagvalue, const char *funcname, int opt) +-- { +-- int *errflag; + +-- /* Check if SUNDIALS function returned NULL pointer - no memory allocated */ +-- if (opt == 0 && flagvalue == NULL) { +-- fprintf(stderr, "\nSUNDIALS_ERROR: %s() failed - returned NULL pointer\n\n", +-- funcname); +-- return 1; } + +-- /* Check if flag < 0 */ +-- else if (opt == 1) { +-- errflag = (int *) flagvalue; +-- if (*errflag < 0) { +-- fprintf(stderr, "\nSUNDIALS_ERROR: %s() failed with flag = %d\n\n", +-- funcname, *errflag); +-- return 1; }} + +-- /* Check if function returned NULL pointer - no memory allocated */ +-- else if (opt == 2 && flagvalue == NULL) { +-- fprintf(stderr, "\nMEMORY_ERROR: %s() failed - returned NULL pointer\n\n", +-- funcname); +-- return 1; } + +-- return 0; +-- } + +main = do + res <- [C.block| int { sunindextype NEQ = 1; /* number of dependent vars. */ + N_Vector y = NULL; /* empty vector for storing solution */ + void *arkode_mem = NULL; /* empty ARKode memory structure */ + y = N_VNew_Serial(NEQ); /* Create serial vector for solution */ + if (check_flag((void *)y, "N_VNew_Serial", 0)) return 1; + + N_VConst(0.0, y); /* Specify initial condition */ + arkode_mem = ARKodeCreate(); /* Create the solver memory */ + if (check_flag((void *)arkode_mem, "ARKodeCreate", 0)) return 1; + return 0; + } |] + putStrLn $ show res diff --git a/packages/sundials/src/Types.hs b/packages/sundials/src/Types.hs new file mode 100644 index 0000000..355850d --- /dev/null +++ b/packages/sundials/src/Types.hs @@ -0,0 +1,44 @@ +{-# LANGUAGE QuasiQuotes #-} +{-# LANGUAGE TemplateHaskell #-} +{-# LANGUAGE MultiWayIf #-} +{-# LANGUAGE OverloadedStrings #-} + +module Types where + +import qualified Language.C.Inline as C +import qualified Language.C.Inline.Unsafe as CU +import Data.Monoid ((<>)) +import Foreign.C.Types +import Foreign.Ptr (Ptr) +import Foreign.Marshal.Array +import qualified Data.Vector.Storable as V + +import Data.Coerce (coerce) +import Data.Monoid ((<>)) +import qualified Data.Vector.Storable as V +import qualified Data.Vector.Storable.Mutable as VM +import Foreign.C.Types +import Foreign.ForeignPtr (newForeignPtr_) +import Foreign.Ptr (Ptr) +import Foreign.Storable (Storable) +import qualified Language.C.Inline as C +import qualified Language.C.Inline.Unsafe as CU +import System.IO.Unsafe (unsafePerformIO) + +import qualified Language.Haskell.TH as TH +import qualified Language.C.Types as CT +import qualified Data.Map as Map +import Language.C.Inline.Context + + +-- This is a lie!!! +type SunIndexType = CLong + +sunTypesTable :: Map.Map CT.TypeSpecifier TH.TypeQ +sunTypesTable = Map.fromList + [ + (CT.TypeName "sunindextype", [t| SunIndexType |] ) + ] + +sunctx = mempty {ctxTypesTable = sunTypesTable} + diff --git a/packages/sundials/src/Types2.hs b/packages/sundials/src/Types2.hs new file mode 100644 index 0000000..84a46ee --- /dev/null +++ b/packages/sundials/src/Types2.hs @@ -0,0 +1,10658 @@ +bash-3.2$ pwd +/Users/dom/Dropbox/Tidy/NumMethHaskell/symplectic-integrators +bash-3.2$ BlogLiterately Notes.lhs +BlogLiterately: CouldNotFindBibFile "DynSys.bib" +bash-3.2$ BlogLiterately Notes.lhs +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\tfrac h2,\tfrac12(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\tfrac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +

Introduction

+

For the midpoint method you approximate All approximations with an error O(h2)

+

This gives the method
$$ +y_{k+1}=y_k+hf(t+\tfrac h2,\tfrac12(y_k+y_{k+1})) +$$
This can be decomposed into first one step of the implicit Euler method and then one of the explicit Euler method, both with half the step size where $(t+\tfrac h2,y_{k+\frac12})$ is the midpoint of the segment connecting the iteration points with $y_{k+\frac12}=\frac12(y_k+y_{k+1})$

+bash-3.2$ BlogLiterately Notes.lhs +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\tfrac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +

Introduction

+

For the midpoint method you approximate All approximations with an error O(h2)

+

This gives the method
$$ +y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) +$$
This can be decomposed into first one step of the implicit Euler method and then one of the explicit Euler method, both with half the step size where $(t+\tfrac h2,y_{k+\frac12})$ is the midpoint of the segment connecting the iteration points with $y_{k+\frac12}=\frac12(y_k+y_{k+1})$

+bash-3.2$ BlogLiterately Notes.lhs +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\tfrac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +

Introduction

+

For the midpoint method you approximate All approximations with an error O(h2)

+

This gives the method
$$ +y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) +$$
This can be decomposed into first one step of the implicit Euler method and then one of the explicit Euler method, both with half the step size where $(t+\tfrac h2,y_{k+\frac12})$ is the midpoint of the segment connecting the iteration points with $y_{k+\frac12}=\frac12(y_k+y_{k+1})$

+bash-3.2$ BlogLiterately Notes.lhs +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\tfrac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +

Introduction

+

For the midpoint method you approximate All approximations with an error O(h2)

+

This gives the method
$$ +y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) +$$
This can be decomposed into first one step of the implicit Euler method and then one of the explicit Euler method, both with half the step size where $(t+\tfrac h2,y_{k+\frac12})$ is the midpoint of the segment connecting the iteration points with $y_{k+\frac12}=\frac12(y_k+y_{k+1})$

+bash-3.2$ BlogLiterately Notes.lhs +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\tfrac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +

Introduction

+

For the midpoint method you approximate All approximations with an error O(h2)

+

This gives the method
$$ +y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) +$$
This can be decomposed into first one step of the implicit Euler method and then one of the explicit Euler method, both with half the step size where $(t+\tfrac h2,y_{k+\frac12})$ is the midpoint of the segment connecting the iteration points with $y_{k+\frac12}=\frac12(y_k+y_{k+1})$

+bash-3.2$ BlogLiterately Notes.lhs +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\frac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +

Introduction

+

For the midpoint method you approximate All approximations with an error O(h2)

+

This gives the method
$$ +y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) +$$
This can be decomposed into first one step of the implicit Euler method and then one of the explicit Euler method, both with half the step size where $(t+\frac h2,y_{k+\frac12})$ is the midpoint of the segment connecting the iteration points with $y_{k+\frac12}=\frac12(y_k+y_{k+1})$

+bash-3.2$ BlogLiterately Notes.lhs > Notes.htmls +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\frac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +bash-3.2$ BlogLiterately Notes.lhs > Notes.html +[WARNING] Could not convert TeX math ' + y_{k+1}=y_k+hf(t+\frac{h}{2},\frac{1}{2}(y_k+y_{k+1})) + ', rendering as TeX +[WARNING] Could not convert TeX math '(t+\frac h2,y_{k+\frac12})', rendering as TeX +[WARNING] Could not convert TeX math 'y_{k+\frac12}=\frac12(y_k+y_{k+1})', rendering as TeX +bash-3.2$ pwd +/Users/dom/Dropbox/Tidy/NumMethHaskell/symplectic-integrators +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ BlogLiterately --math=mathjax Notes.lhs > Notes.html +bash-3.2$ pwd +/Users/dom/Dropbox/Tidy/NumMethHaskell/symplectic-integrators +bash-3.2$ nix-shell shell.nix -I nixpkgs=/Users/dom/nixpkgs +error: Nix database directory ‘/nix/var/nix/db’ is not writable: Permission denied +bash-3.2$ source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh +bash-3.2$ nix-shell shell.nix -I nixpkgs=/Users/dom/nixpkgs +error: getting status of ‘/Users/dom/Dropbox/Tidy/NumMethHaskell/symplectic-integrators/shell.nix’: No such file or directory +bash-3.2$ cp ../variational/shell.nix . +bash-3.2$ nix-shell shell.nix -I nixpkgs=/Users/dom/nixpkgs +these derivations will be built: + /nix/store/ijkrrqajlh6zci3iy8gcprrm3p6v3g03-ghc-8.2.2-with-packages.drv +building path(s) ‘/nix/store/648haxfac72x339hnh6pk4r2ln7bz9ks-ghc-8.2.2-with-packages’ +/nix/store/15n2n0f1nn82ddnnzcp983phgncacfy7-mwc-random-0.13.6.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/smsj6wjnagibdpq5isd4g31g9wzz3g4s-monad-par-extras-0.3.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/li3sjq986x350ffxd9ybn1yb4lyd2yv0-abstract-par-0.3.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/277ndipb72418x8pbplrbf6iad7pjsnf-abstract-deque-0.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/nr813qc3flsplicn8f1vnybwn45pyfbk-monad-par-0.3.4.8/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/dy67ilqpixcvgfk5fb9gg4yazqa83j7n-vector-th-unbox-0.2.1.6/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/bbbhjj205rxnkxgbj9zf3x1npaj45r28-math-functions-0.2.1.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/cgmwpchalv177r5if2wx6ia8qg0vwi8z-statistics-0.14.0.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/kj3nyzcci6w4mrply90i1s2dxxifklpi-data-default-instances-old-locale-0.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/0sbiaq1rpqnqa1j8ricg2hqlhigwca1a-data-default-instances-dlist-0.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/29fkmx51scd0ssmk0zsydq9wpqqfb5n6-data-default-instances-containers-0.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/a08av7hxmpjg4abvwgs3pmpa309qp13j-data-default-0.7.1.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/1m7jffvgznz98l417wkphav3ygw7cagp-plots-0.1.0.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/pzwmpn003q81b0qr9sp0xgv7r27nmy7w-th-reify-many-0.1.8/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/rxpm4l4c5gh1a9x4d4s0qq0gafqicggk-th-lift-instances-0.1.11/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/5ss00f1yc3kfh5nr7jl6cp6kjb7gqvxl-th-orphans-0.13.5/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/xrvv444m45ix8qv5ycaz55zhwk7k145h-th-lift-0.7.8/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/yrf2598spzshynk7kx7xii7203nyf6my-th-expand-syns-0.4.4.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/k2ghf3dayzdn6sbjmp5jimw7g3xdrjx8-th-desugar-1.7/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/lpqpjnhvvbbcyyvpamy4kz5qvaq4mj9x-singletons-2.3.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/j9j526hl75203rqhmcpr9s6kj7kdp0fb-setenv-0.1.1.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/ybzmz83966rmhy01njjiv75i3865kgfy-charset-0.3.7.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/324g1lwr8cd3xjb5w8vp2dblxbz5ssq8-parsers-0.12.8/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/766mm5vv4f13zl7llp8nvhshhim426x0-parsec-3.1.13.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/knyswh3qdnxq31zgm0sv1nfs0b3v7rv7-inline-c-0.6.0.5/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/ngkbic1r82yscxwncbdcxsjqg0jx2pvs-uuid-types-1.0.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/64ldaj1ckk9rd1p505yas1axzcshqz3g-time-locale-compat-0.1.1.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/y5788n82yrr1isbm0r66xz8r84dakjnp-base-compat-0.9.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/ggzc52rdcj3d8z57b7jz83v2ngrmr6sb-attoparsec-0.13.2.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/0nwd69235bq7370253fhj2zfscclkgaj-aeson-1.2.4.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/ilccfmai8d53zmjsglzx65dql8mwzah7-inline-r-0.9.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/niwli3l6pyrhr4c2s3a8kzgm3qp5l53b-hmatrix-gsl-0.18.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/yygvdip59999m8vvnpm08pch4sb3s4wq-random-1.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/lib/ghc-8.2.2/package.conf.d: +hmatrix-0.18.2.0-GQzHhDmJJzr8XDCOFEmvCf.conf: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/package.conf.d/hmatrix-0.18.2.0-GQzHhDmJJzr8XDCOFEmvCf.conf +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/lib/ghc-8.2.2/x86_64-osx-ghc-8.2.2: +libHShmatrix-0.18.2.0-GQzHhDmJJzr8XDCOFEmvCf-ghc8.2.2.dylib: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/x86_64-osx-ghc-8.2.2/libHShmatrix-0.18.2.0-GQzHhDmJJzr8XDCOFEmvCf-ghc8.2.2.dylib +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal: +IO.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/IO.dyn_hi +Numeric.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Numeric.hi +Static.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Static.hi +Sparse.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Sparse.hi +ST.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/ST.dyn_hi +Static.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Static.dyn_hi +Container.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Container.hi +CG.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/CG.dyn_hi +Sparse.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Sparse.dyn_hi +Conversion.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Conversion.dyn_hi +LAPACK.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/LAPACK.dyn_hi +Vectorized.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Vectorized.dyn_hi +Devel.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Devel.dyn_hi +LAPACK.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/LAPACK.hi +Modular.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Modular.hi +Devel.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Devel.hi +Chain.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Chain.dyn_hi +Container.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Container.dyn_hi +Algorithms.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Algorithms.hi +Convolution.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Convolution.hi +Vector.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Vector.hi +Vectorized.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Vectorized.hi +Vector.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Vector.dyn_hi +Matrix.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Matrix.dyn_hi +Algorithms.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Algorithms.dyn_hi +Random.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Random.dyn_hi +Matrix.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Matrix.hi +CG.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/CG.hi +Util.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Util.dyn_hi +Numeric.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Numeric.dyn_hi +Modular.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Modular.dyn_hi +Random.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Random.hi +Element.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Element.hi +Element.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Element.dyn_hi +Util.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Util.hi +Chain.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Chain.hi +Convolution.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Convolution.dyn_hi +ST.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/ST.hi +IO.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/IO.hi +Conversion.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Internal/Conversion.hi +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric: +LinearAlgebra.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra.hi +Vector.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/Vector.hi +Vector.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/Vector.dyn_hi +Matrix.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/Matrix.dyn_hi +Matrix.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/Matrix.hi +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra: +Static.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/Static.hi +Static.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/Static.dyn_hi +Devel.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/Devel.dyn_hi +Data.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/Data.hi +Devel.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/Devel.hi +Data.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/Data.dyn_hi +HMatrix.hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/HMatrix.hi +HMatrix.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra/HMatrix.dyn_hi +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric: +LinearAlgebra.dyn_hi: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/Numeric/LinearAlgebra.dyn_hi +/nix/store/l6pwqcnmdrz8iww82h4qxq64q4mzr5nd-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0: +libHShmatrix-0.18.2.0-GQzHhDmJJzr8XDCOFEmvCf.a: /nix/store/3qgphr7mb5bb9qip9y3rndg8n29ds8gg-hmatrix-0.18.2.0/lib/ghc-8.2.2/hmatrix-0.18.2.0/libHShmatrix-0.18.2.0-GQzHhDmJJzr8XDCOFEmvCf.a +/nix/store/3q1bfcwxibj7wg2x4ksc13z9d4xycpxf-vector-algorithms-0.7.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/1ddbfnacrhfaf6kdv67vx9yniafmgxrf-dlist-0.8.0.4/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/4bdwvifj64f02dp1k04hb543ga3pj1f6-Rasterific-0.7.2.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/r23rygfr5fx1b5h1gcl6p6l8hq9ipzxl-xml-1.3.14/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/ima3jh950g2pns547c9ipagwlp3ibgpp-FontyFruity-0.5.3.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/xbprmkxnzjvlal818sqlpp78f7nd4nc8-file-embed-0.0.10.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/q525a7akm9wbr7pkpx1wfm42y5jrlf8r-diagrams-rasterific-1.4/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/vv7zpdnlr0j6012xsbbvp1zwb6dg0lpy-ansi-terminal-0.7.1.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/s12mlmf5yf7ifapzwm1zcr2212waxlh8-ansi-wl-pprint-0.6.8.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/2j9scs43v3bnnppy42fh20nxllsf9ys7-optparse-applicative-0.14.1.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/a1xyc64axlks4vzzwca17r9vl93syby0-zlib-0.6.1.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/5kblpllg7za260gw9lqhwyl9nsi9zw6a-JuicyPixels-3.2.9.4/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/x7gv2hcdvnf94wmr3g9pb01ji1nc0abq-intervals-0.8.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/a9rcycvyy7hqc2h7aqn346vhyx31nrh7-unix-compat-0.5.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/xn597v3jffj78z6hwh06hmrd6p08y1h7-hfsevents-0.1.6/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/xwrc07jjivgcamm9dkrjlcami2alhhg5-async-2.1.1.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/jbyldf5da8s3rnrw7lcn8nwdc2bmib14-fsnotify-0.2.1.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/8yri2ya822p6gllr071ichblg5m6z2p1-newtype-generics-0.5.2.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/w23j9avgladciwwgnlkmzzs69ggcga12-monoid-extras-0.4.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/91q6nh4sa17bz6jdpqgj8frb9d80lg1p-dual-tree-0.2.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/0hfgiqdfcd8lybkkr01pa8x889slj4j9-diagrams-core-1.4.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/mby8ds6hnb4bhv6zgjizs9jy8ahw2j3h-integer-logarithms-1.0.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/s52qq54gignfgrm3m96mbcs8phsc46ki-scientific-0.3.5.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/kzs6bpdigfljq6q2g2fy2i369ap8pdxh-cereal-0.5.5.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/1ji7f07i7mcz9wddc4q7g30k8wiwyk5c-bytes-0.15.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/k7zjzs8aqdc832hp670byx05vkrrppsr-linear-1.20.7/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/52j9zy34bw819k1nkmcrzdnildq9xp84-primitive-0.6.3.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/kxkm61jv39nnrx18wwims196nmhgrlav-vector-0.12.0.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/5x0b2dppljkkiang16k2z0g7azirqdwy-parallel-3.2.1.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/w8bv9kx0czvkh1jsmg8468ga9mr81gcx-adjunctions-4.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/6appq81qbzq2wsijb2h8d6g293l94y4b-kan-extensions-5.0.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/mik60prqbvrn59yrcxc35sgwbsqbj90k-lens-4.15.4/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/ji4wxy5p5a9bfpvmvvgxgn69w9p6lwky-active-0.2.0.13/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/jypkd6m57ydp6kfwxfcvwki82ha7mj9s-diagrams-lib-1.4.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/fnpq0ffjlvq129k2g3slrbvydq4i5c5g-reflection-2.1.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/13kgdqmhq0ja11a626jz76p7lsvpi2c4-unordered-containers-0.2.8.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/8k7npa3z4g3w9akwlzdb1v2yb7757i33-text-1.2.2.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/0d1q5g5xw2j2vk8minsp59jm9n4xxdqj-hashable-1.2.6.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/jlzp224q8x02d57rjygqm5l3k1iypcwj-semigroupoids-5.2.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/n3j1v5lflc45klpmx83s14gj1j7m08b5-profunctors-5.2.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/phvcxml2w4lcb427a1r1p0b19x32byr2-mtl-2.2.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/zyz9id7hiajfd6wml0xsprh7203ix51r-exceptions-0.8.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/zqq6c3zmbm5jvvjpdv40lh76vk6906qc-th-abstraction-0.2.6.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/2cnc7wwld9jgwncis64jgbghia18dwj0-bifunctors-5.5.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/3f6sj4yya3mgzyzd77mq1j8w6dny9qpv-free-4.12.4/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/aaq47c891y6q1mmgm5pyllvrglj7yz7p-data-reify-0.6.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/h3wrgm6x6595hlc2nhwhw0cr7czffdq6-tagged-0.8.5/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/hnwzqpab4m7wznhwflaw1qiv109krpid-base-orphans-0.6/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/88yyasj8x9jjrcvk614c6d5nh8nkasbn-distributive-0.5.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/rhd0av21rvlw1nfp9cn8y0izh6wdz7c5-transformers-compat-0.5.1.4/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/m5744inzifv0vwi9869cql3i5xildyk1-stm-2.4.5.0/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/3sk75i09l81kzxqcxjy2rviyyf6cppkp-StateVar-1.1.0.4/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/31iinn34k0zmw3dlawycsw3laghxwmas-contravariant-1.4.1/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/amq3i7mdm6jpcbc1wna2h13yhcbrrbvk-comonad-5.0.3/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/m0fpjgd4avfjdy543pkfyrnlb3as5l58-ad-4.3.5/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +/nix/store/plm7fql53l3kzijzafzqri398jd9s59f-ghc-8.2.2/nix-support: +propagated-build-inputs: /nix/store/rzjblal4kgvasm7qwcf0d65mh1ajxjy5-vector-binary-instances-0.2.4/nix-support/propagated-build-inputs +Warning: library-dirs: /opt/local/lib/ doesn't exist or isn't a directory +Warning: dynamic-library-dirs: /opt/local/lib/ doesn't exist or isn't a directory +Warning: include-dirs: /opt/local/include/ doesn't exist or isn't a directory +Warning: haddock-interfaces: /nix/store/7jagv5zjaiz2cywccdpn4lvf2h5zf9dv-fail-4.9.0.0/share/doc/x86_64-osx-ghc-8.2.2/fail-4.9.0.0/html/fail.haddock doesn't exist or isn't a file +Warning: haddock-html: /nix/store/7jagv5zjaiz2cywccdpn4lvf2h5zf9dv-fail-4.9.0.0/share/doc/x86_64-osx-ghc-8.2.2/fail-4.9.0.0/html doesn't exist or isn't a directory +Warning: haddock-interfaces: /nix/store/5kblpllg7za260gw9lqhwyl9nsi9zw6a-JuicyPixels-3.2.9.4/share/doc/x86_64-osx-ghc-8.2.2/JuicyPixels-3.2.9.4/html/JuicyPixels.haddock doesn't exist or isn't a file +Warning: haddock-html: /nix/store/5kblpllg7za260gw9lqhwyl9nsi9zw6a-JuicyPixels-3.2.9.4/share/doc/x86_64-osx-ghc-8.2.2/JuicyPixels-3.2.9.4/html doesn't exist or isn't a directory +Warning: haddock-interfaces: /nix/store/mnq2djh7fbll0sgvvpzcc5qpxks30n10-nats-1.1.2/share/doc/x86_64-osx-ghc-8.2.2/nats-1.1.2/html/nats.haddock doesn't exist or isn't a file +Warning: haddock-html: /nix/store/mnq2djh7fbll0sgvvpzcc5qpxks30n10-nats-1.1.2/share/doc/x86_64-osx-ghc-8.2.2/nats-1.1.2/html doesn't exist or isn't a directory + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ ghci +GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help +Prelude> :l Notes.lhs +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:27: error: Variable not in scope: mu + | +160 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:164:5: error: + • No instance for (Fractional [a0]) + arising from the literal ‘1.0e-6’ + • In the expression: 1.0e-6 + In an equation for ‘h’: h = 1.0e-6 + | +164 | h = 1.0e-6 + | ^^^^^^ + +Notes.lhs:166:9: error: + • Ambiguous type variable ‘a0’ arising from the literal ‘1.0’ + prevents the constraint ‘(Fractional a0)’ from being solved. + Relevant bindings include y_n0 :: [a0] (bound at Notes.lhs:166:1) + Probable fix: use a type annotation to specify what ‘a0’ should be. + These potential instances exist: + instance Fractional Double -- Defined in ‘GHC.Float’ + instance Fractional Float -- Defined in ‘GHC.Float’ + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) + • In the expression: 1.0 + In the expression: [1.0, 0.0] + In an equation for ‘y_n0’: y_n0 = [1.0, 0.0] + | +166 | y_n0 = [1.0, 0.0] + | ^^^ + +Notes.lhs:168:37: error: + • No instance for (Num [a0]) arising from a use of ‘*’ + • In the first argument of ‘(/)’, namely + ‘h * f (0.0 + h / 2) (y_n0 + y_n1)’ + In the second argument of ‘(+)’, namely + ‘h * f (0.0 + h / 2) (y_n0 + y_n1) / 2’ + In the expression: y_n0 + h * f (0.0 + h / 2) (y_n0 + y_n1) / 2 + | +168 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + h * f (0.0 + h / 2) (y_n0 + y_n1) / 2) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Notes.lhs:168:37: error: + • No instance for (Fractional [a0]) arising from a use of ‘/’ + • In the second argument of ‘(+)’, namely + ‘h * f (0.0 + h / 2) (y_n0 + y_n1) / 2’ + In the expression: y_n0 + h * f (0.0 + h / 2) (y_n0 + y_n1) / 2 + In the first argument of ‘map’, namely + ‘(\ y_n1 -> y_n0 + h * f (0.0 + h / 2) (y_n0 + y_n1) / 2)’ + | +168 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + h * f (0.0 + h / 2) (y_n0 + y_n1) / 2) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Notes.lhs:168:41: error: + • Ambiguous type variable ‘a0’ arising from a use of ‘f’ + prevents the constraint ‘(Fractional a0)’ from being solved. + Relevant bindings include + y_n1 :: [a0] (bound at Notes.lhs:168:22) + y_n1s :: [[a0]] (bound at Notes.lhs:168:1) + Probable fix: use a type annotation to specify what ‘a0’ should be. + These potential instances exist: + instance Fractional Double -- Defined in ‘GHC.Float’ + instance Fractional Float -- Defined in ‘GHC.Float’ + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) + • In the second argument of ‘(*)’, namely + ‘f (0.0 + h / 2) (y_n0 + y_n1)’ + In the first argument of ‘(/)’, namely + ‘h * f (0.0 + h / 2) (y_n0 + y_n1)’ + In the second argument of ‘(+)’, namely + ‘h * f (0.0 + h / 2) (y_n0 + y_n1) / 2’ + | +168 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + h * f (0.0 + h / 2) (y_n0 + y_n1) / 2) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:171:1: error: + parse error (possibly incorrect indentation or mismatched brackets) +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:168:41: error: + • Couldn't match expected type ‘[a0]’ + with actual type ‘[Double] -> [Double]’ + • Probable cause: ‘f’ is applied to too few arguments + In the second argument of ‘(*)’, namely + ‘f [0.0 + h / 2, (y_n0 + y_n1) / 2]’ + In the second argument of ‘(+)’, namely + ‘h * f [0.0 + h / 2, (y_n0 + y_n1) / 2]’ + In the expression: y_n0 + h * f [0.0 + h / 2, (y_n0 + y_n1) / 2] + • Relevant bindings include + y_n1 :: [a0] (bound at Notes.lhs:168:22) + y_n1s :: [[a0]] (bound at Notes.lhs:168:1) + | +168 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + h * f [0.0 + h / 2, (y_n0 + y_n1) / 2]) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:168:20: error: + • Couldn't match expected type ‘[a1] -> [a1]’ + with actual type ‘(p0 -> [a1], [a1])’ + • In the first argument of ‘map’, namely + ‘(\ y_n1 -> y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1)’ + In the second argument of ‘(:)’, namely + ‘map + (\ y_n1 -> y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1) y_n1s’ + In the expression: + y_n0 + : map + (\ y_n1 -> y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1) y_n1s + • Relevant bindings include + y_n1s :: [[a1]] (bound at Notes.lhs:168:1) + | +168 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Notes.lhs:168:37: error: + • Couldn't match expected type ‘[a1]’ with actual type ‘a0 -> a0’ + • Probable cause: ‘(*)’ is applied to too few arguments + In the second argument of ‘(+)’, namely ‘h * f 0.0’ + In the first argument of ‘(+)’, namely ‘y_n0 + h * f 0.0’ + In the expression: y_n0 + h * f 0.0 + h / 2 + • Relevant bindings include + y_n1s :: [[a1]] (bound at Notes.lhs:168:1) + | +168 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1) y_n1s + | ^^^^^^^^^ + +Notes.lhs:168:71: error: + • Variable not in scope: y_n1 :: [a1] + • Perhaps you meant one of these: + ‘y_n0’ (line 166), ‘y_n1s’ (line 168) + | +168 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1) y_n1s + | ^^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:168:5: error: + • No instance for (Fractional ([a0] -> [a0])) + arising from the literal ‘1.0e-6’ + (maybe you haven't applied a function to enough arguments?) + • In the expression: 1.0e-6 + In an equation for ‘h’: h = 1.0e-6 + | +168 | h = 1.0e-6 + | ^^^^^^ + +Notes.lhs:170:9: error: + • Ambiguous type variable ‘a0’ arising from the literal ‘1.0’ + prevents the constraint ‘(Fractional a0)’ from being solved. + Relevant bindings include y_n0 :: [a0] (bound at Notes.lhs:170:1) + Probable fix: use a type annotation to specify what ‘a0’ should be. + These potential instances exist: + instance Fractional Double -- Defined in ‘GHC.Float’ + instance Fractional Float -- Defined in ‘GHC.Float’ + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) + • In the expression: 1.0 + In the expression: [1.0, 0.0] + In an equation for ‘y_n0’: y_n0 = [1.0, 0.0] + | +170 | y_n0 = [1.0, 0.0] + | ^^^ + +Notes.lhs:172:20: error: + • Couldn't match expected type ‘[a0] -> [a0]’ + with actual type ‘(p0 -> [a0] -> [a0], [a0])’ + • In the first argument of ‘map’, namely + ‘(\ y_n1 -> zipWith (+) y_n0 + h * f 0.0 + h / 2, + zipWith f y_n0 y_n1)’ + In the second argument of ‘(:)’, namely + ‘map + (\ y_n1 -> zipWith (+) y_n0 + h * f 0.0 + h / 2, + zipWith f y_n0 y_n1) + y_n1s’ + In the expression: + y_n0 + : map + (\ y_n1 -> zipWith (+) y_n0 + h * f 0.0 + h / 2, + zipWith f y_n0 y_n1) + y_n1s + • Relevant bindings include + y_n1s :: [[a0]] (bound at Notes.lhs:172:1) + | +172 | y_n1s = y_n0 : map (\y_n1 -> zipWith (+) y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Notes.lhs:172:83: error: + • Variable not in scope: y_n1 :: [a0] + • Perhaps you meant one of these: + ‘y_n0’ (line 170), ‘y_n1s’ (line 172) + | +172 | y_n1s = y_n0 : map (\y_n1 -> zipWith (+) y_n0 + h * f 0.0 + h / 2, zipWith f y_n0 y_n1) y_n1s + | ^^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:175:1: error: + parse error (possibly incorrect indentation or mismatched brackets) +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:168:5: error: + • Ambiguous type variable ‘p0’ arising from the literal ‘1.0e-6’ + prevents the constraint ‘(Fractional p0)’ from being solved. + Relevant bindings include h :: p0 (bound at Notes.lhs:168:1) + Probable fix: use a type annotation to specify what ‘p0’ should be. + These potential instances exist: + instance Fractional Double -- Defined in ‘GHC.Float’ + instance Fractional Float -- Defined in ‘GHC.Float’ + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) + • In the expression: 1.0e-6 + In an equation for ‘h’: h = 1.0e-6 + | +168 | h = 1.0e-6 + | ^^^^^^ + +Notes.lhs:170:9: error: + • Ambiguous type variable ‘p0’ arising from the literal ‘1.0’ + prevents the constraint ‘(Fractional p0)’ from being solved. + Relevant bindings include y_n0 :: [p0] (bound at Notes.lhs:170:1) + Probable fix: use a type annotation to specify what ‘p0’ should be. + These potential instances exist: + instance Fractional Double -- Defined in ‘GHC.Float’ + instance Fractional Float -- Defined in ‘GHC.Float’ + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) + • In the expression: 1.0 + In the expression: [1.0, 0.0] + In an equation for ‘y_n0’: y_n0 = [1.0, 0.0] + | +170 | y_n0 = [1.0, 0.0] + | ^^^ + +Notes.lhs:172:30: error: + • Ambiguous type variable ‘p0’ arising from a use of ‘+’ + prevents the constraint ‘(Num p0)’ from being solved. + Relevant bindings include + y_n1 :: [p0] (bound at Notes.lhs:172:22) + y_n1s :: [[p0]] (bound at Notes.lhs:172:1) + Probable fix: use a type annotation to specify what ‘p0’ should be. + These potential instances exist: + instance Num Integer -- Defined in ‘GHC.Num’ + instance Num Double -- Defined in ‘GHC.Float’ + instance Num Float -- Defined in ‘GHC.Float’ + ...plus three others + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) + • In the expression: + y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1)) + In the first argument of ‘map’, namely + ‘(\ y_n1 + -> y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1)))’ + In the second argument of ‘(:)’, namely + ‘map + (\ y_n1 + -> y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))) + y_n1s’ + | +172 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Notes.lhs:172:48: error: + • Ambiguous type variable ‘p0’ arising from a use of ‘f’ + prevents the constraint ‘(Fractional p0)’ from being solved. + Relevant bindings include + y_n1 :: [p0] (bound at Notes.lhs:172:22) + y_n1s :: [[p0]] (bound at Notes.lhs:172:1) + Probable fix: use a type annotation to specify what ‘p0’ should be. + These potential instances exist: + instance Fractional Double -- Defined in ‘GHC.Float’ + instance Fractional Float -- Defined in ‘GHC.Float’ + ...plus one instance involving out-of-scope types + (use -fprint-potential-instances to see them all) + • In the second argument of ‘(*)’, namely + ‘f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))’ + In the second argument of ‘(+)’, namely + ‘(pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))’ + In the expression: + y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1)) + | +172 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))) y_n1s + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Notes.lhs:172:67: error: + • No instance for (Fractional [p0]) arising from the literal ‘0.5’ + • In the first argument of ‘(*)’, namely ‘0.5’ + In the second argument of ‘f’, namely ‘(0.5 * (y_n0 + y_n1))’ + In the second argument of ‘(*)’, namely + ‘f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))’ + | +172 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))) y_n1s + | ^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:173:67: error: + • No instance for (Fractional [Double]) + arising from the literal ‘0.5’ + • In the first argument of ‘(*)’, namely ‘0.5’ + In the second argument of ‘f’, namely ‘(0.5 * (y_n0 + y_n1))’ + In the second argument of ‘(*)’, namely + ‘f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))’ + | +173 | y_n1s = y_n0 : map (\y_n1 -> y_n0 + (pure h) * f (0.0 + 0.5 * h) (0.5 * (y_n0 + y_n1))) y_n1s + | ^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> head y_n1s +[1.0,0.0] +*Main> y_n1s!!0 +[1.0,0.0] +*Main> y_n1s!!1 +*** Exception: Notes.lhs:(164,1)-(166,13): Non-exhaustive patterns in function f + +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:175:64: error: + • Variable not in scope: y_n1 :: [Double] + • Perhaps you meant one of these: + ‘y_n0’ (line 170), ‘y_n1s’ (line 173) + | +175 | g u' = y_n0 + pure h * f (0.0 + 0.5 * h) ((pure 0.5) * (y_n0 + y_n1)) + | ^^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> g y_n0 +*** Exception: Notes.lhs:(164,1)-(166,13): Non-exhaustive patterns in function f + +*Main> :t f +f :: Fractional a => p -> [a] -> [a] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:164:27: error: Variable not in scope: mu + | +164 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> g y_n0 +*** Exception: 1 +CallStack (from HasCallStack): + error, called at Notes.lhs:167:16 in main:Main +*Main> y_n0 +[1.0,0.0] +*Main> pure h * y_n0 +[1.0e-6] +*Main> (pure h) * y_n0 +[1.0e-6] +*Main> :t zipWith +zipWith :: (a -> b -> c) -> [a] -> [b] -> [c] +*Main> :t repeat +repeat :: a -> [a] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> (pure h) * y_n0 +[1.0e-6] +*Main> (repeat h) * y_n0 +[1.0e-6,0.0] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> head y_n1s +[1.0,0.0] +*Main> head $ tail y_n1s +[1.0,-1.0e-6] +*Main> take 10 y_n1s +[[1.0,0.0],[1.0,-1.0e-6],[0.9999999999995,-1.0e-6],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7]] +*Main> take 100 y_n1s +[[1.0,0.0],[1.0,-1.0e-6],[0.9999999999995,-1.0e-6],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7]] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> take 100 y_n1s +[[1.0,0.0],[1.0,-1.0e-6],[0.9999999999995,-1.0e-6],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7],[0.9999999999995,-9.999999999997499e-7]] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:176:38: error: + • Variable not in scope: y_n1s :: [[Double]] + • Perhaps you meant ‘y_1s’ (line 176) + | +176 | y_1s = y_init : map (rk2Step y_init) y_n1s + | ^^^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> y_1 +[0.9999999999995,-9.999999999997499e-7] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> take 10 y2s + +:45:9: error: + • Variable not in scope: y2s :: [a] + • Perhaps you meant ‘y_2s’ (line 183) +*Main> take 10 y_2s +[[0.9999999999995,-9.999999999997499e-7],[0.9999999999985,-1.99999999999925e-6],[0.9999999999979999,-1.9999999999987497e-6],[0.9999999999979999,-1.9999999999985e-6],[0.9999999999979999,-1.9999999999985e-6],[0.9999999999979999,-1.9999999999985e-6],[0.9999999999979999,-1.9999999999985e-6],[0.9999999999979999,-1.9999999999985e-6],[0.9999999999979999,-1.9999999999985e-6],[0.9999999999979999,-1.9999999999985e-6]] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> take 10 y_2s +[[0.9999999999995,-9.999999999997499e-7],[0.9999999999945,-5.99999999999725e-6],[0.999999999982,-5.999999999984751e-6],[0.999999999982,-5.999999999953503e-6],[0.999999999982,-5.999999999953503e-6],[0.999999999982,-5.999999999953503e-6],[0.999999999982,-5.999999999953503e-6],[0.999999999982,-5.999999999953503e-6],[0.999999999982,-5.999999999953503e-6],[0.999999999982,-5.999999999953503e-6]] +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:160:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +160 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> take 10 y_3s +[[0.999999999982,-5.999999999953503e-6],[0.9999999998319999,-3.099999999950356e-5],[0.9999999995194999,-3.0999999997629366e-5],[0.9999999995194999,-3.099999999372456e-5],[0.9999999995194999,-3.099999999372456e-5],[0.9999999995194999,-3.099999999372456e-5],[0.9999999995194999,-3.099999999372456e-5],[0.9999999995194999,-3.099999999372456e-5],[0.9999999995194999,-3.099999999372456e-5],[0.9999999995194999,-3.099999999372456e-5]] +*Main> :q +Leaving GHCi. + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ ghci +GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help +Prelude> :l Notes.lhs +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:248:1: warning: [-Worphans] + Orphan instance: instance Num a => Num [a] + To avoid this + move the instance declaration to the module of the class or of the type, or + wrap the type with a newtype and declare the instance on the new type. + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:248:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ + +Notes.lhs:256:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: + rk2Step :: Fractional p => p -> p -> [p] -> [p] -> [p] + | +256 | rk2Step h t y_n0 y_n1 = y_n0 + (repeat h) * f (t + 0.5 * h) ((repeat 0.5) * (y_n0 + y_n1)) + | ^^^^^^^ + +Notes.lhs:263:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: + f :: Fractional a => p -> [a] -> [a] + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ + +Notes.lhs:263:1: warning: [-Wincomplete-patterns] + Pattern match(es) are non-exhaustive + In an equation for ‘f’: + Patterns not matched: + _ [] + _ [_] + _ (_:_:_:_) + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:263:3: warning: [-Wunused-matches] + Defined but not used: ‘t’ + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ + +Notes.lhs:267:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_init :: [Double] + | +267 | y_init = [1.0, 0.0] + | ^^^^^^ + +Notes.lhs:277:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_1 :: [Double] + | +277 | y_1 = y_1s !! nC + | ^^^ + +Notes.lhs:279:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_2s :: [[Double]] + | +279 | y_2s = y_1 : map (rk2Step 5.0e-6 1.0e-6 y_1) y_2s + | ^^^^ + +Notes.lhs:281:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_2 :: [Double] + | +281 | y_2 = y_2s !! nC + | ^^^ + +Notes.lhs:283:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_3s :: [[Double]] + | +283 | y_3s = y_2 : map (rk2Step 2.5e-5 6.0e-6 y_2) y_3s + | ^^^^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:248:1: warning: [-Worphans] + Orphan instance: instance Num a => Num [a] + To avoid this + move the instance declaration to the module of the class or of the type, or + wrap the type with a newtype and declare the instance on the new type. + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:248:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ + +Notes.lhs:256:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: + rk2Step :: Fractional p => p -> p -> [p] -> [p] -> [p] + | +256 | rk2Step h t y_n0 y_n1 = y_n0 + (repeat h) * f (t + 0.5 * h) ((repeat 0.5) * (y_n0 + y_n1)) + | ^^^^^^^ + +Notes.lhs:263:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: + f :: Fractional a => p -> [a] -> [a] + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ + +Notes.lhs:263:1: warning: [-Wincomplete-patterns] + Pattern match(es) are non-exhaustive + In an equation for ‘f’: + Patterns not matched: + _ [] + _ [_] + _ (_:_:_:_) + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:263:3: warning: [-Wunused-matches] + Defined but not used: ‘t’ + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ + +Notes.lhs:267:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_init :: [Double] + | +267 | y_init = [1.0, 0.0] + | ^^^^^^ + +Notes.lhs:277:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_1 :: [Double] + | +277 | y_1 = y_1s !! nC + | ^^^ + +Notes.lhs:281:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_2 :: [Double] + | +281 | y_2 = y_2s !! nC + | ^^^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:277:11: error: + The type signature for ‘y_3’ lacks an accompanying binding + | +277 | y_1, y_2, y_3 :: [Double] + | ^^^ +Failed, no modules loaded. +Prelude> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:248:1: warning: [-Worphans] + Orphan instance: instance Num a => Num [a] + To avoid this + move the instance declaration to the module of the class or of the type, or + wrap the type with a newtype and declare the instance on the new type. + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:248:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ + +Notes.lhs:256:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: + rk2Step :: Fractional p => p -> p -> [p] -> [p] -> [p] + | +256 | rk2Step h t y_n0 y_n1 = y_n0 + (repeat h) * f (t + 0.5 * h) ((repeat 0.5) * (y_n0 + y_n1)) + | ^^^^^^^ + +Notes.lhs:263:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: + f :: Fractional a => p -> [a] -> [a]o + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ + +Notes.lhs:263:1: warning: [-Wincomplete-patterns] + Pattern match(es) are non-exhaustive + In an equation for ‘f’: + Patterns not matched: + _ [] + _ [_] + _ (_:_:_:_) + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:263:3: warning: [-Wunused-matches] + Defined but not used: ‘t’ + | +263 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ + +Notes.lhs:267:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: y_init :: [Double] + | +267 | y_init = [1.0, 0.0] + | ^^^^^^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:248:1: warning: [-Worphans] + Orphan instance: instance Num a => Num [a] + To avoid this + move the instance declaration to the module of the class or of the type, or + wrap the type with a newtype and declare the instance on the new type. + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:248:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ + +Notes.lhs:256:1: warning: [-Wmissing-signatures] + Top-level binding with no type signature: + rk2Step :: Fractional a => a -> a -> [a] -> [a] -> [a] + | +256 | rk2Step h t y_n0 y_n1 = y_n0 + (repeat h) * f (t + 0.5 * h) ((repeat 0.5) * (y_n0 + y_n1)) + | ^^^^^^^ + +Notes.lhs:264:1: warning: [-Wincomplete-patterns] + Pattern match(es) are non-exhaustive + In an equation for ‘f’: + Patterns not matched: + _ [] + _ [_] + _ (_:_:_:_) + | +264 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:264:3: warning: [-Wunused-matches] + Defined but not used: ‘t’ + | +264 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:248:1: warning: [-Worphans] + Orphan instance: instance Num a => Num [a] + To avoid this + move the instance declaration to the module of the class or of the type, or + wrap the type with a newtype and declare the instance on the new type. + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:248:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +248 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ + +Notes.lhs:265:1: warning: [-Wincomplete-patterns] + Pattern match(es) are non-exhaustive + In an equation for ‘f’: + Patterns not matched: + _ [] + _ [_] + _ (_:_:_:_) + | +265 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^... + +Notes.lhs:265:3: warning: [-Wunused-matches] + Defined but not used: ‘t’ + | +265 | f t [y0, y1] = [y1, -y0 - mu * y1 * (y0 * y0 - 1)] + | ^ +Ok, one module loaded. +*Main> :r +[1 of 1] Compiling Main ( Notes.lhs, interpreted ) + +Notes.lhs:246:10: warning: [-Wmissing-methods] + • No explicit implementation for + ‘abs’, ‘signum’, ‘fromInteger’, and (either ‘negate’ or ‘-’) + • In the instance declaration for ‘Num [a]’ + | +246 | instance Num a => Num [a] where + | ^^^^^^^^^^^^^^^^ +Ok, one module loaded. +*Main> :q +Leaving GHCi. + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --ghci --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --ghci --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ BlogLiterately --ghci --math=mathjax Notes.lhs > Notes.html + +[nix-shell:~/Dropbox/Tidy/NumMethHaskell/symplectic-integrators]$ ghci +GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help +Prelude> :l Notes.lhs +[1 of 1] Compiling RK2Imp ( Notes.lhs, interpreted ) +Ok, one module loaded. +*RK2Imp> :version +unknown command ':version' +use :? for help. +*RK2Imp> :? + Commands available from the prompt: + + evaluate/run + : repeat last command + :{\n ..lines.. \n:}\n multiline command + :add [*] ... add module(s) to the current target set + :browse[!] [[*]] display the names defined by module + (!: more details; *: all top-level names) + :cd change directory to + :cmd run the commands returned by ::IO String + :complete [] list completions for partial input string + :ctags[!] [] create tags file for Vi (default: "tags") + (!: use regex instead of line number) + :def define command : (later defined command has + precedence, :: is always a builtin command) + :edit edit file + :edit edit last module + :etags [] create tags file for Emacs (default: "TAGS") + :help, :? display this list of commands + :info[!] [ ...] display information about the given names + (!: do not filter instances) + :issafe [] display safe haskell information of module + :kind[!] show the kind of + (!: also print the normalised type) + :load[!] [*] ... load module(s) and their dependents + (!: defer type errors) + :main [ ...] run the main function with the given arguments + :module [+/-] [*] ... set the context for expression evaluation + :quit exit GHCi + :reload[!] reload the current module set + (!: defer type errors) + :run function [ ...] run the function with the given arguments + :script run the script + :type show the type of + :type +d show the type of , defaulting type variables + :type +v show the type of , with its specified tyvars + :undef undefine user-defined command : + :! run the shell command + + -- Commands for debugging: + + :abandon at a breakpoint, abandon current computation + :back [] go back in the history N steps (after :trace) + :break [] [] set a breakpoint at the specified location + :break set a breakpoint on the specified function + :continue resume after a breakpoint + :delete delete the specified breakpoint + :delete * delete all breakpoints + :force print , forcing unevaluated parts + :forward [] go forward in the history N step s(after :back) + :history [] after :trace, show the execution history + :list show the source code around current breakpoint + :list show the source code for + :list [] show the source code around line number + :print [ ...] show a value without forcing its computation + :sprint [ ...] simplified version of :print + :step single-step after stopping at a breakpoint + :step single-step into + :steplocal single-step within the current top-level binding + :stepmodule single-step restricted to the current module + :trace trace after stopping at a breakpoint + :trace evaluate with tracing on (see :history) + + -- Commands for changing settings: + + :set