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.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
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
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
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
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
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
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
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)
instance Storable C'gsl_siman_params_t where
sizeOf _ = 48
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 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 ()