From 5a00f4cce2894237dde647da1d067e7730d0cc29 Mon Sep 17 00:00:00 2001 From: Dominic Steinitz Date: Sun, 20 May 2018 16:50:32 +0100 Subject: Add the example fixing printing --- examples/VectorShow.hs | 43 +++++++++++++++++++++++++++++++++++++++++++ examples/examples.cabal | 8 ++++++++ 2 files changed, 51 insertions(+) create mode 100644 examples/VectorShow.hs diff --git a/examples/VectorShow.hs b/examples/VectorShow.hs new file mode 100644 index 0000000..c56d772 --- /dev/null +++ b/examples/VectorShow.hs @@ -0,0 +1,43 @@ +{-# LANGUAGE DataKinds #-} + +module Main + ( main + ) where + +import Numeric.LinearAlgebra.Static +import qualified Numeric.LinearAlgebra as LA +import qualified Numeric.GSL.Minimization as Min + +u :: R 4 +u = vec4 10 20 30 40 + +v :: R 5 +v = vec2 5 0 & 0 & 3 & 7 + +b :: L 4 3 +b = matrix + [ 2, 0,-1 + , 1, 1, 7 + , 5, 3, 1 + , 2, 8, 0 ] :: L 4 3 + +w :: R 10 +w = vector [1..10] :: R 10 + +f :: [Double] -> Double +f [x,y] = 10*(x-1)^(2::Int) + 20*(y-2)^(2::Int) + 30 +f _ = error "f only defined for exactly 2 elements" + +main :: IO () +main = do + print u + print v + print b + print w + print $ diag u + print (eye + 2 :: Sq 4) + print $ LA.diag (LA.fromList [1,2,3 :: Double]) + -- + let (s,p) = Min.minimize Min.NMSimplex2 1E-2 30 [1,1] f [5,7] + print s + print p diff --git a/examples/examples.cabal b/examples/examples.cabal index 07ec571..286b2db 100644 --- a/examples/examples.cabal +++ b/examples/examples.cabal @@ -27,3 +27,11 @@ executable butcherTableau hmatrix-sundials, pretty default-language: Haskell2010 + +executable vectorShow + main-is: VectorShow.hs + build-depends: base >=4.10 && <4.11, + hmatrix, + hmatrix-gsl + default-language: Haskell2010 + -- cgit v1.2.3