packages feed

casadi-bindings 2.2.0.5 → 2.2.0.6

raw patch · 3 files changed

+31/−1 lines, 3 filesdep +cereal

Dependencies added: cereal

Files

casadi-bindings.cabal view
@@ -1,5 +1,5 @@ name:                casadi-bindings-version:             2.2.0.5+version:             2.2.0.6 synopsis:            mid-level bindings to CasADi category:            Numerical, Math description:@@ -58,6 +58,7 @@                        linear,                        vector,                        containers,+                       cereal,                        casadi-bindings-internal == 0.1.2.1,                        casadi-bindings-core     == 2.2.0.2   default-language:    Haskell2010
src/Casadi/DMatrix.hs view
@@ -9,15 +9,30 @@ import qualified Data.Vector as V import System.IO.Unsafe ( unsafePerformIO ) import Linear.Conjugate ( Conjugate(..) )+import Data.Serialize ( Serialize(..) )  import Casadi.Core.Classes.DMatrix+import Casadi.Core.Classes.Sparsity ( Sparsity ) import qualified Casadi.Core.Tools as C  import Casadi.Overloading ( Fmod(..), ArcTan2(..), SymOrd(..), Erf(..) ) import Casadi.CMatrix ( CMatrix(..) ) +instance Serialize DMatrix where+  get = do+    sp <- get+    data' <- get+    return (fromSparseData sp (V.fromList data'))+  put x = do+    put (sparsity x)+    put (V.toList (ddata x))+ instance Conjugate DMatrix where   conjugate = id++fromSparseData :: Sparsity -> V.Vector Double -> DMatrix+fromSparseData s d = unsafePerformIO (dmatrix__6 s d)+{-# NOINLINE fromSparseData #-}  dsparsify :: DMatrix -> DMatrix dsparsify x = unsafePerformIO (dmatrix_zz_sparsify__0 x)
src/Casadi/Sparsity.hs view
@@ -4,15 +4,21 @@        ( Sparsity        , upper, lower, spy, spyMatlab        , dense, sparse, scalar+       , compress, compressed        ) where  import qualified Data.Vector as V import System.IO.Unsafe ( unsafePerformIO )+import Data.Serialize ( Serialize(..) )  import Casadi.Core.Classes.Sparsity  import Casadi.SharedObject ( castSharedObject ) +instance Serialize Sparsity where+  put = put . V.toList . compress+  get = fmap (compressed . V.fromList) get+ instance Show Sparsity where   show x = show (castSharedObject x)   {-# NOINLINE show #-}@@ -46,3 +52,11 @@ dense :: Int -> Int -> Sparsity dense nr nc = unsafePerformIO (sparsity_dense__1 nr nc) {-# NOINLINE dense #-}++compress :: Sparsity -> V.Vector Int+compress s = unsafePerformIO (sparsity_compress s)+{-# NOINLINE compress #-}++compressed :: V.Vector Int -> Sparsity+compressed v = unsafePerformIO (sparsity_compressed v)+{-# NOINLINE compressed #-}