{-# INCLUDE <bindings.macros.h> #-}
{-# INCLUDE <fann.h> #-}
{-# LINE 1 "src/Bindings/Fann/TrainingData.hsc" #-}

{-# LINE 2 "src/Bindings/Fann/TrainingData.hsc" #-}

{-# LINE 3 "src/Bindings/Fann/TrainingData.hsc" #-}

-- | <http://leenissen.dk/fann/fann_1_2_0/x609.html>

module Bindings.Fann.TrainingData 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 8 "src/Bindings/Fann/TrainingData.hsc" #-}
import Bindings.Fann.DataStructures

foreign import ccall "fann_read_train_from_file" c'fann_read_train_from_file
  :: CString -> IO (Ptr C'fann_train_data)
foreign import ccall "&fann_read_train_from_file" p'fann_read_train_from_file
  :: FunPtr (CString -> IO (Ptr C'fann_train_data))

{-# LINE 11 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_save_train" c'fann_save_train
  :: Ptr C'fann_train_data -> Ptr CFile -> IO ()
foreign import ccall "&fann_save_train" p'fann_save_train
  :: FunPtr (Ptr C'fann_train_data -> Ptr CFile -> IO ())

{-# LINE 12 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_save_train_to_fixed" c'fann_save_train_to_fixed
  :: Ptr C'fann_train_data -> Ptr CFile -> CUInt -> IO ()
foreign import ccall "&fann_save_train_to_fixed" p'fann_save_train_to_fixed
  :: FunPtr (Ptr C'fann_train_data -> Ptr CFile -> CUInt -> IO ())

{-# LINE 13 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_destroy_train" c'fann_destroy_train
  :: Ptr C'fann_train_data -> IO ()
foreign import ccall "&fann_destroy_train" p'fann_destroy_train
  :: FunPtr (Ptr C'fann_train_data -> IO ())

{-# LINE 14 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_train_epoch" c'fann_train_epoch
  :: Ptr C'fann -> Ptr C'fann_train_data -> IO CFloat
foreign import ccall "&fann_train_epoch" p'fann_train_epoch
  :: FunPtr (Ptr C'fann -> Ptr C'fann_train_data -> IO CFloat)

{-# LINE 15 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_test_data" c'fann_test_data
  :: Ptr C'fann -> Ptr C'fann_train_data -> IO CFloat
foreign import ccall "&fann_test_data" p'fann_test_data
  :: FunPtr (Ptr C'fann -> Ptr C'fann_train_data -> IO CFloat)

{-# LINE 16 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_train_on_data" c'fann_train_on_data
  :: Ptr C'fann -> Ptr C'fann_train_data -> CUInt -> CUInt -> CFloat -> IO ()
foreign import ccall "&fann_train_on_data" p'fann_train_on_data
  :: FunPtr (Ptr C'fann -> Ptr C'fann_train_data -> CUInt -> CUInt -> CFloat -> IO ())

{-# LINE 17 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_train_on_data_callback" c'fann_train_on_data_callback
  :: Ptr C'fann -> Ptr C'fann_train_data -> CUInt -> CUInt -> CFloat -> FunPtr (CUInt -> CFloat -> IO CInt) -> IO ()
foreign import ccall "&fann_train_on_data_callback" p'fann_train_on_data_callback
  :: FunPtr (Ptr C'fann -> Ptr C'fann_train_data -> CUInt -> CUInt -> CFloat -> FunPtr (CUInt -> CFloat -> IO CInt) -> IO ())

{-# LINE 18 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_train_on_file" c'fann_train_on_file
  :: Ptr C'fann -> CString -> CUInt -> CUInt -> CFloat -> IO ()
foreign import ccall "&fann_train_on_file" p'fann_train_on_file
  :: FunPtr (Ptr C'fann -> CString -> CUInt -> CUInt -> CFloat -> IO ())

{-# LINE 19 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_train_on_file_callback" c'fann_train_on_file_callback
  :: Ptr C'fann -> CString -> CUInt -> CUInt -> CFloat -> FunPtr (CUInt -> CFloat -> IO CInt) -> IO ()
foreign import ccall "&fann_train_on_file_callback" p'fann_train_on_file_callback
  :: FunPtr (Ptr C'fann -> CString -> CUInt -> CUInt -> CFloat -> FunPtr (CUInt -> CFloat -> IO CInt) -> IO ())

{-# LINE 20 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_shuffle_train_data" c'fann_shuffle_train_data
  :: Ptr C'fann_train_data -> IO ()
foreign import ccall "&fann_shuffle_train_data" p'fann_shuffle_train_data
  :: FunPtr (Ptr C'fann_train_data -> IO ())

{-# LINE 21 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_merge_train_data" c'fann_merge_train_data
  :: Ptr C'fann_train_data -> Ptr C'fann_train_data -> IO (Ptr C'fann_train_data)
foreign import ccall "&fann_merge_train_data" p'fann_merge_train_data
  :: FunPtr (Ptr C'fann_train_data -> Ptr C'fann_train_data -> IO (Ptr C'fann_train_data))

{-# LINE 22 "src/Bindings/Fann/TrainingData.hsc" #-}
foreign import ccall "fann_duplicate_train_data" c'fann_duplicate_train_data
  :: Ptr C'fann_train_data -> IO (Ptr C'fann_train_data)
foreign import ccall "&fann_duplicate_train_data" p'fann_duplicate_train_data
  :: FunPtr (Ptr C'fann_train_data -> IO (Ptr C'fann_train_data))

{-# LINE 23 "src/Bindings/Fann/TrainingData.hsc" #-}