1 // This file intentionally does not use include guards!! 2 // The intended usage of this file is to define MEX_FN to do something 3 // useful with a mex function, and then include this file. This file #undefs 4 // MEX_FN after it is done. This file contains 3 types of functions: 5 // 6 // - MEX_FN(ret, func, args): A function with return type 'ret', name 'func', 7 // and arguments 'args'. 8 // - MEX_FN_700(ret, func, func_700, args): Similar to MEX_FN, but func_700 is 9 // the name of the function with _700 appended. This is only used for 10 // Matlab 7.0 API functions. 11 // - MEX_FN_730(ret, func, func_730, args): Similar to MEX_FN_700, but for the 12 // Matlab 7.3 API. 13 14 // Provide default no-op definitions for the 3 macros if they don't already 15 // exist. 16 #ifndef MEX_FN 17 #define MEX_FN(ret, func, args) 18 #endif 19 20 #ifndef MEX_FN_730 21 #define MEX_FN_730(ret, func, func_730, args) MEX_FN(ret, func_730, args) 22 #endif 23 24 #ifndef MEX_FN_700 25 #define MEX_FN_700(ret, func, func_700, args) MEX_FN(ret, func_700, args) 26 #endif 27 28 // mex.h 29 //MEX_FN(int, mexPrintf, (const char*, ...)); 30 //MEX_FN(void, mexErrMsgTxt, (const char*)); 31 //MEX_FN(void, mexErrMsgIdAndTxt, (const char *, const char*, ...)); 32 MEX_FN(void, mexWarnMsgTxt, (const char *)); 33 //MEX_FN(void, mexWarnMsgIdAndTxt, (const char *, const char*, ...)); 34 //MEX_FN(void, mexMakeArrayPersistent, (const mxArray*)); 35 //MEX_FN(void, mexMakeMemoryPersistent, (void *ptr)); 36 //MEX_FN(int, mexSet, (double, const char*, mxArray*)); 37 //MEX_FN(const mxArray*, mexGet, (double, const char*)); 38 //MEX_FN(int, mexCallMATLAB, (int, mxArray**, int, const mxArray**, const char *)); 39 //MEX_FN(mxArray*, mexCallMATLABWithTrap, (int, mxArray**, int, const mxArray**, const char *)); 40 //MEX_FN(void, mexSetTrapFlag, (int)); 41 //MEX_FN(void, mexPrintAssertion, (const char*, const char*, int, const char*)); 42 //MEX_FN(bool, mexIsGlobal, (const mxArray*)); 43 //MEX_FN(int, mexPutVariable, (const char*, const char*, const mxArray*)); 44 //MEX_FN(const mxArray*, mexGetVariablePtr, (const char*, const char*)); 45 //MEX_FN(mxArray*, mexGetVariable, (const char*, const char*)); 46 //MEX_FN(void, mexLock, (void)); 47 //MEX_FN(void, mexUnlock, (void)); 48 //MEX_FN(bool, mexIsLocked, (void)); 49 //MEX_FN(const char*, mexFunctionName, (void)); 50 //MEX_FN(int, mexEvalString, (const char*)); 51 //MEX_FN(mxArray*, mexEvalStringWithTrap, (const char*)); 52 //MEX_FN(int, mexAtExit, (mex_exit_fn)); 53 54 // matrix.h 55 //MEX_FN(void*, mxMalloc, (size_t)); 56 //MEX_FN(void*, mxCalloc, (size_t, size_t)); 57 //MEX_FN(void, mxFree, (void*)); 58 //MEX_FN(void*, mxRealloc, (void*, size_t)); 59 MEX_FN_730(size_t, mxGetNumberOfDimensions, mxGetNumberOfDimensions_730, (const mxArray *)); 60 MEX_FN_700(int, mxGetNumberOfDimensions, mxGetNumberOfDimensions_700, (const mxArray *)); 61 MEX_FN_730(const size_t *, mxGetDimensions, mxGetDimensions_730, (const mxArray *)); 62 MEX_FN_700(const int *, mxGetDimensions, mxGetDimensions_700, (const mxArray *)); 63 //MEX_FN(size_t, mxGetM, (const mxArray*)); 64 //MEX_FN_730(size_t*, mxGetIr, mxGetIr_730, (const mxArray*)); 65 //MEX_FN_700(int*, mxGetIr, mxGetIr_700, (const mxArray*)); 66 //MEX_FN_730(size_t*, mxGetJc, mxGetJc_730, (const mxArray*)); 67 //MEX_FN_700(int*, mxGetJc, mxGetJc_700, (const mxArray*)); 68 //MEX_FN_730(size_t, mxGetNzmax, mxGetNzmax_730, (const mxArray*)); 69 //MEX_FN_700(int, mxGetNzmax, mxGetNzmax_700, (const mxArray*)); 70 //MEX_FN_730(void, mxSetNzmax, mxSetNzmax_730, (mxArray*, size_t)); 71 //MEX_FN_700(void, mxSetNzmax, mxSetNzmax_700, (mxArray*, int)); 72 //MEX_FN(const char*, mxGetFieldNameByNumber, (const mxArray*, int)); 73 //MEX_FN_730(mxArray*, mxGetFieldByNumber, mxGetFieldByNumber_730, (const mxArray*, size_t, int)); 74 //MEX_FN_700(mxArray*, mxGetFieldByNumber, mxGetFieldByNumber_700, (const mxArray*, int, int)); 75 //MEX_FN_730(mxArray*, mxGetCell, mxGetCell_730, (const mxArray*, size_t)); 76 //MEX_FN_700(mxArray*, mxGetCell, mxGetCell_700, (const mxArray*, int)); 77 MEX_FN(mxClassID, mxGetClassID, (const mxArray *)); 78 MEX_FN(void *, mxGetData, (const mxArray *)); 79 //MEX_FN(void, mxSetData, (mxArray*,void*)); 80 MEX_FN(bool, mxIsNumeric, (const mxArray *)); 81 //MEX_FN(bool, mxIsCell, (const mxArray*)); 82 MEX_FN(bool, mxIsLogical, (const mxArray *)); 83 //MEX_FN(bool, mxIsChar, (const mxArray*)); 84 //MEX_FN(bool, mxIsStruct, (const mxArray*)); 85 //MEX_FN(bool, mxIsOpaque, (const mxArray*)); 86 //MEX_FN(bool, mxIsFunctionHandle, (const mxArray*)); 87 //MEX_FN(bool, mxIsObject, (const mxArray*)); 88 //MEX_FN(void*, mxGetImagData, (const mxArray*)); 89 //MEX_FN(void, mxSetImagData, (mxArray*, void*)); 90 MEX_FN(bool, mxIsComplex, (const mxArray *)); 91 //MEX_FN(bool, mxIsSparse, (const mxArray*)); 92 //MEX_FN(bool, mxIsDouble, (const mxArray*)); 93 //MEX_FN(bool, mxIsSingle, (const mxArray*)); 94 //MEX_FN(bool, mxIsInt8, (const mxArray*)); 95 //MEX_FN(bool, mxIsUint8, (const mxArray*)); 96 //MEX_FN(bool, mxIsInt16, (const mxArray*)); 97 //MEX_FN(bool, mxIsUint16, (const mxArray*)); 98 //MEX_FN(bool, mxIsInt32, (const mxArray*)); 99 //MEX_FN(bool, mxIsUint32, (const mxArray*)); 100 //MEX_FN(bool, mxIsInt64, (const mxArray*)); 101 //MEX_FN(bool, mxIsUint64, (const mxArray*)); 102 //MEX_FN(size_t, mxGetNumberOfElements, (const mxArray*)); 103 //MEX_FN(double*, mxGetPr, (const mxArray*)); 104 //MEX_FN(void, mxSetPr, (mxArray*, double*)); 105 //MEX_FN(double*, mxGetPi, (const mxArray*)); 106 //MEX_FN(void, mxSetPi, (mxArray*, double*)); 107 //MEX_FN(mxChar*, mxGetChars, (const mxArray*)); 108 //MEX_FN(int, mxGetUserBits, (const mxArray*)); 109 //MEX_FN(void, mxSetUserBits, (mxArray*, int)); 110 MEX_FN(double, mxGetScalar, (const mxArray *)); 111 //MEX_FN(bool, mxIsFromGlobalWS, (const mxArray*)); 112 //MEX_FN(void, mxSetFromGlobalWS, (mxArray*, bool)); 113 //MEX_FN_730(void, mxSetM, mxSetM_730, (mxArray*, size_t)); 114 //MEX_FN_700(void, mxSetM, mxSetM_700, (mxArray*, int)); 115 //MEX_FN(size_t, mxGetN, (const mxArray*)); 116 //MEX_FN(bool, mxIsEmpty, (const mxArray*)); 117 //MEX_FN(int, mxGetFieldNumber, (const mxArray*, const char*)); 118 //MEX_FN_730(void, mxSetIr, mxSetIr_730, (mxArray*, size_t*)); 119 //MEX_FN_700(void, mxSetIr, mxSetIr_700, (mxArray*, int*)); 120 //MEX_FN_730(void, mxSetJc, mxSetJc_730, (mxArray*, size_t*)); 121 //MEX_FN_700(void, mxSetJc, mxSetJc_700, (mxArray*, int*)); 122 MEX_FN(size_t, mxGetElementSize, (const mxArray *)); 123 //MEX_FN_730(size_t, mxCalcSingleSubscript, mxCalcSingleSubscript_730, (const mxArray*, size_t, const size_t*)); 124 //MEX_FN_700(int, mxCalcSingleSubscript, mxCalcSingleSubscript_700, (const mxArray*, int, const int*)); 125 //MEX_FN(int, mxGetNumberOfFields, (const mxArray*)); 126 //MEX_FN_730(void, mxSetCell, mxSetCell_730, (mxArray*, size_t, mxArray*)); 127 //MEX_FN_700(void, mxSetCell, mxSetCell_700, (mxArray*, int, mxArray*)); 128 //MEX_FN_730(void, mxSetFieldByNumber, mxSetFieldByNumber_730, (mxArray*, size_t, int, mxArray*)); 129 //MEX_FN_700(void, mxSetFieldByNumber, mxSetFieldByNumber_700, (mxArray*, int, int, mxArray*)); 130 //MEX_FN_730(mxArray*, mxGetField, mxGetField_730, (const mxArray*, size_t, const char*)); 131 //MEX_FN_700(mxArray*, mxGetField, mxGetField_700, (const mxArray*, int, const char*)); 132 //MEX_FN_730(void, mxSetField, mxSetField_730, (mxArray*, size_t, const char*, mxArray*)); 133 //MEX_FN_700(void, mxSetField, mxSetField_700, (mxArray*, int, const char*, mxArray*)); 134 //MEX_FN_730(mxArray*, mxGetProperty, mxGetProperty_730, (const mxArray*, const size_t, const char*)); 135 //MEX_FN_700(mxArray*, mxGetProperty, mxGetProperty_700, (const mxArray*, const int, const char*)); 136 //MEX_FN_730(void, mxSetProperty, mxSetProperty_730, (mxArray*, size_t, const char*, const mxArray*)); 137 //MEX_FN_700(void, mxSetProperty, mxSetProperty_700, (mxArray*, int, const char*, const mxArray*)); 138 //MEX_FN(const char*, mxGetClassName, (const mxArray*)); 139 //MEX_FN(bool, mxIsClass, (const mxArray*, const char*)); 140 MEX_FN_730(mxArray *, mxCreateNumericMatrix, mxCreateNumericMatrix_730, (size_t, size_t, mxClassID, mxComplexity)); 141 MEX_FN_700(mxArray *, mxCreateNumericMatrix, mxCreateNumericMatrix_700, (int, int, mxClassID, mxComplexity)); 142 //MEX_FN_730(void, mxSetN, mxSetN_730, (mxArray*, size_t)); 143 //MEX_FN_700(void, mxSetN, mxSetN_700, (mxArray*, int)); 144 //MEX_FN_730(int, mxSetDimensions, mxSetDimensions_730, (mxArray*, const size_t*, size_t)); 145 //MEX_FN_700(int, mxSetDimensions, mxSetDimensions_700, (mxArray*, const int*, int)); 146 //MEX_FN(void, mxDestroyArray, (mxArray*)); 147 //MEX_FN_730(mxArray*, mxCreateNumericArray, mxCreateNumericArray_730, (size_t, const size_t*, mxClassID, mxComplexity)); 148 //MEX_FN_700(mxArray*, mxCreateNumericArray, mxCreateNumericArray_700, (int, const int*, mxClassID, mxComplexity)); 149 //MEX_FN_730(mxArray*, mxCreateCharArray, mxCreateCharArray_730, (size_t, const size_t*)); 150 //MEX_FN_700(mxArray*, mxCreateCharArray, mxCreateCharArray_700, (int, const int*)); 151 //MEX_FN_730(mxArray*, mxCreateDoubleMatrix, mxCreateDoubleMatrix_730, (size_t, size_t, mxComplexity)); 152 //MEX_FN_700(mxArray*, mxCreateDoubleMatrix, mxCreateDoubleMatrix_700, (int, int, mxComplexity)); 153 //MEX_FN(mxLogical*, mxGetLogicals, (const mxArray*)); 154 //MEX_FN_730(mxArray*, mxCreateLogicalArray, mxCreateLogicalArray_730, (size_t, const size_t*)); 155 //MEX_FN_700(mxArray*, mxCreateLogicalArray, mxCreateLogicalArray_700, (int, const int*)); 156 //MEX_FN_730(mxArray*, mxCreateLogicalMatrix, mxCreateLogicalMatrix_730, (size_t, size_t)); 157 //MEX_FN_700(mxArray*, mxCreateLogicalMatrix, mxCreateLogicalMatrix_700, (int, int)); 158 //MEX_FN(mxArray*, mxCreateLogicalScalar, (bool)); 159 //MEX_FN(bool, mxIsLogicalScalar, (const mxArray*)); 160 //MEX_FN(bool, mxIsLogicalScalarTrue, (const mxArray*)); 161 //MEX_FN(mxArray*, mxCreateDoubleScalar, (double)); 162 //MEX_FN_730(mxArray*, mxCreateSparse, mxCreateSparse_730, (size_t, size_t, size_t, mxComplexity)); 163 //MEX_FN_700(mxArray*, mxCreateSparse, mxCreateSparse_700, (int, int, int, mxComplexity)); 164 //MEX_FN_730(mxArray*, mxCreateSparseLogicalMatrix, mxCreateSparseLogicalMatrix_730, (size_t, size_t, size_t)); 165 //MEX_FN_700(mxArray*, mxCreateSparseLogicalMatrix, mxCreateSparseLogicalMatrix_700, (int, int, int)); 166 //MEX_FN_730(void, mxGetNChars, mxGetNChars_730, (const mxArray*, char*, size_t)); 167 //MEX_FN_700(void, mxGetNChars, mxGetNChars_700, (const mxArray*, char*, int)); 168 //MEX_FN_730(int, mxGetString, mxGetString_730, (const mxArray*, char*, size_t)); 169 //MEX_FN_700(int, mxGetString, mxGetString_700, (const mxArray*, char*, int)); 170 //MEX_FN(char*, mxArrayToString, (const mxArray*)); 171 //MEX_FN_730(mxArray*, mxCreateStringFromNChars, mxCreateStringFromNChars_730, (const char*, size_t)); 172 //MEX_FN_700(mxArray*, mxCreateStringFromNChars, mxCreateStringFromNChars_700, (const char*, int)); 173 //MEX_FN(mxArray*, mxCreateString, (const char*)); 174 //MEX_FN_730(mxArray*, mxCreateCharMatrixFromStrings, mxCreateCharMatrixFromStrings_730, (size_t, const char**)); 175 //MEX_FN_700(mxArray*, mxCreateCharMatrixFromStrings, mxCreateCharMatrixFromStrings_700, (int, const char**)); 176 //MEX_FN_730(mxArray*, mxCreateCellMatrix, mxCreateCellMatrix_730, (size_t, size_t)); 177 //MEX_FN_700(mxArray*, mxCreateCellMatrix, mxCreateCellMatrix_700, (int, int)); 178 //MEX_FN_730(mxArray*, mxCreateCellArray, mxCreateCellArray_730, (size_t, const size_t*)); 179 //MEX_FN_700(mxArray*, mxCreateCellArray, mxCreateCellArray_700, (int, const int*)); 180 //MEX_FN_730(mxArray*, mxCreateStructMatrix, mxCreateStructMatrix_730, (size_t, size_t, int, const char**)); 181 //MEX_FN_700(mxArray*, mxCreateStructMatrix, mxCreateStructMatrix_700, (int, int, int, const char**)); 182 //MEX_FN_730(mxArray*, mxCreateStructArray, mxCreateStructArray_730, (size_t, const size_t*, int, const char**)); 183 //MEX_FN_700(mxArray*, mxCreateStructArray, mxCreateStructArray_700, (int, const int*, int, const char**)); 184 //MEX_FN(mxArray*, mxDuplicateArray, (const mxArray*)); 185 //MEX_FN(int, mxSetClassName, (mxArray*, const char*)); 186 //MEX_FN(int, mxAddField, (mxArray*, const char*)); 187 //MEX_FN(void, mxRemoveField, (mxArray*, int)); 188 //MEX_FN(double, mxGetEps, (void)); 189 //MEX_FN(double, mxGetInf, (void)); 190 //MEX_FN(double, mxGetNaN, (void)); 191 //MEX_FN(bool, mxIsFinite, (double)); 192 //MEX_FN(bool, mxIsInf, (double)); 193 //MEX_FN(bool, mxIsNaN, (double)); 194 195 #ifdef MEX_FN 196 #undef MEX_FN 197 #endif 198 #ifdef MEX_FN_730 199 #undef MEX_FN_730 200 #endif 201 #ifdef MEX_FN_700 202 #undef MEX_FN_700 203 #endif 204