casadi-bindings 3.0.0.1 → 3.0.0.2
raw patch · 5 files changed
+39/−26 lines, 5 files
Files
- casadi-bindings.cabal +1/−1
- src/Casadi/DM.hs +4/−0
- src/Casadi/MX.hs +4/−0
- src/Casadi/Overloading.hs +26/−25
- src/Casadi/SX.hs +4/−0
casadi-bindings.cabal view
@@ -1,5 +1,5 @@ name: casadi-bindings-version: 3.0.0.1+version: 3.0.0.2 synopsis: mid-level bindings to CasADi category: Numerical, Math description:
src/Casadi/DM.hs view
@@ -223,8 +223,12 @@ instance SymOrd DM where x `leq` y = unsafePerformIO (C.casadi_le__2 x y) {-# NOINLINE leq #-}+ x `lt` y = unsafePerformIO (C.casadi_lt__2 x y)+ {-# NOINLINE lt #-} x `geq` y = unsafePerformIO (C.casadi_ge__2 x y) {-# NOINLINE geq #-}+ x `gt` y = unsafePerformIO (C.casadi_gt__2 x y)+ {-# NOINLINE gt #-} x `eq` y = unsafePerformIO (C.casadi_eq__2 x y) {-# NOINLINE eq #-}
src/Casadi/MX.hs view
@@ -225,8 +225,12 @@ instance SymOrd MX where x `leq` y = unsafePerformIO (C.casadi_le__4 x y) {-# NOINLINE leq #-}+ x `lt` y = unsafePerformIO (C.casadi_lt__4 x y)+ {-# NOINLINE lt #-} x `geq` y = unsafePerformIO (C.casadi_ge__4 x y) {-# NOINLINE geq #-}+ x `gt` y = unsafePerformIO (C.casadi_gt__4 x y)+ {-# NOINLINE gt #-} x `eq` y = unsafePerformIO (C.casadi_eq__4 x y) {-# NOINLINE eq #-}
src/Casadi/Overloading.hs view
@@ -5,7 +5,6 @@ , Erf(..) , Fmod(..) , SymOrd(..)- , lt, gt , ifLeqThen, ifGeqThen, ifEqThen, ifLtThen, ifGtThen ) where @@ -40,6 +39,15 @@ -- >>> 43 `leq` 42 :: Double -- 0.0 --+-- >>> 41 `lt` 42 :: Double+-- 1.0+--+-- >>> 42 `lt` 42 :: Double+-- 0.0+--+-- >>> 43 `lt` 42 :: Double+-- 0.0+-- -- >>> 41 `geq` 42 :: Double -- 0.0 --@@ -49,6 +57,15 @@ -- >>> 43 `geq` 42 :: Double -- 1.0 --+-- >>> 41 `gt` 42 :: Double+-- 0.0+--+-- >>> 42 `gt` 42 :: Double+-- 0.0+--+-- >>> 43 `gt` 42 :: Double+-- 1.0+-- -- >>> 41 `eq` 42 :: Double -- 0.0 --@@ -60,43 +77,27 @@ class Num a => SymOrd a where -- | @<=@ leq :: a -> a -> a+ -- | @<@+ lt :: a -> a -> a -- | @>=@ geq :: a -> a -> a+ -- | @>@+ gt :: a -> a -> a -- | @==@ eq :: a -> a -> a instance SymOrd Double where x `leq` y = if x <= y then 1 else 0+ x `lt` y = if x < y then 1 else 0 x `geq` y = if x >= y then 1 else 0+ x `gt` y = if x > y then 1 else 0 x `eq` y = if x == y then 1 else 0 instance SymOrd Float where x `leq` y = if x <= y then 1 else 0+ x `lt` y = if x < y then 1 else 0 x `geq` y = if x >= y then 1 else 0+ x `gt` y = if x > y then 1 else 0 x `eq` y = if x == y then 1 else 0---- | @<@--- >>> 41 `lt` 42 :: Double--- 1.0------ >>> 42 `lt` 42 :: Double--- 0.0------ >>> 43 `lt` 42 :: Double--- 0.0-lt :: SymOrd a => a -> a -> a-lt x y = 1 - geq x y---- | @>@--- >>> 41 `gt` 42 :: Double--- 0.0------ >>> 42 `gt` 42 :: Double--- 0.0------ >>> 43 `gt` 42 :: Double--- 1.0-gt :: SymOrd a => a -> a -> a-gt x y = 1 - leq x y -- | @ifLeqThen x y ifX ifY == if x <= y then ifX else ifY@ -- >>> ifLeqThen 41 42 100 200 :: Double
src/Casadi/SX.hs view
@@ -220,8 +220,12 @@ instance SymOrd SX where x `leq` y = unsafePerformIO (C.casadi_le__1 x y) {-# NOINLINE leq #-}+ x `lt` y = unsafePerformIO (C.casadi_lt__1 x y)+ {-# NOINLINE lt #-} x `geq` y = unsafePerformIO (C.casadi_ge__1 x y) {-# NOINLINE geq #-}+ x `gt` y = unsafePerformIO (C.casadi_gt__1 x y)+ {-# NOINLINE gt #-} x `eq` y = unsafePerformIO (C.casadi_eq__1 x y) {-# NOINLINE eq #-}