/*
 * MATLAB Compiler: 4.10 (R2009a)
 * Date: Sun Sep 26 18:11:35 2010
 * Arguments: "-B" "macro_default" "-B" "csharedlib:libmatlab" "-W"
 * "lib:libmatlab" "-T" "link:lib" "addmatrix.m" "fitgau.m" "gaufunc.m" "-v" 
 */

#ifndef __libmatlab_h
#define __libmatlab_h 1

#if defined(__cplusplus) && !defined(mclmcrrt_h) && defined(__linux__)
#  pragma implementation "mclmcrrt.h"
#endif
#include "mclmcrrt.h"
#ifdef __cplusplus
extern "C" {
#endif

#if defined(__SUNPRO_CC)
/* Solaris shared libraries use __global, rather than mapfiles
 * to define the API exported from a shared library. __global is
 * only necessary when building the library -- files including
 * this header file to use the library do not need the __global
 * declaration; hence the EXPORTING_<library> logic.
 */

#ifdef EXPORTING_libmatlab
#define PUBLIC_libmatlab_C_API __global
#else
#define PUBLIC_libmatlab_C_API /* No import statement needed. */
#endif

#define LIB_libmatlab_C_API PUBLIC_libmatlab_C_API

#elif defined(_HPUX_SOURCE)

#ifdef EXPORTING_libmatlab
#define PUBLIC_libmatlab_C_API __declspec(dllexport)
#else
#define PUBLIC_libmatlab_C_API __declspec(dllimport)
#endif

#define LIB_libmatlab_C_API PUBLIC_libmatlab_C_API


#else

#define LIB_libmatlab_C_API

#endif

/* This symbol is defined in shared libraries. Define it here
 * (to nothing) in case this isn't a shared library. 
 */
#ifndef LIB_libmatlab_C_API 
#define LIB_libmatlab_C_API /* No special import/export declaration */
#endif

extern LIB_libmatlab_C_API 
bool MW_CALL_CONV libmatlabInitializeWithHandlers(mclOutputHandlerFcn error_handler,
                                                  mclOutputHandlerFcn print_handler);

extern LIB_libmatlab_C_API 
bool MW_CALL_CONV libmatlabInitialize(void);

extern LIB_libmatlab_C_API 
void MW_CALL_CONV libmatlabTerminate(void);



extern LIB_libmatlab_C_API 
void MW_CALL_CONV libmatlabPrintStackTrace(void);


extern LIB_libmatlab_C_API 
bool MW_CALL_CONV mlxAddmatrix(int nlhs, mxArray *plhs[],
                               int nrhs, mxArray *prhs[]);

extern LIB_libmatlab_C_API 
bool MW_CALL_CONV mlxFitgau(int nlhs, mxArray *plhs[],
                            int nrhs, mxArray *prhs[]);

extern LIB_libmatlab_C_API 
bool MW_CALL_CONV mlxGaufunc(int nlhs, mxArray *plhs[],
                             int nrhs, mxArray *prhs[]);

extern LIB_libmatlab_C_API 
long MW_CALL_CONV libmatlabGetMcrID() ;



extern LIB_libmatlab_C_API bool MW_CALL_CONV mlfAddmatrix(int nargout
                                                          , mxArray** a
                                                          , mxArray* a1
                                                          , mxArray* a2);

extern LIB_libmatlab_C_API bool MW_CALL_CONV mlfFitgau(int nargout, mxArray** vp
                                                       , mxArray** fy
                                                       , mxArray* vx
                                                       , mxArray* vy
                                                       , mxArray* vp0
                                                       , mxArray* vx2);

extern LIB_libmatlab_C_API bool MW_CALL_CONV mlfGaufunc(int nargout, mxArray** y
                                                        , mxArray* vp
                                                        , mxArray* vx);

#ifdef __cplusplus
}
#endif

#endif
