From 11095a22c59bed6a011723641dfb782415e2c02b Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Mon, 25 May 2015 08:46:59 +0200 Subject: range --- packages/base/src/C/vector-aux.c | 8 ++++++++ packages/base/src/Data/Packed/Internal/Numeric.hs | 2 +- packages/base/src/Numeric/LinearAlgebra/Data.hs | 4 ++-- packages/base/src/Numeric/LinearAlgebra/Static.hs | 2 +- packages/base/src/Numeric/Vectorized.hs | 13 ++++++++++++- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/base/src/C/vector-aux.c b/packages/base/src/C/vector-aux.c index b67275f..134ca7a 100644 --- a/packages/base/src/C/vector-aux.c +++ b/packages/base/src/C/vector-aux.c @@ -1040,3 +1040,11 @@ int div_vector(int m, KIVEC(v), IVEC(r)) { OK } +int range_vector(IVEC(r)) { + int k; + for(k=0; k),fromList,takeDiag,svd,eig,eigSH,eigSH', eigenvalues,eigenvaluesSH,eigenvaluesSH',build, - qr,size,app,mul,dot,chol) + qr,size,app,mul,dot,chol,range) import qualified Numeric.LinearAlgebra as LA import Data.Proxy(Proxy) import Numeric.LinearAlgebra.Static.Internal diff --git a/packages/base/src/Numeric/Vectorized.hs b/packages/base/src/Numeric/Vectorized.hs index 70bd48b..d0ff562 100644 --- a/packages/base/src/Numeric/Vectorized.hs +++ b/packages/base/src/Numeric/Vectorized.hs @@ -19,7 +19,8 @@ module Numeric.Vectorized ( FunCodeVV(..), vectorZipR, vectorZipC, vectorZipF, vectorZipQ, vectorZipI, vectorScan, saveMatrix, Seed, RandDist(..), randomVector, - sortVector, roundVector + sortVector, roundVector, + range ) where import Data.Packed.Internal.Common @@ -389,3 +390,13 @@ roundVector v = unsafePerformIO $ do foreign import ccall unsafe "round_vector" c_round_vector :: TVV +-------------------------------------------------------------------------------- + +range :: Int -> Idxs +range n = unsafePerformIO $ do + r <- createVector n + app1 c_range_vector vec r "range" + return r + +foreign import ccall unsafe "range_vector" c_range_vector :: CV CInt (IO CInt) + -- cgit v1.2.3