From 505879855c6fa83b81ab31b57daaf8034634a19e Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Sun, 7 Sep 2014 12:04:03 +0200 Subject: fix min/maxIndex bug, add tests, thanks --- packages/base/THANKS.md | 2 ++ packages/base/hmatrix.cabal | 2 +- packages/base/src/C/vector-aux.c | 8 ++++---- packages/tests/hmatrix-tests.cabal | 2 +- packages/tests/src/Numeric/LinearAlgebra/Tests.hs | 21 +++++++++++++++++++++ 5 files changed, 29 insertions(+), 6 deletions(-) (limited to 'packages') diff --git a/packages/base/THANKS.md b/packages/base/THANKS.md index e17306b..07b75b8 100644 --- a/packages/base/THANKS.md +++ b/packages/base/THANKS.md @@ -157,3 +157,5 @@ module reorganization, monadic mapVectorM, and many other improvements. - Denis Laxalde separated the gsl tests from the base ones. +- Ian Ross reported the max/minIndex bug. + diff --git a/packages/base/hmatrix.cabal b/packages/base/hmatrix.cabal index 6858d7d..c2efadc 100644 --- a/packages/base/hmatrix.cabal +++ b/packages/base/hmatrix.cabal @@ -1,5 +1,5 @@ Name: hmatrix -Version: 0.16.0.4 +Version: 0.16.0.5 License: BSD3 License-file: LICENSE Author: Alberto Ruiz diff --git a/packages/base/src/C/vector-aux.c b/packages/base/src/C/vector-aux.c index 2f47c8f..a7eaa08 100644 --- a/packages/base/src/C/vector-aux.c +++ b/packages/base/src/C/vector-aux.c @@ -172,7 +172,7 @@ double vector_min(KDVEC(x)) { double vector_max_index(KDVEC(x)) { int k, r = 0; for (k = 1; kxp[0]) { + if(xp[k]>xp[r]) { r = k; } } @@ -182,7 +182,7 @@ double vector_max_index(KDVEC(x)) { double vector_min_index(KDVEC(x)) { int k, r = 0; for (k = 1; kxp[0]) { + if(xp[k]>xp[r]) { r = k; } } @@ -247,7 +247,7 @@ float vector_max_index_f(KFVEC(x)) { float vector_min_index_f(KFVEC(x)) { int k, r = 0; for (k = 1; k IO () runTests n = do let test p = qCheck n p + putStrLn "------ index" + test( \m -> indexProp id flatten (single (m :: RM)) ) + test( \v -> indexProp id id (single (v :: Vector Double)) ) + test( \m -> indexProp id flatten (m :: RM) ) + test( \v -> indexProp id id (v :: Vector Double) ) + test( \m -> indexProp magnitude flatten (single (m :: CM)) ) + test( \v -> indexProp magnitude id (single (v :: Vector (Complex Double))) ) + test( \m -> indexProp magnitude flatten (m :: CM) ) + test( \v -> indexProp magnitude id (v :: Vector (Complex Double)) ) putStrLn "------ mult Double" test (multProp1 10 . rConsist) test (multProp1 10 . cConsist) -- cgit v1.2.3