{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE FlexibleInstances #-}

module Torch.Internal.Managed.Type.StdVector where


import Foreign.C.String
import Foreign.C.Types
import Foreign
import Torch.Internal.Type
import Torch.Internal.Class
import Torch.Internal.Cast
import Torch.Internal.Objects

import qualified Torch.Internal.Unmanaged.Type.StdVector as Unmanaged



newStdVectorDouble :: IO (ForeignPtr (StdVector CDouble))
newStdVectorDouble :: IO (ForeignPtr (StdVector CDouble))
newStdVectorDouble = forall a ca. Castable a ca => IO ca -> IO a
_cast0 IO (Ptr (StdVector CDouble))
Unmanaged.newStdVectorDouble

newStdVectorInt :: IO (ForeignPtr (StdVector Int64))
newStdVectorInt :: IO (ForeignPtr (StdVector Int64))
newStdVectorInt = forall a ca. Castable a ca => IO ca -> IO a
_cast0 IO (Ptr (StdVector Int64))
Unmanaged.newStdVectorInt

newStdVectorBool :: IO (ForeignPtr (StdVector CBool))
newStdVectorBool :: IO (ForeignPtr (StdVector CBool))
newStdVectorBool = forall a ca. Castable a ca => IO ca -> IO a
_cast0 IO (Ptr (StdVector CBool))
Unmanaged.newStdVectorBool





stdVectorDouble_empty :: ForeignPtr (StdVector CDouble) -> IO (CBool)
stdVectorDouble_empty :: ForeignPtr (StdVector CDouble) -> IO CBool
stdVectorDouble_empty = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr (StdVector CDouble) -> IO CBool
Unmanaged.stdVectorDouble_empty

stdVectorInt_empty :: ForeignPtr (StdVector Int64) -> IO (CBool)
stdVectorInt_empty :: ForeignPtr (StdVector Int64) -> IO CBool
stdVectorInt_empty = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr (StdVector Int64) -> IO CBool
Unmanaged.stdVectorInt_empty

stdVectorBool_empty :: ForeignPtr (StdVector CBool) -> IO (CBool)
stdVectorBool_empty :: ForeignPtr (StdVector CBool) -> IO CBool
stdVectorBool_empty = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr (StdVector CBool) -> IO CBool
Unmanaged.stdVectorBool_empty

stdVectorDouble_size :: ForeignPtr (StdVector CDouble) -> IO (CSize)
stdVectorDouble_size :: ForeignPtr (StdVector CDouble) -> IO CSize
stdVectorDouble_size = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr (StdVector CDouble) -> IO CSize
Unmanaged.stdVectorDouble_size

stdVectorInt_size :: ForeignPtr (StdVector Int64) -> IO (CSize)
stdVectorInt_size :: ForeignPtr (StdVector Int64) -> IO CSize
stdVectorInt_size = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr (StdVector Int64) -> IO CSize
Unmanaged.stdVectorInt_size

stdVectorBool_size :: ForeignPtr (StdVector CBool) -> IO (CSize)
stdVectorBool_size :: ForeignPtr (StdVector CBool) -> IO CSize
stdVectorBool_size = forall a ca y cy.
(Castable a ca, Castable y cy) =>
(ca -> IO cy) -> a -> IO y
_cast1 Ptr (StdVector CBool) -> IO CSize
Unmanaged.stdVectorBool_size

stdVectorDouble_at :: ForeignPtr (StdVector CDouble) -> CSize -> IO CDouble
stdVectorDouble_at :: ForeignPtr (StdVector CDouble) -> CSize -> IO CDouble
stdVectorDouble_at = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr (StdVector CDouble) -> CSize -> IO CDouble
Unmanaged.stdVectorDouble_at

stdVectorInt_at :: ForeignPtr (StdVector Int64) -> CSize -> IO Int64
stdVectorInt_at :: ForeignPtr (StdVector Int64) -> CSize -> IO Int64
stdVectorInt_at = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr (StdVector Int64) -> CSize -> IO Int64
Unmanaged.stdVectorInt_at

stdVectorBool_at :: ForeignPtr (StdVector CBool) -> CSize -> IO CBool
stdVectorBool_at :: ForeignPtr (StdVector CBool) -> CSize -> IO CBool
stdVectorBool_at = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr (StdVector CBool) -> CSize -> IO CBool
Unmanaged.stdVectorBool_at

stdVectorDouble_push_back :: ForeignPtr (StdVector CDouble) -> CDouble -> IO ()
stdVectorDouble_push_back :: ForeignPtr (StdVector CDouble) -> CDouble -> IO ()
stdVectorDouble_push_back = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr (StdVector CDouble) -> CDouble -> IO ()
Unmanaged.stdVectorDouble_push_back

stdVectorInt_push_back :: ForeignPtr (StdVector Int64) -> Int64 -> IO ()
stdVectorInt_push_back :: ForeignPtr (StdVector Int64) -> Int64 -> IO ()
stdVectorInt_push_back = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr (StdVector Int64) -> Int64 -> IO ()
Unmanaged.stdVectorInt_push_back

stdVectorBool_push_back :: ForeignPtr (StdVector CBool) -> CBool -> IO ()
stdVectorBool_push_back :: ForeignPtr (StdVector CBool) -> CBool -> IO ()
stdVectorBool_push_back = forall a ca x1 cx1 y cy.
(Castable a ca, Castable x1 cx1, Castable y cy) =>
(ca -> cx1 -> IO cy) -> a -> x1 -> IO y
_cast2 Ptr (StdVector CBool) -> CBool -> IO ()
Unmanaged.stdVectorBool_push_back