module Bindings.Gsl.SimulatedAnnealing 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.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.Gsl.RandomNumberGeneration
type C'gsl_siman_Efunc_t = FunPtr (Ptr () -> IO CDouble)
foreign import ccall "wrapper" mk'gsl_siman_Efunc_t
:: (Ptr () -> IO CDouble) -> IO C'gsl_siman_Efunc_t
foreign import ccall "dynamic" mK'gsl_siman_Efunc_t
:: C'gsl_siman_Efunc_t -> (Ptr () -> IO CDouble)
type C'gsl_siman_step_t = FunPtr (Ptr C'gsl_rng -> Ptr () -> CDouble -> IO ())
foreign import ccall "wrapper" mk'gsl_siman_step_t
:: (Ptr C'gsl_rng -> Ptr () -> CDouble -> IO ()) -> IO C'gsl_siman_step_t
foreign import ccall "dynamic" mK'gsl_siman_step_t
:: C'gsl_siman_step_t -> (Ptr C'gsl_rng -> Ptr () -> CDouble -> IO ())
type C'gsl_siman_metric_t = FunPtr (Ptr () -> Ptr () -> IO CDouble)
foreign import ccall "wrapper" mk'gsl_siman_metric_t
:: (Ptr () -> Ptr () -> IO CDouble) -> IO C'gsl_siman_metric_t
foreign import ccall "dynamic" mK'gsl_siman_metric_t
:: C'gsl_siman_metric_t -> (Ptr () -> Ptr () -> IO CDouble)
type C'gsl_siman_print_t = FunPtr (FunPtr (Ptr () -> IO ()))
foreign import ccall "wrapper" mk'gsl_siman_print_t
:: (FunPtr (Ptr () -> IO ())) -> IO C'gsl_siman_print_t
foreign import ccall "dynamic" mK'gsl_siman_print_t
:: C'gsl_siman_print_t -> (FunPtr (Ptr () -> IO ()))
type C'gsl_siman_copy_t = FunPtr (FunPtr (Ptr () -> Ptr () -> IO ()))
foreign import ccall "wrapper" mk'gsl_siman_copy_t
:: (FunPtr (Ptr () -> Ptr () -> IO ())) -> IO C'gsl_siman_copy_t
foreign import ccall "dynamic" mK'gsl_siman_copy_t
:: C'gsl_siman_copy_t -> (FunPtr (Ptr () -> Ptr () -> IO ()))
type C'gsl_siman_copy_construct_t = FunPtr (FunPtr (Ptr () -> IO (Ptr ())))
foreign import ccall "wrapper" mk'gsl_siman_copy_construct_t
:: (FunPtr (Ptr () -> IO (Ptr ()))) -> IO C'gsl_siman_copy_construct_t
foreign import ccall "dynamic" mK'gsl_siman_copy_construct_t
:: C'gsl_siman_copy_construct_t -> (FunPtr (Ptr () -> IO (Ptr ())))
type C'gsl_siman_destroy_t = FunPtr (FunPtr (Ptr () -> IO ()))
foreign import ccall "wrapper" mk'gsl_siman_destroy_t
:: (FunPtr (Ptr () -> IO ())) -> IO C'gsl_siman_destroy_t
foreign import ccall "dynamic" mK'gsl_siman_destroy_t
:: C'gsl_siman_destroy_t -> (FunPtr (Ptr () -> IO ()))
data C'gsl_siman_params_t = C'gsl_siman_params_t{
c'gsl_siman_params_t'n_tries :: CInt,
c'gsl_siman_params_t'iters_fixed_T :: CInt,
c'gsl_siman_params_t'step_size :: CDouble,
c'gsl_siman_params_t'k :: CDouble,
c'gsl_siman_params_t't_initial :: CDouble,
c'gsl_siman_params_t'mu_t :: CDouble,
c'gsl_siman_params_t't_min :: CDouble
} deriving (Eq,Show)
p'gsl_siman_params_t'n_tries p = plusPtr p 0
p'gsl_siman_params_t'n_tries :: Ptr (C'gsl_siman_params_t) -> Ptr (CInt)
p'gsl_siman_params_t'iters_fixed_T p = plusPtr p 4
p'gsl_siman_params_t'iters_fixed_T :: Ptr (C'gsl_siman_params_t) -> Ptr (CInt)
p'gsl_siman_params_t'step_size p = plusPtr p 8
p'gsl_siman_params_t'step_size :: Ptr (C'gsl_siman_params_t) -> Ptr (CDouble)
p'gsl_siman_params_t'k p = plusPtr p 16
p'gsl_siman_params_t'k :: Ptr (C'gsl_siman_params_t) -> Ptr (CDouble)
p'gsl_siman_params_t't_initial p = plusPtr p 24
p'gsl_siman_params_t't_initial :: Ptr (C'gsl_siman_params_t) -> Ptr (CDouble)
p'gsl_siman_params_t'mu_t p = plusPtr p 32
p'gsl_siman_params_t'mu_t :: Ptr (C'gsl_siman_params_t) -> Ptr (CDouble)
p'gsl_siman_params_t't_min p = plusPtr p 40
p'gsl_siman_params_t't_min :: Ptr (C'gsl_siman_params_t) -> Ptr (CDouble)
instance Storable C'gsl_siman_params_t where
sizeOf _ = 48
alignment _ = 4
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 40
return $ C'gsl_siman_params_t v0 v1 v2 v3 v4 v5 v6
poke p (C'gsl_siman_params_t v0 v1 v2 v3 v4 v5 v6) = 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 40 v6
return ()