packages feed

casadi-bindings-internal 0.1.5.0 → 0.1.6.0

raw patch · 5 files changed

+53/−29 lines, 5 files

Files

casadi-bindings-internal.cabal view
@@ -1,5 +1,5 @@ name:                casadi-bindings-internal-version:             0.1.5.0+version:             0.1.6.0 license:             LGPL-3 license-file:        LICENSE category:            Numerical, Math
cbits/hs_tools.cpp view
@@ -42,20 +42,20 @@     delete pair; } -extern "C" std::pair<int,int> * hs_new_stdpair_int(int x, int y);-std::pair<int,int> * hs_new_stdpair_int(int x, int y) {-    return new std::pair<int,int>(x, y);+extern "C" std::pair<long long,long long> * hs_new_stdpair_long_long(long long x, long long y);+std::pair<long long,long long> * hs_new_stdpair_long_long(long long x, long long y) {+    return new std::pair<long long,long long>(x, y); }-extern "C" int hs_stdpair_fst_int(std::pair<int,int> * stdpair);-int hs_stdpair_fst_int(std::pair<int,int> * stdpair) {+extern "C" long long hs_stdpair_fst_long_long(std::pair<long long,long long> * stdpair);+long long hs_stdpair_fst_long_long(std::pair<long long,long long> * stdpair) {     return stdpair->first; }-extern "C" int hs_stdpair_snd_int(std::pair<int,int> * stdpair);-int hs_stdpair_snd_int(std::pair<int,int> * stdpair) {+extern "C" long long hs_stdpair_snd_long_long(std::pair<long long,long long> * stdpair);+long long hs_stdpair_snd_long_long(std::pair<long long,long long> * stdpair) {     return stdpair->second; }-extern "C" void hs_delete_stdpair_int(std::pair<int,int> * pair);-void hs_delete_stdpair_int(std::pair<int,int> * pair){+extern "C" void hs_delete_stdpair_long_long(std::pair<long long,long long> * pair);+void hs_delete_stdpair_long_long(std::pair<long long,long long> * pair){     delete pair; } @@ -133,6 +133,8 @@     int hs_size_vec_##name(vector<type> * vec){ return vec->size(); }  WRITE_STUFF(int,int)+typedef long long longlong;+WRITE_STUFF(llong,longlong) WRITE_STUFF(voidp, void*) WRITE_STUFF(uchar, unsigned char) WRITE_STUFF(double, double)
src/Casadi/Internal/CToolsImports.hs view
@@ -18,14 +18,14 @@ foreign import ccall unsafe "hs_delete_stdpair" c_deleteStdPair   :: Ptr (StdPair (Ptr a) (Ptr b)) -> IO () -foreign import ccall unsafe "hs_new_stdpair_int" c_newStdPairInt-  :: CInt -> CInt -> IO (Ptr (StdPair CInt CInt))-foreign import ccall unsafe "hs_stdpair_fst_int" c_stdPairFstInt-  :: Ptr (StdPair CInt CInt) -> IO CInt-foreign import ccall unsafe "hs_stdpair_snd_int" c_stdPairSndInt-  :: Ptr (StdPair CInt CInt) -> IO CInt-foreign import ccall unsafe "hs_delete_stdpair_int" c_deleteStdPairInt-  :: Ptr (StdPair CInt CInt) -> IO ()+foreign import ccall unsafe "hs_new_stdpair_long_long" c_newStdPairLLong+  :: CLLong -> CLLong -> IO (Ptr (StdPair CLLong CLLong))+foreign import ccall unsafe "hs_stdpair_fst_long_long" c_stdPairFstLLong+  :: Ptr (StdPair CLLong CLLong) -> IO CLLong+foreign import ccall unsafe "hs_stdpair_snd_long_long" c_stdPairSndLLong+  :: Ptr (StdPair CLLong CLLong) -> IO CLLong+foreign import ccall unsafe "hs_delete_stdpair_long_long" c_deleteStdPairLLong+  :: Ptr (StdPair CLLong CLLong) -> IO ()  --------------------------- stdmap ----------------------------------- foreign import ccall unsafe "hs_new_dict" c_newDict@@ -52,6 +52,16 @@   :: Ptr (StdVec CInt) -> Ptr CInt -> IO () foreign import ccall unsafe "hs_size_vec_int" c_sizeVecCInt   :: Ptr (StdVec CInt) -> IO CInt+++foreign import ccall unsafe "hs_new_vec_llong" c_newVecLLong+  :: Ptr CLLong -> CInt -> IO (Ptr (StdVec CLLong))+foreign import ccall unsafe "hs_delete_vec_llong" c_deleteVecLLong+  :: Ptr (StdVec CLLong) -> IO ()+foreign import ccall unsafe "hs_copy_vec_llong" c_copyVecCLLong+  :: Ptr (StdVec CLLong) -> Ptr CLLong -> IO ()+foreign import ccall unsafe "hs_size_vec_llong" c_sizeVecCLLong+  :: Ptr (StdVec CLLong) -> IO CInt  --------------------------- ("voidp","VoidP",Just "(Ptr a)",[]) ----------------------------------- foreign import ccall unsafe "hs_new_vec_voidp" c_newVecVoidP
src/Casadi/Internal/Marshal.hs view
@@ -46,6 +46,8 @@   hsToC = fromIntegral -- really should check min/max bounds here instance HsToC Int CLong where   hsToC = fromIntegral+instance HsToC Int CLLong where+  hsToC = fromIntegral instance HsToC Bool CInt where   hsToC False = 0   hsToC True = 1@@ -60,6 +62,8 @@   marshal = return . hsToC instance Marshal Int CLong where   marshal = return . hsToC+instance Marshal Int CLLong where+  marshal = return . hsToC instance Marshal Bool CInt where   marshal = return . hsToC instance Marshal Double CDouble where@@ -76,6 +80,9 @@ instance Marshal (V.Vector Int) (Ptr (StdVec CInt)) where   marshal = newStorableVec c_newVecCInt . (V.map hsToC)   marshalFree = const c_deleteVecCInt+instance Marshal (V.Vector Int) (Ptr (StdVec CLLong)) where+  marshal = newStorableVec c_newVecLLong . V.map hsToC+  marshalFree = const c_deleteVecLLong instance Marshal (V.Vector Bool) (Ptr (StdVec CInt)) where   marshal = newStorableVec c_newVecCInt . (V.map hsToC)   marshalFree = const c_deleteVecCInt@@ -113,18 +120,18 @@     c_deleteStdPair stdpair  -- stdpair-instance (Marshal a CInt, Marshal b CInt)-         => Marshal (a, b) (Ptr (StdPair CInt CInt)) where+instance (Marshal a CLLong, Marshal b CLLong)+         => Marshal (a, b) (Ptr (StdPair CLLong CLLong)) where   marshal (x,y) = do     px <- marshal x     py <- marshal y-    c_newStdPairInt px py+    c_newStdPairLLong px py   marshalFree (x,y) stdpair = do-    cx <- c_stdPairFstInt stdpair-    cy <- c_stdPairSndInt stdpair+    cx <- c_stdPairFstLLong stdpair+    cy <- c_stdPairSndLLong stdpair     marshalFree x cx     marshalFree y cy-    c_deleteStdPairInt stdpair+    c_deleteStdPairLLong stdpair  -- stdmap instance (Marshal a (Ptr pa))
src/Casadi/Internal/WrapReturn.hs view
@@ -31,6 +31,8 @@   wrapReturn = return . realToFrac instance WrapReturn CLong Int where   wrapReturn = return . fromIntegral+instance WrapReturn CLLong Int where+  wrapReturn = return . fromIntegral instance WrapReturn CInt Bool where   wrapReturn 0 = return False   wrapReturn _ = return True@@ -66,14 +68,14 @@     c_deleteStdPair stdPair     return (x, y) -instance (WrapReturn CInt a, WrapReturn CInt b)-         => WrapReturn (Ptr (StdPair CInt CInt)) (a, b) where+instance (WrapReturn CLLong a, WrapReturn CLLong b)+         => WrapReturn (Ptr (StdPair CLLong CLLong)) (a, b) where   wrapReturn stdPair = do-    px <- c_stdPairFstInt stdPair-    py <- c_stdPairSndInt stdPair+    px <- c_stdPairFstLLong stdPair+    py <- c_stdPairSndLLong stdPair     x <- wrapReturn px     y <- wrapReturn py-    c_deleteStdPairInt stdPair+    c_deleteStdPairLLong stdPair     return (x, y)  @@ -108,6 +110,9 @@   free arr   vecDel vecPtr   fmap V.fromList (mapM cToHs ret)++instance WrapReturn (Ptr (StdVec CLLong)) (V.Vector Int) where+  wrapReturn = wrapReturnVec c_sizeVecCLLong c_copyVecCLLong c_deleteVecLLong wrapReturn  instance WrapReturn (Ptr (StdVec CInt)) (V.Vector Int) where   wrapReturn = wrapReturnVec c_sizeVecCInt c_copyVecCInt c_deleteVecCInt wrapReturn