{-# INCLUDE <bindings.dsl.h> #-}
{-# INCLUDE <gsl/gsl_monte_plain.h> #-}
{-# INCLUDE <gsl/gsl_monte_miser.h> #-}
{-# INCLUDE <gsl/gsl_monte_vegas.h> #-}
{-# LINE 1 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

{-# LINE 2 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

{-# LINE 3 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

{-# LINE 4 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

{-# LINE 5 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

-- | <http://www.gnu.org/software/gsl/manual/html_node/Monte-Carlo-Integration.html>

module Bindings.Gsl.MonteCarloIntegration where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 10 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
import Bindings.Gsl.RandomNumberGeneration

data C'gsl_monte_function = C'gsl_monte_function{
{-# LINE 13 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

  c'gsl_monte_function'f :: FunPtr (Ptr CDouble -> CSize -> Ptr () -> IO CDouble)
{-# LINE 14 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_function'dim :: CSize
{-# LINE 15 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_function'params :: Ptr ()
{-# LINE 16 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_monte_function where
  sizeOf _ = 12
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    return $ C'gsl_monte_function v0 v1 v2
  poke p (C'gsl_monte_function v0 v1 v2) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    return ()

{-# LINE 17 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

foreign import ccall "inline_GSL_MONTE_FN_EVAL" c'GSL_MONTE_FN_EVAL
  :: Ptr C'gsl_monte_function -> Ptr CDouble -> IO CDouble

{-# LINE 19 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

data C'gsl_monte_plain_state = C'gsl_monte_plain_state{
{-# LINE 21 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

  c'gsl_monte_plain_state'dim :: CSize
{-# LINE 22 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_plain_state'x :: Ptr CDouble
{-# LINE 23 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_monte_plain_state where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'gsl_monte_plain_state v0 v1
  poke p (C'gsl_monte_plain_state v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 24 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

foreign import ccall "gsl_monte_plain_integrate" c'gsl_monte_plain_integrate
  :: Ptr C'gsl_monte_function -> Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_rng -> Ptr C'gsl_monte_plain_state -> Ptr CDouble -> Ptr CDouble -> IO CInt
foreign import ccall "&gsl_monte_plain_integrate" p'gsl_monte_plain_integrate
  :: FunPtr (Ptr C'gsl_monte_function -> Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_rng -> Ptr C'gsl_monte_plain_state -> Ptr CDouble -> Ptr CDouble -> IO CInt)

{-# LINE 26 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_plain_alloc" c'gsl_monte_plain_alloc
  :: CSize -> IO (Ptr C'gsl_monte_plain_state)
foreign import ccall "&gsl_monte_plain_alloc" p'gsl_monte_plain_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_monte_plain_state))

{-# LINE 27 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_plain_init" c'gsl_monte_plain_init
  :: Ptr C'gsl_monte_plain_state -> IO CInt
foreign import ccall "&gsl_monte_plain_init" p'gsl_monte_plain_init
  :: FunPtr (Ptr C'gsl_monte_plain_state -> IO CInt)

{-# LINE 28 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_plain_free" c'gsl_monte_plain_free
  :: Ptr C'gsl_monte_plain_state -> IO ()
foreign import ccall "&gsl_monte_plain_free" p'gsl_monte_plain_free
  :: FunPtr (Ptr C'gsl_monte_plain_state -> IO ())

{-# LINE 29 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

data C'gsl_monte_miser_state = C'gsl_monte_miser_state{
{-# LINE 31 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

  c'gsl_monte_miser_state'min_calls :: CSize
{-# LINE 32 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'min_calls_per_bisection :: CSize
{-# LINE 33 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'dither :: CDouble
{-# LINE 34 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'estimate_frac :: CDouble
{-# LINE 35 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'alpha :: CDouble
{-# LINE 36 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'dim :: CSize
{-# LINE 37 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'estimate_style :: CInt
{-# LINE 38 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'depth :: CInt
{-# LINE 39 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'verbose :: CInt
{-# LINE 40 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'x :: Ptr CDouble
{-# LINE 41 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'xmid :: Ptr CDouble
{-# LINE 42 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'sigma_l :: Ptr CDouble
{-# LINE 43 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'sigma_r :: Ptr CDouble
{-# LINE 44 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fmax_l :: Ptr CDouble
{-# LINE 45 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fmax_r :: Ptr CDouble
{-# LINE 46 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fmin_l :: Ptr CDouble
{-# LINE 47 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fmin_r :: Ptr CDouble
{-# LINE 48 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fsum_l :: Ptr CDouble
{-# LINE 49 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fsum_r :: Ptr CDouble
{-# LINE 50 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fsum2_l :: Ptr CDouble
{-# LINE 51 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'fsum2_r :: Ptr CDouble
{-# LINE 52 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'hits_l :: Ptr CSize
{-# LINE 53 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_miser_state'hits_r :: Ptr CSize
{-# LINE 54 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_monte_miser_state where
  sizeOf _ = 104
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 16
    v4 <- peekByteOff p 24
    v5 <- peekByteOff p 32
    v6 <- peekByteOff p 36
    v7 <- peekByteOff p 40
    v8 <- peekByteOff p 44
    v9 <- peekByteOff p 48
    v10 <- peekByteOff p 52
    v11 <- peekByteOff p 56
    v12 <- peekByteOff p 60
    v13 <- peekByteOff p 64
    v14 <- peekByteOff p 68
    v15 <- peekByteOff p 72
    v16 <- peekByteOff p 76
    v17 <- peekByteOff p 80
    v18 <- peekByteOff p 84
    v19 <- peekByteOff p 88
    v20 <- peekByteOff p 92
    v21 <- peekByteOff p 96
    v22 <- peekByteOff p 100
    return $ C'gsl_monte_miser_state v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22
  poke p (C'gsl_monte_miser_state v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 16 v3
    pokeByteOff p 24 v4
    pokeByteOff p 32 v5
    pokeByteOff p 36 v6
    pokeByteOff p 40 v7
    pokeByteOff p 44 v8
    pokeByteOff p 48 v9
    pokeByteOff p 52 v10
    pokeByteOff p 56 v11
    pokeByteOff p 60 v12
    pokeByteOff p 64 v13
    pokeByteOff p 68 v14
    pokeByteOff p 72 v15
    pokeByteOff p 76 v16
    pokeByteOff p 80 v17
    pokeByteOff p 84 v18
    pokeByteOff p 88 v19
    pokeByteOff p 92 v20
    pokeByteOff p 96 v21
    pokeByteOff p 100 v22
    return ()

{-# LINE 55 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

foreign import ccall "gsl_monte_miser_integrate" c'gsl_monte_miser_integrate
  :: Ptr C'gsl_monte_function -> Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_rng -> Ptr C'gsl_monte_miser_state -> Ptr CDouble -> Ptr CDouble -> IO CInt
foreign import ccall "&gsl_monte_miser_integrate" p'gsl_monte_miser_integrate
  :: FunPtr (Ptr C'gsl_monte_function -> Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_rng -> Ptr C'gsl_monte_miser_state -> Ptr CDouble -> Ptr CDouble -> IO CInt)

{-# LINE 57 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_miser_alloc" c'gsl_monte_miser_alloc
  :: CSize -> IO (Ptr C'gsl_monte_miser_state)
foreign import ccall "&gsl_monte_miser_alloc" p'gsl_monte_miser_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_monte_miser_state))

{-# LINE 58 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_miser_init" c'gsl_monte_miser_init
  :: Ptr C'gsl_monte_miser_state -> IO CInt
foreign import ccall "&gsl_monte_miser_init" p'gsl_monte_miser_init
  :: FunPtr (Ptr C'gsl_monte_miser_state -> IO CInt)

{-# LINE 59 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_miser_free" c'gsl_monte_miser_free
  :: Ptr C'gsl_monte_miser_state -> IO ()
foreign import ccall "&gsl_monte_miser_free" p'gsl_monte_miser_free
  :: FunPtr (Ptr C'gsl_monte_miser_state -> IO ())

{-# LINE 60 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

c'GSL_VEGAS_MODE_IMPORTANCE = 1
c'GSL_VEGAS_MODE_IMPORTANCE :: (Num a) => a

{-# LINE 62 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
c'GSL_VEGAS_MODE_IMPORTANCE_ONLY = 0
c'GSL_VEGAS_MODE_IMPORTANCE_ONLY :: (Num a) => a

{-# LINE 63 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
c'GSL_VEGAS_MODE_STRATIFIED = -1
c'GSL_VEGAS_MODE_STRATIFIED :: (Num a) => a

{-# LINE 64 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

data C'gsl_monte_vegas_state = C'gsl_monte_vegas_state{
{-# LINE 66 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

  c'gsl_monte_vegas_state'dim :: CSize
{-# LINE 67 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'bins_max :: CSize
{-# LINE 68 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'bins :: CUInt
{-# LINE 69 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'boxes :: CUInt
{-# LINE 70 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'xi :: Ptr CDouble
{-# LINE 71 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'xin :: Ptr CDouble
{-# LINE 72 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'delx :: Ptr CDouble
{-# LINE 73 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'weight :: Ptr CDouble
{-# LINE 74 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'vol :: CDouble
{-# LINE 75 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'x :: Ptr CDouble
{-# LINE 76 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'bin :: Ptr CInt
{-# LINE 77 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'box :: Ptr CInt
{-# LINE 78 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'd :: Ptr CDouble
{-# LINE 79 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'alpha :: CDouble
{-# LINE 80 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'mode :: CInt
{-# LINE 81 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'verbose :: CInt
{-# LINE 82 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'iterations :: CUInt
{-# LINE 83 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'stage :: CInt
{-# LINE 84 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'jac :: CDouble
{-# LINE 85 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'wtd_int_sum :: CDouble
{-# LINE 86 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'sum_wgts :: CDouble
{-# LINE 87 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'chi_sum :: CDouble
{-# LINE 88 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'chisq :: CDouble
{-# LINE 89 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'result :: CDouble
{-# LINE 90 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'sigma :: CDouble
{-# LINE 91 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'it_start :: CUInt
{-# LINE 92 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'it_num :: CUInt
{-# LINE 93 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'samples :: CUInt
{-# LINE 94 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'calls_per_box :: CUInt
{-# LINE 95 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
,
  c'gsl_monte_vegas_state'ostream :: Ptr CFile
{-# LINE 96 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'gsl_monte_vegas_state where
  sizeOf _ = 156
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 24
    v7 <- peekByteOff p 28
    v8 <- peekByteOff p 32
    v9 <- peekByteOff p 40
    v10 <- peekByteOff p 44
    v11 <- peekByteOff p 48
    v12 <- peekByteOff p 52
    v13 <- peekByteOff p 56
    v14 <- peekByteOff p 64
    v15 <- peekByteOff p 68
    v16 <- peekByteOff p 72
    v17 <- peekByteOff p 76
    v18 <- peekByteOff p 80
    v19 <- peekByteOff p 88
    v20 <- peekByteOff p 96
    v21 <- peekByteOff p 104
    v22 <- peekByteOff p 112
    v23 <- peekByteOff p 120
    v24 <- peekByteOff p 128
    v25 <- peekByteOff p 136
    v26 <- peekByteOff p 140
    v27 <- peekByteOff p 144
    v28 <- peekByteOff p 148
    v29 <- peekByteOff p 152
    return $ C'gsl_monte_vegas_state v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29
  poke p (C'gsl_monte_vegas_state v0 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 v14 v15 v16 v17 v18 v19 v20 v21 v22 v23 v24 v25 v26 v27 v28 v29) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 24 v6
    pokeByteOff p 28 v7
    pokeByteOff p 32 v8
    pokeByteOff p 40 v9
    pokeByteOff p 44 v10
    pokeByteOff p 48 v11
    pokeByteOff p 52 v12
    pokeByteOff p 56 v13
    pokeByteOff p 64 v14
    pokeByteOff p 68 v15
    pokeByteOff p 72 v16
    pokeByteOff p 76 v17
    pokeByteOff p 80 v18
    pokeByteOff p 88 v19
    pokeByteOff p 96 v20
    pokeByteOff p 104 v21
    pokeByteOff p 112 v22
    pokeByteOff p 120 v23
    pokeByteOff p 128 v24
    pokeByteOff p 136 v25
    pokeByteOff p 140 v26
    pokeByteOff p 144 v27
    pokeByteOff p 148 v28
    pokeByteOff p 152 v29
    return ()

{-# LINE 97 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}

foreign import ccall "gsl_monte_vegas_integrate" c'gsl_monte_vegas_integrate
  :: Ptr C'gsl_monte_function -> Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_rng -> Ptr C'gsl_monte_vegas_state -> Ptr CDouble -> Ptr CDouble -> IO CInt
foreign import ccall "&gsl_monte_vegas_integrate" p'gsl_monte_vegas_integrate
  :: FunPtr (Ptr C'gsl_monte_function -> Ptr CDouble -> Ptr CDouble -> CSize -> CSize -> Ptr C'gsl_rng -> Ptr C'gsl_monte_vegas_state -> Ptr CDouble -> Ptr CDouble -> IO CInt)

{-# LINE 99 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_vegas_alloc" c'gsl_monte_vegas_alloc
  :: CSize -> IO (Ptr C'gsl_monte_vegas_state)
foreign import ccall "&gsl_monte_vegas_alloc" p'gsl_monte_vegas_alloc
  :: FunPtr (CSize -> IO (Ptr C'gsl_monte_vegas_state))

{-# LINE 100 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_vegas_init" c'gsl_monte_vegas_init
  :: Ptr C'gsl_monte_vegas_state -> IO CInt
foreign import ccall "&gsl_monte_vegas_init" p'gsl_monte_vegas_init
  :: FunPtr (Ptr C'gsl_monte_vegas_state -> IO CInt)

{-# LINE 101 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}
foreign import ccall "gsl_monte_vegas_free" c'gsl_monte_vegas_free
  :: Ptr C'gsl_monte_vegas_state -> IO ()
foreign import ccall "&gsl_monte_vegas_free" p'gsl_monte_vegas_free
  :: FunPtr (Ptr C'gsl_monte_vegas_state -> IO ())

{-# LINE 102 "src/Bindings/Gsl/MonteCarloIntegration.hsc" #-}