#ifndef _DLL_OPTOM_H_
#define _DLL_OPTOM_H_

#include "OptiM_Param.h"
#include "OptiM_Tools.h"

#if defined(WIN32)
    #include <windows.h>	
#else
	#include <dlfcn.h>
#endif

#if defined(WIN32)
	//#if BUILDING_DLL
		#define DLLIMPORT __declspec(dllexport)
	//#else
	//	#define DLLIMPORT __declspec(dllimport)
	//#endif
#else
	#define DLLIMPORT
#endif

extern "C" DLLIMPORT double OBJ_F(int current_iter, int thread_id, OptiM_Param *Par, double *X, double *Gain, double *C, double *F);
extern "C" DLLIMPORT void Gradient(OptiM_Param *Par, double *X, double Fobj, double *Feps, double *C, double *dF);
extern "C" DLLIMPORT void Hesjan(OptiM_Param *Par, double *dF, double *Feps, double *X, double *C, double **dH);

#endif //_DLL_OPTOM_H_

