summaryrefslogtreecommitdiff
path: root/lib/Data
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Data')
-rw-r--r--lib/Data/Packed/Internal/Vector.hs18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Data/Packed/Internal/Vector.hs b/lib/Data/Packed/Internal/Vector.hs
index f48c4b2..e85ba6e 100644
--- a/lib/Data/Packed/Internal/Vector.hs
+++ b/lib/Data/Packed/Internal/Vector.hs
@@ -23,6 +23,7 @@ module Data.Packed.Internal.Vector (
23 createVector, vec, 23 createVector, vec,
24 asComplex, asReal, float2DoubleV, double2FloatV, 24 asComplex, asReal, float2DoubleV, double2FloatV,
25 stepF, stepD, condF, condD, 25 stepF, stepD, condF, condD,
26 conjugateQ, conjugateC,
26 fwriteVector, freadVector, fprintfVector, fscanfVector, 27 fwriteVector, freadVector, fprintfVector, fscanfVector,
27 cloneVector, 28 cloneVector,
28 unsafeToForeignPtr, 29 unsafeToForeignPtr,
@@ -344,7 +345,22 @@ condD x y l e g = unsafePerformIO $ do
344foreign import ccall "condF" c_condF :: CInt -> PF -> CInt -> PF -> CInt -> PF -> TFFF 345foreign import ccall "condF" c_condF :: CInt -> PF -> CInt -> PF -> CInt -> PF -> TFFF
345foreign import ccall "condD" c_condD :: CInt -> PD -> CInt -> PD -> CInt -> PD -> TVVV 346foreign import ccall "condD" c_condD :: CInt -> PD -> CInt -> PD -> CInt -> PD -> TVVV
346 347
347---------------------------------------------------------------- 348--------------------------------------------------------------------------------
349
350conjugateAux fun x = unsafePerformIO $ do
351 v <- createVector (dim x)
352 app2 fun vec x vec v "conjugateAux"
353 return v
354
355conjugateQ :: Vector (Complex Float) -> Vector (Complex Float)
356conjugateQ = conjugateAux c_conjugateQ
357foreign import ccall "conjugateQ" c_conjugateQ :: TQVQV
358
359conjugateC :: Vector (Complex Double) -> Vector (Complex Double)
360conjugateC = conjugateAux c_conjugateC
361foreign import ccall "conjugateC" c_conjugateC :: TCVCV
362
363--------------------------------------------------------------------------------
348 364
349cloneVector :: Storable t => Vector t -> IO (Vector t) 365cloneVector :: Storable t => Vector t -> IO (Vector t)
350cloneVector v = do 366cloneVector v = do