packages feed

arrayfire 0.1.0.0 → 0.2.0.0

raw patch · 7 files changed

+39/−31 lines, 7 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- ArrayFire.LAPACK: pinverse :: AFType a => Array a -> Double -> MatProp -> Array a
- ArrayFire.Arith: imag :: AFType a => Array a -> Array a
+ ArrayFire.Arith: imag :: (AFType a, AFType (Complex b), RealFrac a, RealFrac b) => Array (Complex b) -> Array a
- ArrayFire.Arith: real :: AFType a => Array a -> Array a
+ ArrayFire.Arith: real :: (AFType a, AFType (Complex b), RealFrac a, RealFrac b) => Array (Complex b) -> Array a

Files

arrayfire.cabal view
@@ -1,5 +1,5 @@ name:                arrayfire-version:             0.1.0.0+version:             0.2.0.0 synopsis:            Haskell bindings to the ArrayFire general-purpose GPU library homepage:            https://github.com/arrayfire/arrayfire-haskell license:             BSD3@@ -96,7 +96,7 @@     extra-lib-dirs:       /opt/arrayfire/lib     ld-options:-      -Wl -rpath /opt/arrayfire/lib+      -Wl,-rpath /opt/arrayfire/lib  executable main   hs-source-dirs:
src/ArrayFire/Arith.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE TypeApplications    #-}+{-# LANGUAGE FlexibleContexts    #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE ViewPatterns        #-} --------------------------------------------------------------------------------@@ -24,10 +25,11 @@ -------------------------------------------------------------------------------- module ArrayFire.Arith where -import Prelude                  (Bool(..), ($), (.), flip, fromEnum, fromIntegral, Real)+import Prelude                  (Bool(..), ($), (.), flip, fromEnum, fromIntegral, Real, RealFrac)  import Data.Coerce import Data.Proxy+import Data.Complex  import ArrayFire.FFI import ArrayFire.Internal.Arith@@ -1195,31 +1197,31 @@  -- | Execute real ----- >>> A.real (A.vector @Double 10 [1..])+-- >>> A.real (A.scalar @(Complex Double) (10 :+ 11)) :: Array Double -- ArrayFire Array -- [10 1 1 1]---    1.0000     2.0000     3.0000     4.0000     5.0000     6.0000     7.0000     8.0000     9.0000    10.0000+--    10.0000 real-  :: AFType a-  => Array a+  :: (AFType a, AFType (Complex b), RealFrac a, RealFrac b)+  => Array (Complex b)   -- ^ Input array   -> Array a   -- ^ Result of calling 'real'-real = flip op1 af_real+real = flip op1d af_real  -- | Execute imag ----- >>> A.imag (A.vector @Double 10 [1..])+-- >>> A.imag (A.scalar @(Complex Double) (10 :+ 11)) :: Array Double -- ArrayFire Array -- [10 1 1 1]---    0.0000     0.0000     0.0000     0.0000     0.0000     0.0000     0.0000     0.0000     0.0000     0.0000+--    11.0000 imag-  :: AFType a-  => Array a+  :: (AFType a, AFType (Complex b), RealFrac a, RealFrac b)+  => Array (Complex b)   -- ^ Input array   -> Array a   -- ^ Result of calling 'imag'-imag = flip op1 af_imag+imag = flip op1d af_imag  -- | Execute conjg --
src/ArrayFire/FFI.hs view
@@ -220,6 +220,22 @@          throwAFError =<< op p ptr          peek p +op1d+  :: Array a+  -> (Ptr AFArray -> AFArray -> IO AFErr)+  -> Array b+{-# NOINLINE op1d #-}+op1d (Array fptr1) op =+  unsafePerformIO $ do+    withForeignPtr fptr1 $ \ptr1 -> do+      ptr <-+        alloca $ \ptrInput -> do+          throwAFError =<< op ptrInput ptr1+          peek ptrInput+      fptr <- newForeignPtr af_release_array_finalizer ptr+      pure (Array fptr)++ op1   :: Array a   -> (Ptr AFArray -> AFArray -> IO AFErr)
src/ArrayFire/Internal/Image.hsc view
@@ -93,7 +93,3 @@     af_canny :: Ptr AFArray -> AFArray -> AFCannyThreshold -> Float -> Float -> CUInt -> CBool -> IO AFErr foreign import ccall unsafe "af_anisotropic_diffusion"     af_anisotropic_diffusion :: Ptr AFArray -> AFArray -> Float -> Float -> CUInt -> AFFluxFunction -> AFDiffusionEq -> IO AFErr-foreign import ccall unsafe "af_iterative_deconv"-    af_iterative_deconv :: Ptr AFArray -> AFArray -> AFArray -> CUInt -> Float -> AFIterativeDeconvAlgo -> IO AFErr-foreign import ccall unsafe "af_inverse_deconv"-    af_inverse_deconv :: Ptr AFArray -> AFArray -> AFArray -> Float -> AFInverseDeconvAlgo -> IO AFErr
src/ArrayFire/Internal/LAPACK.hsc view
@@ -29,8 +29,6 @@     af_solve_lu :: Ptr AFArray -> AFArray -> AFArray -> AFArray -> AFMatProp -> IO AFErr foreign import ccall unsafe "af_inverse"     af_inverse :: Ptr AFArray -> AFArray -> AFMatProp -> IO AFErr-foreign import ccall unsafe "af_pinverse"-    af_pinverse :: Ptr AFArray -> AFArray -> Double -> AFMatProp -> IO AFErr foreign import ccall unsafe "af_rank"     af_rank :: Ptr CUInt -> AFArray -> Double -> IO AFErr foreign import ccall unsafe "af_det"
src/ArrayFire/Internal/Signal.hsc view
@@ -10,10 +10,6 @@     af_approx1 :: Ptr AFArray -> AFArray -> AFArray -> AFInterpType -> Float -> IO AFErr foreign import ccall unsafe "af_approx2"     af_approx2 :: Ptr AFArray -> AFArray -> AFArray -> AFArray -> AFInterpType -> Float -> IO AFErr-foreign import ccall unsafe "af_approx1_uniform"-    af_approx1_uniform :: Ptr AFArray -> AFArray -> AFArray -> CInt -> Double -> Double -> AFInterpType -> Float -> IO AFErr-foreign import ccall unsafe "af_approx2_uniform"-    af_approx2_uniform :: Ptr AFArray -> AFArray -> AFArray -> CInt -> Double -> Double -> AFArray -> CInt -> Double -> Double -> AFInterpType -> Float -> IO AFErr foreign import ccall unsafe "af_fft"     af_fft :: Ptr AFArray -> AFArray -> Double -> DimT -> IO AFErr foreign import ccall unsafe "af_fft_inplace"
src/ArrayFire/LAPACK.hs view
@@ -199,14 +199,14 @@ -- -- [ArrayFire Docs](http://arrayfire.org/docs/group__lapack__factor__func__p_inv.htm) ---pinverse-  :: AFType a-  => Array a-  -> Double-  -> MatProp-  -> Array a-pinverse a d m =-  a `op1` (\x y  -> af_pinverse x y d (toMatProp m))+-- pinverse+--   :: AFType a+--   => Array a+--   -> Double+--   -> MatProp+--   -> Array a+-- pinverse a d m =+--   a `op1` (\x y  -> af_pinverse x y d (toMatProp m))  -- | Find the rank of the input matrix --