/**
 Copyright (C) 2014 The MathWorks, Inc.
*/
#ifndef MATHWORKS_MX_TO_MPS
#define MATHWORKS_MX_TO_MPS

typedef mpsSize mwSize;
typedef mpsIndex mwIndex;
typedef mpsArray mxArray;
typedef mpsLogical mxLogical;
typedef mpsChar mxChar;

/** mxComplexity */
typedef mpsComplexity mxComplexity;
#define mxREAL mpsREAL
#define mxCOMPLEX mpsCOMPLEX

/** mxClassID  */
typedef mpsClassID mxClassID;
#define mxUINT8_CLASS mpsUINT8_CLASS
#define mxINT8_CLASS mpsINT8_CLASS
#define mxUINT16_CLASS mpsUINT16_CLASS
#define mxINT16_CLASS mpsINT16_CLASS
#define mxUINT32_CLASS mpsUINT32_CLASS
#define mxINT32_CLASS mpsINT32_CLASS
#define mxUINT64_CLASS mpsUINT64_CLASS
#define mxINT64_CLASS mpsINT64_CLASS
#define mxSINGLE_CLASS mpsSINGLE_CLASS
#define mxDOUBLE_CLASS mpsDOUBLE_CLASS
#define mxLOGICAL_CLASS mpsLOGICAL_CLASS
#define mxCHAR_CLASS mpsCHAR_CLASS
#define mxSTRUCT_CLASS mpsSTRUCT_CLASS
#define mxCELL_CLASS mpsCELL_CLASS

/**  mxArray (Validate Data) */
#define mxIsDouble mpsIsDouble
#define mxIsSingle mpsIsSingle
#define mxIsComplex mpsIsComplex
#define mxIsNumeric mpsIsNumeric
#define mxIsInt64 mpsIsInt64
#define mxIsUint64 mpsIsUint64
#define mxIsInt32 mpsIsInt32
#define mxIsUint32 mpsIsUint32
#define mxIsInt16 mpsIsInt16
#define mxIsUint16 mpsIsUint16
#define mxIsInt8 mpsIsInt8
#define mxIsUint8 mpsIsUint8
#define mxIsChar mpsIsChar
#define mxIsLogical mpsIsLogical
#define mxIsLogicalScalar mpsIsLogicalScalar
#define mxIsLogicalScalarTrue mpsIsLogicalScalarTrue
#define mxIsStruct mpsIsStruct
#define mxIsCell mpsIsCell
#define mxIsClass mpsIsClass
#define mxIsEmpty mpsIsEmpty
#define mxIsSparse mpsIsSparse

/** mxArray (Create / Delete) */
#define mxCreateDoubleMatrix mpsCreateDoubleMatrix
#define mxCreateDoubleScalar mpsCreateDoubleScalar
#define mxCreateNumericMatrix mpsCreateNumericMatrix
#define mxCreateNumericArray mpsCreateNumericArray
#define mxCreateString mpsCreateString
#define mxCreateCharMatrixFromStrings mpsCreateCharMatrixFromStrings
#define mxCreateCharArray mpsCreateCharArray
#define mxCreateLogicalScalar mpsCreateLogicalScalar
#define mxCreateLogicalMatrix mpsCreateLogicalMatrix
#define mxCreateLogicalArray mpsCreateLogicalArray
#define mxCreateSparseLogicalMatrix mpsCreateSparseLogicalMatrix
#define mxCreateSparse mpsCreateSparse
#define mxCreateStructMatrix mpsCreateStructMatrix
#define mxCreateStructArray mpsCreateStructArray
#define mxCreateCellMatrix mpsCreateCellMatrix
#define mxCreateCellArray mpsCreateCellArray
#define mxDestroyArray mpsDestroyArray
#define mxDuplicateArray mpsDuplicateArray
#define mxFree mpsFree

/** mxArray (Access data) */
#define mxGetNumberOfDimensions mpsGetNumberOfDimensions
#define mxGetElementSize mpsGetElementSize
#define mxGetDimensions mpsGetDimensions
#define mxSetDimensions mpsSetDimensions
#define mxGetNumberOfElements mpsGetNumberOfElements
#define mxCalcSingleSubscript mpsCalcSingleSubscript
#define mxGetM mpsGetM
#define mxSetM mpsSetM
#define mxGetN mpsGetN
#define mxSetN mpsSetN
#define mxGetScalar mpsGetScalar
#define mxGetPr mpsGetPr
#define mxGetPi mpsGetPi
#define mxGetData mpsGetData
#define mxGetImagData mpsGetImagData
#define mxGetChars mpsGetChars
#define mxGetString mpsGetString
#define mxArrayToString mpsArrayToString
#define mxGetClassID mpsGetClassID
#define mxGetClassName mpsGetClassName
#define mxGetLogicals mpsGetLogicals
#define mxSetField mpsSetField
#define mxGetField mpsGetField
#define mxGetNumberOfFields mpsGetNumberOfFields
#define mxGetFieldNumber mpsGetFieldNumber
#define mxGetFieldNameByNumber mpsGetFieldNameByNumber
#define mxGetFieldByNumber mpsGetFieldByNumber
#define mxSetFieldByNumber mpsSetFieldByNumber
#define mxAddField mpsAddField
#define mxRemoveField mpsRemoveField
#define mxGetCell mpsGetCell
#define mxSetCell mpsSetCell
#define mxGetNzmax mpsGetNzmax
#define mxSetNzmax mpsSetNzmax
#define mxGetIr mpsGetIr
#define mxGetJc mpsGetJc
#endif
