casadi-bindings 2.2.0.8 → 2.3.0.0
raw patch · 9 files changed
+82/−49 lines, 9 filesdep ~casadi-bindings-coredep ~casadi-bindings-internal
Dependency ranges changed: casadi-bindings-core, casadi-bindings-internal
Files
- casadi-bindings.cabal +3/−3
- src/Casadi/CMatrix.hs +3/−1
- src/Casadi/Callback.hs +4/−4
- src/Casadi/DMatrix.hs +26/−16
- src/Casadi/Function.hs +4/−3
- src/Casadi/IOSchemes.hs +3/−3
- src/Casadi/MX.hs +18/−8
- src/Casadi/SX.hs +20/−10
- src/Casadi/Sparsity.hs +1/−1
casadi-bindings.cabal view
@@ -1,5 +1,5 @@ name: casadi-bindings-version: 2.2.0.8+version: 2.3.0.0 synopsis: mid-level bindings to CasADi category: Numerical, Math description:@@ -61,8 +61,8 @@ cereal, binary, vector-binary-instances,- casadi-bindings-internal == 0.1.2.1,- casadi-bindings-core == 2.2.0.2+ casadi-bindings-internal == 0.1.3.0,+ casadi-bindings-core == 2.3.0.0 default-language: Haskell2010 C-sources: cbits/handwritten.cpp
src/Casadi/CMatrix.hs view
@@ -43,9 +43,11 @@ triu2symm :: a -> a tril2symm :: a -> a copy :: a -> IO a- dense :: a -> a+ densify :: a -> a fromDMatrix :: DMatrix -> a fromDVector :: V.Vector Double -> a+ fromDouble :: Double -> a+ allocEmpty :: IO a vertslice :: CMatrix a => a -> V.Vector Int -> V.Vector a
src/Casadi/Callback.hs view
@@ -53,13 +53,13 @@ -- | add a callback to an NLPSolver-makeDerivativeGenerator :: (Function -> Int -> Int -> IO Function) -> IO DerivativeGenerator+makeDerivativeGenerator :: (Function -> Int -> IO Function) -> IO DerivativeGenerator makeDerivativeGenerator callback = do -- safely wrap the callback into the C-friendly version- let callback' :: Ptr Function' -> CInt -> CInt -> IO (Ptr Function')- callback' ptrFx nfwd nadj = do+ let callback' :: Ptr Function' -> CInt -> IO (Ptr Function')+ callback' ptrFx nder = do foreignCFun <- newForeignPtr_ ptrFx- Function fun <- callback (Function foreignCFun) (fromIntegral nfwd) (fromIntegral nadj)+ Function fun <- callback (Function foreignCFun) (fromIntegral nder) return (unsafeForeignPtrToPtr fun) -- turn the callback into a FunPtr
src/Casadi/DMatrix.hs view
@@ -3,7 +3,7 @@ module Casadi.DMatrix ( DMatrix , dsparsify- , ddata+ , dnonzeros ) where import qualified Data.Vector as V@@ -28,7 +28,7 @@ putWith :: Monad m => (Sparsity -> m ()) -> (V.Vector Double -> m ()) -> DMatrix -> m () putWith put putVector x = do put (sparsity x)- putVector (ddata x)+ putVector (dnonzeros x) -- Data.Vector.Cereal looks deprecated, it's not in master anymore instance S.Serialize DMatrix where@@ -42,16 +42,16 @@ conjugate = id fromSparseData :: Sparsity -> V.Vector Double -> DMatrix-fromSparseData s d = unsafePerformIO (dmatrix__6 s d)+fromSparseData s d = unsafePerformIO (dmatrix__1 s d) {-# NOINLINE fromSparseData #-} dsparsify :: DMatrix -> DMatrix dsparsify x = unsafePerformIO (dmatrix_zz_sparsify__0 x) {-# NOINLINE dsparsify #-} -ddata :: DMatrix -> V.Vector Double-ddata x = unsafePerformIO (dmatrix_data__0 x)-{-# NOINLINE ddata #-}+dnonzeros :: DMatrix -> V.Vector Double+dnonzeros x = unsafePerformIO (dmatrix_nonzeros x)+{-# NOINLINE dnonzeros #-} instance Show DMatrix where show x = unsafePerformIO (dmatrix_getDescription x)@@ -98,11 +98,17 @@ {-# NOINLINE zerosSp #-} solve x y = unsafePerformIO (C.solve__3 x y) {-# NOINLINE solve #-}- indexed m sx sy = unsafePerformIO (dmatrix_getSub__3 m False sx sy)+ indexed m spx spy = unsafePerformIO $ do+ ret <- allocEmpty :: IO DMatrix+ dmatrix_get__3 m ret False spx spy+ return ret {-# NOINLINE indexed #-}- sparsity x = unsafePerformIO (dmatrix_sparsityRef__0 x)+ sparsity x = unsafePerformIO (dmatrix_sparsityRef x) {-# NOINLINE sparsity #-}- getNZ m s = unsafePerformIO (dmatrix_getNZ__1 m False s)+ getNZ m sp = unsafePerformIO $ do+ ret <- allocEmpty :: IO DMatrix+ dmatrix_getNZ__1 m ret False sp+ return ret {-# NOINLINE getNZ #-} setNZ m y s = dmatrix_setNZ__1 m y False s triu x = unsafePerformIO (dmatrix_zz_triu__0 x)@@ -113,13 +119,17 @@ {-# NOINLINE triu2symm #-} tril2symm x = unsafePerformIO (dmatrix_zz_tril2symm x) {-# NOINLINE tril2symm #-}- copy m = dmatrix__10 m- dense x = unsafePerformIO (dmatrix_zz_dense x)- {-# NOINLINE dense #-}+ copy m = dmatrix__9 m+ densify x = unsafePerformIO (dmatrix_zz_densify x)+ {-# NOINLINE densify #-} fromDMatrix = id- fromDVector x = unsafePerformIO (dmatrix__4 x)+ fromDVector x = unsafePerformIO (dmatrix__0 x) {-# NOINLINE fromDVector #-}+ fromDouble x = unsafePerformIO (dmatrix__5 x)+ {-# NOINLINE fromDouble #-}+ allocEmpty = dmatrix__10 + instance Num DMatrix where (+) x y = unsafePerformIO (dmatrix_zz_plus x y) {-# NOINLINE (+) #-}@@ -127,7 +137,7 @@ {-# NOINLINE (-) #-} (*) x y = unsafePerformIO (dmatrix_zz_times x y) {-# NOINLINE (*) #-}- fromInteger x = unsafePerformIO (dmatrix__5 (fromInteger x :: Double))+ fromInteger x = fromDouble (fromInteger x :: Double) {-# NOINLINE fromInteger #-} abs x = unsafePerformIO (dmatrix_zz_abs x) {-# NOINLINE abs #-}@@ -137,11 +147,11 @@ instance Fractional DMatrix where (/) x y = unsafePerformIO (dmatrix___truediv____0 x y) {-# NOINLINE (/) #-}- fromRational x = unsafePerformIO (dmatrix__5 (fromRational x :: Double))+ fromRational x = fromDouble (fromRational x :: Double) {-# NOINLINE fromRational #-} instance Floating DMatrix where- pi = unsafePerformIO (dmatrix__5 (pi :: Double))+ pi = fromDouble (pi :: Double) {-# NOINLINE pi #-} (**) x y = unsafePerformIO (dmatrix_zz_power x y) {-# NOINLINE (**) #-}
src/Casadi/Function.hs view
@@ -20,6 +20,7 @@ import Casadi.MX ( MX ) import Casadi.DMatrix ( DMatrix ) import Casadi.SharedObject ( castSharedObject )+import Casadi.CMatrix ( CMatrix(..) ) instance Show C.Function where show x = show (castSharedObject x)@@ -27,18 +28,18 @@ -- | call an MXFunction on symbolic inputs, getting symbolic outputs callMX :: C.FunctionClass f => f -> Vector MX -> Vector MX-callMX f ins = unsafePerformIO (C.function_call__0 f ins)+callMX f ins = unsafePerformIO (C.function_operator_call__0 f ins) {-# NOINLINE callMX #-} -- | call an SXFunction on symbolic inputs, getting symbolic outputs callSX :: C.FunctionClass f => f -> Vector SX -> Vector SX-callSX f ins = unsafePerformIO (C.function_call__3 f ins)+callSX f ins = unsafePerformIO $ (C.function_operator_call__3 f ins) {-# NOINLINE callSX #-} -- | evaluate an SXFunction with 1 input and 1 output evalDMatrix :: (C.FunctionClass f, C.IOInterfaceFunctionClass f) => f -> Vector DMatrix -> IO (Vector DMatrix)-evalDMatrix sxf inputs = do+evalDMatrix sxf inputs = do -- function__operator__call__6 -- set inputs zipWithM_ (C.ioInterfaceFunction_setInput__2 sxf) (V.toList inputs) [0..]
src/Casadi/IOSchemes.hs view
@@ -54,10 +54,10 @@ fmap V.fromList $ mapM getElem entries mkSchemeSX :: InputOutputScheme -> [(String,SX)] -> IO (V.Vector SX)-mkSchemeSX = mkScheme sx__13+mkSchemeSX = mkScheme sx__10 mkSchemeMX :: InputOutputScheme -> [(String,MX)] -> IO (V.Vector MX)-mkSchemeMX = mkScheme mx__8+mkSchemeMX = mkScheme mx__7 mkSchemeCRSSparsity :: InputOutputScheme -> [(String,Sparsity)] -> IO (V.Vector Sparsity)-mkSchemeCRSSparsity = mkScheme sparsity__1+mkSchemeCRSSparsity = mkScheme sparsity__2
src/Casadi/MX.hs view
@@ -98,11 +98,17 @@ {-# NOINLINE zerosSp #-} solve a b = unsafePerformIO (C.solve__0 a b) {-# NOINLINE solve #-}- indexed m sx sy = unsafePerformIO (mx_getSub__3 m False sx sy)+ indexed m spx spy = unsafePerformIO $ do+ ret <- allocEmpty :: IO MX+ mx_get__3 m ret False spx spy+ return ret {-# NOINLINE indexed #-}- sparsity x = unsafePerformIO (mx_sparsityRef__0 x)+ sparsity x = unsafePerformIO (mx_sparsityRef x) {-# NOINLINE sparsity #-}- getNZ m s = unsafePerformIO (mx_getNZ__1 m False s)+ getNZ m sp = unsafePerformIO $ do+ ret <- allocEmpty :: IO MX+ mx_getNZ__1 m ret False sp+ return ret {-# NOINLINE getNZ #-} setNZ m y s = mx_setNZ__1 m y False s triu x = unsafePerformIO (mx_zz_triu__0 x)@@ -114,13 +120,17 @@ tril2symm x = unsafePerformIO (mx_zz_tril2symm x) {-# NOINLINE tril2symm #-} copy m = mx__2 m- dense x = unsafePerformIO (mx_zz_dense x)- {-# NOINLINE dense #-}+ densify x = unsafePerformIO (mx_zz_densify x)+ {-# NOINLINE densify #-} fromDMatrix x = unsafePerformIO (mx__0 x) {-# NOINLINE fromDMatrix #-} fromDVector x = fromDMatrix (fromDVector x) {-# NOINLINE fromDVector #-}+ fromDouble x = unsafePerformIO (mx__3 x)+ {-# NOINLINE fromDouble #-}+ allocEmpty = mx__7 + instance Num MX where (+) x y = unsafePerformIO (mx_zz_plus x y) {-# NOINLINE (+) #-}@@ -128,7 +138,7 @@ {-# NOINLINE (-) #-} (*) x y = unsafePerformIO (mx_zz_times x y) {-# NOINLINE (*) #-}- fromInteger x = unsafePerformIO (mx__3 (fromInteger x :: Double))+ fromInteger x = fromDouble (fromInteger x :: Double) {-# NOINLINE fromInteger #-} abs x = unsafePerformIO (mx_zz_abs x) {-# NOINLINE abs #-}@@ -138,11 +148,11 @@ instance Fractional MX where (/) x y = unsafePerformIO (mx___truediv____0 x y) {-# NOINLINE (/) #-}- fromRational x = unsafePerformIO (mx__3 (fromRational x :: Double))+ fromRational x = fromDouble (fromRational x :: Double) {-# NOINLINE fromRational #-} instance Floating MX where- pi = unsafePerformIO (mx__3 (pi :: Double))+ pi = fromDouble (pi :: Double) {-# NOINLINE pi #-} (**) x y = unsafePerformIO (mx_zz_power x y) {-# NOINLINE (**) #-}
src/Casadi/SX.hs view
@@ -55,6 +55,7 @@ ssparsify x = unsafePerformIO (sx_zz_sparsify__0 x) {-# NOINLINE ssparsify #-} + instance CMatrix SX where veccat x = unsafePerformIO (sx_zz_veccat x) {-# NOINLINE veccat #-}@@ -92,11 +93,17 @@ {-# NOINLINE zerosSp #-} solve a b = unsafePerformIO (C.solve__2 a b) {-# NOINLINE solve #-}- indexed m sx sy = unsafePerformIO (sx_getSub__3 m False sx sy)+ indexed m spx spy = unsafePerformIO $ do+ ret <- allocEmpty :: IO SX+ sx_get__3 m ret False spx spy+ return ret {-# NOINLINE indexed #-}- sparsity x = unsafePerformIO (sx_sparsityRef__0 x)+ sparsity x = unsafePerformIO (sx_sparsityRef x) {-# NOINLINE sparsity #-}- getNZ m s = unsafePerformIO (sx_getNZ__1 m False s)+ getNZ m sp = unsafePerformIO $ do+ ret <- allocEmpty :: IO SX+ sx_getNZ__1 m ret False sp+ return ret {-# NOINLINE getNZ #-} setNZ m y s = sx_setNZ__1 m y False s triu x = unsafePerformIO (sx_zz_triu__0 x)@@ -107,13 +114,16 @@ {-# NOINLINE triu2symm #-} tril2symm x = unsafePerformIO (sx_zz_tril2symm x) {-# NOINLINE tril2symm #-}- copy m = sx__12 m- dense x = unsafePerformIO (sx_zz_dense x)- {-# NOINLINE dense #-}- fromDMatrix x = unsafePerformIO (sx__2 x)+ copy m = sx__9 m+ densify x = unsafePerformIO (sx_zz_densify x)+ {-# NOINLINE densify #-}+ fromDMatrix x = unsafePerformIO (sx__1 x) {-# NOINLINE fromDMatrix #-} fromDVector x = fromDMatrix (fromDVector x) {-# NOINLINE fromDVector #-}+ fromDouble x = unsafePerformIO (sx__5 x)+ {-# NOINLINE fromDouble #-}+ allocEmpty = sx__10 instance Num SX where@@ -123,7 +133,7 @@ {-# NOINLINE (-) #-} (*) x y = unsafePerformIO (sx_zz_times x y) {-# NOINLINE (*) #-}- fromInteger x = unsafePerformIO (sx__8 (fromInteger x :: Double))+ fromInteger x = fromDouble (fromInteger x :: Double) {-# NOINLINE fromInteger #-} abs x = unsafePerformIO (sx_zz_abs x) {-# NOINLINE abs #-}@@ -133,11 +143,11 @@ instance Fractional SX where (/) x y = unsafePerformIO (sx___truediv____0 x y) {-# NOINLINE (/) #-}- fromRational x = unsafePerformIO (sx__8 (fromRational x :: Double))+ fromRational x = fromDouble (fromRational x :: Double) {-# NOINLINE fromRational #-} instance Floating SX where- pi = unsafePerformIO (sx__8 (pi :: Double))+ pi = fromDouble (pi :: Double) {-# NOINLINE pi #-} (**) x y = unsafePerformIO (sx_zz_power x y) {-# NOINLINE (**) #-}
src/Casadi/Sparsity.hs view
@@ -59,7 +59,7 @@ {-# NOINLINE scalar #-} getRow :: Sparsity -> V.Vector Int-getRow s = unsafePerformIO (sparsity_row__1 s) -- todo: getRow in 2.3+getRow s = unsafePerformIO (sparsity_getRow s) {-# NOINLINE getRow #-} getCol :: Sparsity -> V.Vector Int