diff --git a/casadi-bindings.cabal b/casadi-bindings.cabal
--- a/casadi-bindings.cabal
+++ b/casadi-bindings.cabal
@@ -1,5 +1,5 @@
 name:                casadi-bindings
-version:             2.2.0.2
+version:             2.2.0.3
 synopsis:            mid-level bindings to CasADi
 category:            Numerical, Math
 description:
diff --git a/src/Casadi/DMatrix.hs b/src/Casadi/DMatrix.hs
--- a/src/Casadi/DMatrix.hs
+++ b/src/Casadi/DMatrix.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS_GHC -Wall -fno-cse -fno-warn-orphans #-}
 
 module Casadi.DMatrix
-       ( DMatrix, dcrs, dmm, dvector, ddata, ddiag
+       ( DMatrix, dcrs, dmm, dinnerProd, dvector, ddata, ddiag
        , ddense, dsparsify, dtrans
        , dtriu, dtril
        , dtriu2symm, dtril2symm
@@ -38,6 +38,11 @@
 dmm :: DMatrix -> DMatrix -> DMatrix
 dmm x y = unsafePerformIO (dmatrix_zz_mtimes__1 x y)
 {-# NOINLINE dmm #-}
+
+-- | sumAll(x*y), x and y same dimension
+dinnerProd :: DMatrix -> DMatrix -> DMatrix
+dinnerProd x y = unsafePerformIO (dmatrix_zz_inner_prod x y)
+{-# NOINLINE dinnerProd #-}
 
 -- | transpose
 dtrans :: DMatrix -> DMatrix
diff --git a/src/Casadi/MX.hs b/src/Casadi/MX.hs
--- a/src/Casadi/MX.hs
+++ b/src/Casadi/MX.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS_GHC -Wall -fno-cse -fno-warn-orphans #-}
 
 module Casadi.MX
-       ( MX, sym, symV, symM, mm, trans, diag
+       ( MX, sym, symV, symM, mm, innerProd, trans, diag
        , gradient, jacobian -- , hessian
        , solve
        , expand
@@ -82,6 +82,11 @@
 mm :: MX -> MX -> MX
 mm x y = unsafePerformIO (mx_zz_mtimes__1 x y)
 {-# NOINLINE mm #-}
+
+-- | sumAll(x*y), x and y same dimension
+innerProd :: MX -> MX -> MX
+innerProd x y = unsafePerformIO (mx_zz_inner_prod x y)
+{-# NOINLINE innerProd #-}
 
 -- | transpose
 trans :: MX -> MX
diff --git a/src/Casadi/SX.hs b/src/Casadi/SX.hs
--- a/src/Casadi/SX.hs
+++ b/src/Casadi/SX.hs
@@ -1,7 +1,7 @@
 {-# OPTIONS_GHC -Wall -fno-cse -fno-warn-orphans #-}
 
 module Casadi.SX
-       ( SX, ssym, ssymV, ssymM, smm, strans
+       ( SX, ssym, ssymV, ssymM, smm, sinnerProd, strans
        , sgradient, sjacobian, shessian, sdiag
        , ssolve
        , striu, stril
@@ -67,6 +67,11 @@
 smm :: SX -> SX -> SX
 smm x y = unsafePerformIO (sx_zz_mtimes__1 x y)
 {-# NOINLINE smm #-}
+
+-- | sumAll(x*y), x and y same dimension
+sinnerProd :: SX -> SX -> SX
+sinnerProd x y = unsafePerformIO (sx_zz_inner_prod x y)
+{-# NOINLINE sinnerProd #-}
 
 d2s :: DMatrix -> SX
 d2s x = unsafePerformIO (sx__2 x)
