#ifndef _MOTORXP_
#define _MOTORXP_

#ifndef MOTORXP_DLL_EXPORT
#define MOTORXP_DLL_EXPORT __declspec(dllimport)
#endif // MOTORXP_DLL_EXPORT

#include <mex.h>

#ifdef __cplusplus
extern "C" {
#endif

void MOTORXP_DLL_EXPORT execute(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);
void MOTORXP_DLL_EXPORT readData(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);
void MOTORXP_DLL_EXPORT writeData(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);

void MOTORXP_DLL_EXPORT getProperties(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);
void MOTORXP_DLL_EXPORT calculate(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);

void MOTORXP_DLL_EXPORT initAssembleMXP(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);
void MOTORXP_DLL_EXPORT runAssembleMXP(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);
void MOTORXP_DLL_EXPORT getAssembleMXPResults(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);

void MOTORXP_DLL_EXPORT initMStimestepping(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);
void MOTORXP_DLL_EXPORT runMStimestepping(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);
void MOTORXP_DLL_EXPORT getMStimesteppingResults(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);

void MOTORXP_DLL_EXPORT saveMXP(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]);

#ifdef __cplusplus
}
#endif

#endif // _MOTORXP_