packages feed

casadi-bindings-1.9.0.0: Casadi/Wrappers/Classes/GenSX.hs

{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# Language ForeignFunctionInterface #-}
{-# Language FlexibleInstances #-}
{-# Language MultiParamTypeClasses #-}

module Casadi.Wrappers.Classes.GenSX
       (
         GenSX,
         GenSXClass(..),
         genSX_dimString,
         genSX_isDense,
         genSX_isEmpty,
         genSX_isEmpty',
         genSX_isScalar,
         genSX_isScalar',
         genSX_isSquare,
         genSX_isTril,
         genSX_isTriu,
         genSX_isVector,
         genSX_mul_smart,
         genSX_numel,
         genSX_ones,
         genSX_ones',
         genSX_ones'',
         genSX_ones''',
         genSX_size,
         genSX_size',
         genSX_size1,
         genSX_size2,
         genSX_sizeD,
         genSX_sizeL,
         genSX_sizeU,
         genSX_sparse,
         genSX_sparse',
         genSX_sparse'',
         genSX_sparsityRef,
         genSX_sym,
         genSX_sym',
         genSX_sym'',
         genSX_sym''',
         genSX_sym'''',
         genSX_sym''''',
         genSX_sym'''''',
         genSX_sym''''''',
         genSX_zeros,
         genSX_zeros',
         genSX_zeros'',
         genSX_zeros''',
       ) where


import Prelude hiding ( Functor )

import Data.Vector ( Vector )
import Foreign.C.Types
import Foreign.Ptr ( Ptr )
import Foreign.ForeignPtr ( newForeignPtr )
import System.IO.Unsafe ( unsafePerformIO ) -- for show instances

import Casadi.Wrappers.CToolsInstances ( )
import Casadi.Wrappers.Data
import Casadi.Wrappers.Enums
import Casadi.MarshalTypes ( CppVec, StdString' ) -- StdOstream'
import Casadi.Marshal ( Marshal(..), withMarshal )
import Casadi.WrapReturn ( WrapReturn(..) )

-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size
  :: GenSX -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size x0' >>= wrapReturn

-- classy wrapper
{-|
>>  int CasADi::GenericMatrix< MatType >::size() const 
>------------------------------------------------------------------------
>
>Get the number of (structural) non-zero elements.
>
>>  int CasADi::GenericMatrix< MatType >::size(SparsityType sp) const 
>------------------------------------------------------------------------
>
>Get the number if non-zeros for a given sparsity pattern.
-}
genSX_size :: GenSXClass a => a -> IO Int
genSX_size x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeL" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeL
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeL
  :: GenSX -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeL x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeL x0' >>= wrapReturn

-- classy wrapper
{-|
>Get the number of non-zeros in the lower triangular half.
-}
genSX_sizeL :: GenSXClass a => a -> IO Int
genSX_sizeL x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeL (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeU" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeU
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeU
  :: GenSX -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeU x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeU x0' >>= wrapReturn

-- classy wrapper
{-|
>Get the number of non-zeros in the upper triangular half.
-}
genSX_sizeU :: GenSXClass a => a -> IO Int
genSX_sizeU x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeU (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeD" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeD
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeD
  :: GenSX -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeD x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeD x0' >>= wrapReturn

-- classy wrapper
{-|
>Get get the number of non-zeros on the diagonal.
-}
genSX_sizeD :: GenSXClass a => a -> IO Int
genSX_sizeD x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sizeD (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____numel" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____numel
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____numel
  :: GenSX -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____numel x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____numel x0' >>= wrapReturn

-- classy wrapper
{-|
>Get the number of elements.
-}
genSX_numel :: GenSXClass a => a -> IO Int
genSX_numel x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____numel (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size1" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size1
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size1
  :: GenSX -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size1 x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size1 x0' >>= wrapReturn

-- classy wrapper
{-|
>Get the first dimension (i.e. number of rows)
-}
genSX_size1 :: GenSXClass a => a -> IO Int
genSX_size1 x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size1 (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size2" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size2
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size2
  :: GenSX -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size2 x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size2 x0' >>= wrapReturn

-- classy wrapper
{-|
>Get the second dimension (i.e. number of columns)
-}
genSX_size2 :: GenSXClass a => a -> IO Int
genSX_size2 x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size2 (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size_TIC
  :: Ptr GenSX' -> CInt -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size'
  :: GenSX -> SparsityType -> IO Int
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size' x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size_TIC x0' x1' >>= wrapReturn

-- classy wrapper
genSX_size' :: GenSXClass a => a -> SparsityType -> IO Int
genSX_size' x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____size' (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____dimString" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____dimString
  :: Ptr GenSX' -> IO (Ptr StdString')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____dimString
  :: GenSX -> IO String
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____dimString x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____dimString x0' >>= wrapReturn

-- classy wrapper
{-|
>Get string representation of dimensions. The representation is (nrow x ncol
>= numel | size)
-}
genSX_dimString :: GenSXClass a => a -> IO String
genSX_dimString x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____dimString (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty
  :: Ptr GenSX' -> CInt -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty
  :: GenSX -> Bool -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>Check if the sparsity is empty, i.e. if one of the dimensions is zero (or
>optionally both dimensions)
-}
genSX_isEmpty :: GenSXClass a => a -> Bool -> IO Bool
genSX_isEmpty x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty_TIC
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty'
  :: GenSX -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_isEmpty' :: GenSXClass a => a -> IO Bool
genSX_isEmpty' x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isEmpty' (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isDense" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isDense
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isDense
  :: GenSX -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isDense x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isDense x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the matrix expression is dense.
-}
genSX_isDense :: GenSXClass a => a -> IO Bool
genSX_isDense x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isDense (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar
  :: Ptr GenSX' -> CInt -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar
  :: GenSX -> Bool -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>Check if the matrix expression is scalar.
-}
genSX_isScalar :: GenSXClass a => a -> Bool -> IO Bool
genSX_isScalar x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar_TIC
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar'
  :: GenSX -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_isScalar' :: GenSXClass a => a -> IO Bool
genSX_isScalar' x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isScalar' (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isSquare" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isSquare
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isSquare
  :: GenSX -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isSquare x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isSquare x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the matrix expression is square.
-}
genSX_isSquare :: GenSXClass a => a -> IO Bool
genSX_isSquare x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isSquare (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isVector" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isVector
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isVector
  :: GenSX -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isVector x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isVector x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the matrix is a vector (i.e. size2()==1)
-}
genSX_isVector :: GenSXClass a => a -> IO Bool
genSX_isVector x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isVector (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTriu" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTriu
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTriu
  :: GenSX -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTriu x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTriu x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the matrix is upper triangular.
-}
genSX_isTriu :: GenSXClass a => a -> IO Bool
genSX_isTriu x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTriu (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTril" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTril
  :: Ptr GenSX' -> IO CInt
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTril
  :: GenSX -> IO Bool
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTril x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTril x0' >>= wrapReturn

-- classy wrapper
{-|
>Check if the matrix is lower triangular.
-}
genSX_isTril :: GenSXClass a => a -> IO Bool
genSX_isTril x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____isTril (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparsityRef" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparsityRef
  :: Ptr GenSX' -> IO (Ptr Sparsity')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparsityRef
  :: GenSX -> IO Sparsity
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparsityRef x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparsityRef x0' >>= wrapReturn

-- classy wrapper
{-|
>Access the sparsity, make a copy if there are multiple references to it.
-}
genSX_sparsityRef :: GenSXClass a => a -> IO Sparsity
genSX_sparsityRef x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparsityRef (castGenSX x)


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym
  :: Ptr StdString' -> CInt -> CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym
  :: String -> Int -> Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym x0 x1 x2 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym x0' x1' x2' >>= wrapReturn

-- classy wrapper
{-|
>>  static MatType CasADi::GenericMatrix< MatType >::sym(const std::string &name, int nrow=1, int ncol=1)
>------------------------------------------------------------------------
>
>Create an nrow-by-ncol symbolic primitive.
>
>>  static MatType CasADi::GenericMatrix< MatType >::sym(const std::string &name, const std::pair< int, int > &rc)
>------------------------------------------------------------------------
>
>Construct a symbolic primitive with given dimensions.
>
>>  MatType CasADi::GenericMatrix< MatType >::sym(const std::string &name, const Sparsity &sp)
>------------------------------------------------------------------------
>
>Create symbolic primitive with a given sparsity pattern.
>
>>  std::vector< MatType > CasADi::GenericMatrix< MatType >::sym(const std::string &name, const Sparsity &sp, int p)
>------------------------------------------------------------------------
>
>Create a vector of length p with with matrices with symbolic primitives of
>given sparsity.
>
>>  static std::vector<MatType > CasADi::GenericMatrix< MatType >::sym(const std::string &name, int nrow, int ncol, int p)
>------------------------------------------------------------------------
>
>Create a vector of length p with nrow-by-ncol symbolic primitives.
>
>>  std::vector< std::vector< MatType > > CasADi::GenericMatrix< MatType >::sym(const std::string &name, const Sparsity &sp, int p, int r)
>------------------------------------------------------------------------
>
>Create a vector of length r of vectors of length p with symbolic primitives
>with given sparsity.
>
>>  static std::vector<std::vector<MatType> > CasADi::GenericMatrix< MatType >::sym(const std::string &name, int nrow, int ncol, int p, int r)
>------------------------------------------------------------------------
>
>Create a vector of length r of vectors of length p with nrow-by-ncol
>symbolic primitives.
-}
genSX_sym :: String -> Int -> Int -> IO SX
genSX_sym = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC
  :: Ptr StdString' -> CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'
  :: String -> Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym' x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC x0' x1' >>= wrapReturn

-- classy wrapper
genSX_sym' :: String -> Int -> IO SX
genSX_sym' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC
  :: Ptr StdString' -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''
  :: String -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_sym'' :: String -> IO SX
genSX_sym'' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC
  :: Ptr StdString' -> Ptr Sparsity' -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''
  :: String -> Sparsity -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''' x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC x0' x1' >>= wrapReturn

-- classy wrapper
genSX_sym''' :: String -> Sparsity -> IO SX
genSX_sym''' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC
  :: Ptr StdString' -> Ptr Sparsity' -> CInt -> IO (Ptr (CppVec (Ptr SX')))
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''''
  :: String -> Sparsity -> Int -> IO (Vector SX)
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''' x0 x1 x2 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC x0' x1' x2' >>= wrapReturn

-- classy wrapper
genSX_sym'''' :: String -> Sparsity -> Int -> IO (Vector SX)
genSX_sym'''' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC
  :: Ptr StdString' -> CInt -> CInt -> CInt -> IO (Ptr (CppVec (Ptr SX')))
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''''
  :: String -> Int -> Int -> Int -> IO (Vector SX)
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''''' x0 x1 x2 x3 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  withMarshal x3 $ \x3' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC x0' x1' x2' x3' >>= wrapReturn

-- classy wrapper
genSX_sym''''' :: String -> Int -> Int -> Int -> IO (Vector SX)
genSX_sym''''' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC_TIC
  :: Ptr StdString' -> Ptr Sparsity' -> CInt -> CInt -> IO (Ptr (CppVec (Ptr (CppVec (Ptr SX')))))
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''''''
  :: String -> Sparsity -> Int -> Int -> IO (Vector (Vector SX))
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''''' x0 x1 x2 x3 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  withMarshal x3 $ \x3' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC_TIC x0' x1' x2' x3' >>= wrapReturn

-- classy wrapper
genSX_sym'''''' :: String -> Sparsity -> Int -> Int -> IO (Vector (Vector SX))
genSX_sym'''''' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''''''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC_TIC_TIC
  :: Ptr StdString' -> CInt -> CInt -> CInt -> CInt -> IO (Ptr (CppVec (Ptr (CppVec (Ptr SX')))))
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''''''
  :: String -> Int -> Int -> Int -> Int -> IO (Vector (Vector SX))
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym''''''' x0 x1 x2 x3 x4 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  withMarshal x3 $ \x3' ->
  withMarshal x4 $ \x4' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym_TIC_TIC_TIC_TIC_TIC_TIC_TIC x0' x1' x2' x3' x4' >>= wrapReturn

-- classy wrapper
genSX_sym''''''' :: String -> Int -> Int -> Int -> Int -> IO (Vector (Vector SX))
genSX_sym''''''' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sym'''''''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse
  :: CInt -> CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse
  :: Int -> Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>create a sparse matrix with all zeros
-}
genSX_sparse :: Int -> Int -> IO SX
genSX_sparse = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse_TIC
  :: CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse'
  :: Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_sparse' :: Int -> IO SX
genSX_sparse' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse'


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse_TIC_TIC
  :: IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse''
  :: IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse''  =
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse_TIC_TIC  >>= wrapReturn

-- classy wrapper
genSX_sparse'' :: IO SX
genSX_sparse'' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____sparse''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros
  :: CInt -> CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros
  :: Int -> Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>Create a dense matrix or a matrix with specified sparsity with all entries
>zero.
-}
genSX_zeros :: Int -> Int -> IO SX
genSX_zeros = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC
  :: CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros'
  :: Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_zeros' :: Int -> IO SX
genSX_zeros' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros'


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC_TIC
  :: IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros''
  :: IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros''  =
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC_TIC  >>= wrapReturn

-- classy wrapper
genSX_zeros'' :: IO SX
genSX_zeros'' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC_TIC_TIC
  :: Ptr Sparsity' -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros'''
  :: Sparsity -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros''' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros_TIC_TIC_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_zeros''' :: Sparsity -> IO SX
genSX_zeros''' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____zeros'''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones
  :: CInt -> CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones
  :: Int -> Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones x0 x1 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones x0' x1' >>= wrapReturn

-- classy wrapper
{-|
>Create a dense matrix or a matrix with specified sparsity with all entries
>one.
-}
genSX_ones :: Int -> Int -> IO SX
genSX_ones = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC
  :: CInt -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones'
  :: Int -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_ones' :: Int -> IO SX
genSX_ones' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones'


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC_TIC
  :: IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones''
  :: IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones''  =
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC_TIC  >>= wrapReturn

-- classy wrapper
genSX_ones'' :: IO SX
genSX_ones'' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC_TIC_TIC" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC_TIC_TIC
  :: Ptr Sparsity' -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones'''
  :: Sparsity -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones''' x0 =
  withMarshal x0 $ \x0' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones_TIC_TIC_TIC x0' >>= wrapReturn

-- classy wrapper
genSX_ones''' :: Sparsity -> IO SX
genSX_ones''' = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____ones'''


-- direct wrapper
foreign import ccall unsafe "CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____mul_smart" c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____mul_smart
  :: Ptr GenSX' -> Ptr SX' -> Ptr Sparsity' -> IO (Ptr SX')
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____mul_smart
  :: GenSX -> SX -> Sparsity -> IO SX
casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____mul_smart x0 x1 x2 =
  withMarshal x0 $ \x0' ->
  withMarshal x1 $ \x1' ->
  withMarshal x2 $ \x2' ->
  c_CasADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____mul_smart x0' x1' x2' >>= wrapReturn

-- classy wrapper
{-|
>Matrix-matrix multiplication. Attempts to identify quick returns on matrix-
>level and delegates to MatType::mul_full if no such quick returns are found.
-}
genSX_mul_smart :: GenSXClass a => a -> SX -> Sparsity -> IO SX
genSX_mul_smart x = casADi__GenericMatrix_CasADi__Matrix_CasADi__SXElement____mul_smart (castGenSX x)