diff --git a/hmatrix-tests.cabal b/hmatrix-tests.cabal
--- a/hmatrix-tests.cabal
+++ b/hmatrix-tests.cabal
@@ -1,15 +1,15 @@
 Name:               hmatrix-tests
-Version:            0.1.0.0
+Version:            0.2
 License:            GPL
 License-file:       LICENSE
 Author:             Alberto Ruiz
 Maintainer:         Alberto Ruiz <aruiz@um.es>
 Stability:          provisional
-Homepage:           http://perception.inf.um.es/hmatrix
+Homepage:           https://github.com/albertoruiz/hmatrix
 Synopsis:           Tests for hmatrix
 Description:        Tests for hmatrix
 Category:           Math
-tested-with:        GHC==7.0.4
+tested-with:        GHC==7.4
 
 cabal-version:      >=1.8
 
@@ -21,7 +21,7 @@
 library
 
     Build-Depends:      base >= 4 && < 5,
-                        hmatrix >= 0.13,
+                        hmatrix >= 0.14,
                         QuickCheck >= 2, HUnit, random
 
     hs-source-dirs:     src
@@ -36,7 +36,7 @@
 
 source-repository head
     type:     git
-    location: https://github.com/AlbertoRuiz/hmatrix
+    location: https://github.com/albertoruiz/hmatrix
 
 Test-Suite basic
     Build-Depends: base, hmatrix-tests
diff --git a/src/Numeric/LinearAlgebra/Tests.hs b/src/Numeric/LinearAlgebra/Tests.hs
--- a/src/Numeric/LinearAlgebra/Tests.hs
+++ b/src/Numeric/LinearAlgebra/Tests.hs
@@ -43,6 +43,8 @@
 import Debug.Trace
 import Control.Monad(when)
 
+import Data.Packed.ST
+
 import Test.QuickCheck(Arbitrary,arbitrary,coarbitrary,choose,vector
                       ,sized,classify,Testable,Property
                       ,quickCheckWithResult,maxSize,stdArgs,shrink)
@@ -167,11 +169,14 @@
 
 ---------------------------------------------------------------------
 
-odeTest = utest "ode" (last (toLists sol) ~~ [-1.7588880332411019, 8.364348908711941e-2])
-    where sol = odeSolveV RK8pd 1E-6 1E-6 0 (l2v $ vanderpol 10) Nothing (fromList [1,0]) ts
-          ts = linspace 101 (0,100)
-          l2v f = \t -> fromList  . f t . toList
-          vanderpol mu _t [x,y] = [y, -x + mu * y * (1-x^2) ]
+odeTest = utest "ode" (last (toLists sol) ~~ newsol)
+  where
+    sol = odeSolveV RK8pd 1E-6 1E-6 0 (l2v $ vanderpol 10) (fromList [1,0]) ts
+    ts = linspace 101 (0,100)
+    l2v f = \t -> fromList  . f t . toList
+    vanderpol mu _t [x,y] = [y, -x + mu * y * (1-x^2) ]
+    newsol = [-1.758888036617841,  8.364349410519058e-2]
+    -- oldsol = [-1.7588880332411019, 8.364348908711941e-2]
 
 ---------------------------------------------------------------------
 
@@ -622,6 +627,7 @@
 runBenchmarks = do
     solveBench
     subBench
+    mkVecBench
     multBench
     cholBench
     svdBench
@@ -638,6 +644,14 @@
     printf "%6.2f s CPU\n" $ (fromIntegral (t1 - t0) / (10^12 :: Double)) :: IO ()
     return ()
 
+timeR msg act = do
+    putStr (msg++" ")
+    t0 <- getCPUTime
+    putStr (show act)
+    t1 <- getCPUTime
+    printf "%6.2f s CPU\n" $ (fromIntegral (t1 - t0) / (10^12 :: Double)) :: IO ()
+    return ()
+
 --------------------------------
 
 manymult n = foldl1' (<>) (map rot2 angles) where
@@ -650,6 +664,37 @@
               s = sin a
 
 multb n = foldl1' (<>) (replicate (10^6) (ident n :: Matrix Double))
+
+--------------------------------
+
+manyvec0 xs = sum $ map (\x -> x + x**2 + x**3) xs
+manyvec1 xs = sumElements $ fromRows $ map (\x -> fromList [x,x**2,x**3]) xs
+manyvec5 xs = sumElements $ fromRows $ map (\x -> vec3 x (x**2) (x**3)) xs
+
+
+manyvec2 xs = sum $ map (\x -> sqrt(x^2 + (x**2)^2 +(x**3)^2)) xs
+manyvec3 xs = sum $ map (pnorm PNorm2 . (\x -> fromList [x,x**2,x**3])) xs
+
+manyvec4 xs = sum $ map (pnorm PNorm2 . (\x -> vec3 x (x**2) (x**3))) xs
+
+vec3 :: Double -> Double -> Double -> Vector Double
+vec3 a b c = runSTVector $ do
+    v <- newUndefinedVector 3
+    writeVector v 0 a
+    writeVector v 1 b
+    writeVector v 2 c
+    return v
+
+mkVecBench = do
+    let n = 1000000
+        xs = toList $ linspace n (0,1::Double)
+    putStr "\neval data... "; print (sum xs)
+    timeR "listproc        " $ manyvec0 xs
+    timeR "fromList matrix " $ manyvec1 xs
+    timeR "vec3 matrix     " $ manyvec5 xs
+    timeR "listproc norm   " $ manyvec2 xs
+    timeR "norm fromList   " $ manyvec3 xs
+    timeR "norm vec3       " $ manyvec4 xs
 
 --------------------------------
 
