9#error Using MATLAB Data API with C Matrix API is not supported.
15#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 3))
27#define LIBMMWMATRIX_PUBLISHED_API_EXTERN_C extern "C"
29#define LIBMMWMATRIX_PUBLISHED_API_EXTERN_C extern
34#define MW_FIRST_API_VERSION 700
54#define MW_LATEST_API_VERSION 800
57#define MW_REL2VER(A) A
59#if defined(MX_COMPAT_32) || defined(MEX_DOUBLE_HANDLE)
61#if defined(MATLAB_MEXCMD_RELEASE) || defined(MATLAB_MEXSRC_RELEASE)
65#if defined(MX_COMPAT_32) && defined(MATLAB_MEXCMD_RELEASE)
66#error "MEX command option -R20XXx is incompatible with MX_COMPAT_32"
69#if defined(MEX_DOUBLE_HANDLE) && defined(MATLAB_MEXCMD_RELEASE)
70#error "MEX command option -R20XXx is incompatible with MEX_DOUBLE_HANDLE"
73#if defined(MX_COMPAT_32) && defined(MATLAB_MEXSRC_RELEASE)
74#error "Source code macro MATLAB_MEXSRC_RELEASE is incompatible with MX_COMPAT_32"
77#if defined(MEX_DOUBLE_HANDLE) && defined(MATLAB_MEXSRC_RELEASE)
78#error "Source code macro MATLAB_MEXSRC_RELEASE is incompatible with MEX_DOUBLE_HANDLE"
85#define MATLAB_TARGET_API_VERSION MW_FIRST_API_VERSION
93#if defined(MATLAB_MEXCMD_RELEASE)
94#define MW_MEXCMD_VERSION MW_REL2VER(MATLAB_MEXCMD_RELEASE)
95#if MW_MEXCMD_VERSION < MW_FIRST_API_VERSION
96#error invalid MATLAB_MEXCMD_RELEASE definition
100#if defined(MATLAB_MEXSRC_RELEASE)
101#define MW_MEXSRC_VERSION MW_REL2VER(MATLAB_MEXSRC_RELEASE)
102#if MW_MEXSRC_VERSION < MW_FIRST_API_VERSION
103#error invalid MATLAB_MEXSRC_RELEASE definition
107#if defined(MATLAB_DEFAULT_RELEASE)
108#define MW_DEFAULT_VERSION MW_REL2VER(MATLAB_DEFAULT_RELEASE)
109#if MW_DEFAULT_VERSION < MW_FIRST_API_VERSION
110#error invalid MATLAB_DEFAULT_RELEASE definition
114#if defined(MATLAB_MEXCMD_RELEASE) && defined(MATLAB_MEXSRC_RELEASE)
115#if MW_MEXCMD_VERSION != MW_MEXSRC_VERSION
116#error "MEX command option -R20XXx is incompatible with MATLAB_MEXSRC_RELEASE"
120#if defined(MATLAB_MEXCMD_RELEASE) || defined(MATLAB_MEXSRC_RELEASE)
124#if defined(MATLAB_MEXCMD_RELEASE)
125#define MATLAB_TARGET_API_VERSION MW_MEXCMD_VERSION
127#define MATLAB_TARGET_API_VERSION MW_MEXSRC_VERSION
132#if defined(MATLAB_DEFAULT_RELEASE)
133#define MATLAB_TARGET_API_VERSION MW_DEFAULT_VERSION
137#define MATLAB_TARGET_API_VERSION MW_LATEST_API_VERSION
145#if defined(TARGET_API_VERSION)
146#if MATLAB_TARGET_API_VERSION != TARGET_API_VERSION
147#error MATLAB_TARGET_API_VERSION != TARGET_API_VERSION
150#define TARGET_API_VERSION MATLAB_TARGET_API_VERSION
158typedef struct mxArray_tag mxArray;
163typedef void (*mxFunctionPtr)(
int nlhs, mxArray *plhs[],
int nrhs, mxArray *prhs[]);
168#define mxMAXNAM TMW_NAME_LENGTH_MAX
173typedef bool mxLogical;
178typedef CHAR16_T mxChar;
203#if defined(_LP64) || defined(_WIN64)
204 mxINDEX_CLASS = mxUINT64_CLASS
206 mxINDEX_CLASS = mxUINT32_CLASS
213typedef enum { mxREAL, mxCOMPLEX } mxComplexity;
218typedef double mxDouble;
219typedef float mxSingle;
220typedef int8_T mxInt8;
221typedef uint8_T mxUint8;
222typedef int16_T mxInt16;
223typedef uint16_T mxUint16;
224typedef int32_T mxInt32;
225typedef uint32_T mxUint32;
226typedef int64_T mxInt64;
227typedef uint64_T mxUint64;
229#if TARGET_API_VERSION >= 800
246#if defined(TARGET_API_VERSION)
247#if !(TARGET_API_VERSION == 700 || TARGET_API_VERSION == 800)
248#error invalid TARGET_VERSION_API definition
249#elif defined(MEX_DOUBLE_HANDLE) && TARGET_API_VERSION != 700
250#error It is illegal to use MEX_DOUBLE_HANDLE with linear versioning
251#elif defined(MX_COMPAT_32) && TARGET_API_VERSION != 700
252#error It is illegal to use MX_COMPAT_32 with linear versioning
257#if !defined(TARGET_API_VERSION) || TARGET_API_VERSION == 700
263#if !defined(MX_COMPAT_32)
265#define mxSetProperty mxSetProperty_730
266#define mxGetProperty mxGetProperty_730
267#define mxSetField mxSetField_730
268#define mxSetFieldByNumber mxSetFieldByNumber_730
269#define mxGetFieldByNumber mxGetFieldByNumber_730
270#define mxGetField mxGetField_730
271#define mxCreateStructMatrix mxCreateStructMatrix_730
272#define mxCreateCellMatrix mxCreateCellMatrix_730
273#define mxCreateCharMatrixFromStrings mxCreateCharMatrixFromStrings_730
274#define mxGetString mxGetString_730
275#define mxGetNumberOfDimensions mxGetNumberOfDimensions_730
276#define mxGetDimensions mxGetDimensions_730
277#define mxSetDimensions mxSetDimensions_730
278#define mxSetIr mxSetIr_730
279#define mxGetIr mxGetIr_730
280#define mxSetJc mxSetJc_730
281#define mxGetJc mxGetJc_730
282#define mxCreateStructArray mxCreateStructArray_730
283#define mxCreateCharArray mxCreateCharArray_730
284#define mxCreateNumericArray mxCreateNumericArray_730
285#define mxCreateCellArray mxCreateCellArray_730
286#define mxCreateLogicalArray mxCreateLogicalArray_730
287#define mxGetCell mxGetCell_730
288#define mxSetCell mxSetCell_730
289#define mxSetNzmax mxSetNzmax_730
290#define mxSetN mxSetN_730
291#define mxSetM mxSetM_730
292#define mxGetNzmax mxGetNzmax_730
293#define mxCreateDoubleMatrix mxCreateDoubleMatrix_730
294#define mxCreateNumericMatrix mxCreateNumericMatrix_730
295#define mxCreateLogicalMatrix mxCreateLogicalMatrix_730
296#define mxCreateSparse mxCreateSparse_730
297#define mxCreateSparseLogicalMatrix mxCreateSparseLogicalMatrix_730
298#define mxGetNChars mxGetNChars_730
299#define mxCreateStringFromNChars mxCreateStringFromNChars_730
300#define mxCalcSingleSubscript mxCalcSingleSubscript_730
301#define mxGetDimensions_fcn mxGetDimensions_730
309#define mxGetNumberOfDimensions mxGetNumberOfDimensions_700
310#define mxGetDimensions mxGetDimensions_700
311#define mxGetDimensions_fcn mxGetDimensions_700
312#define mxGetIr mxGetIr_700
313#define mxGetJc mxGetJc_700
314#define mxGetCell mxGetCell_700
315#define mxGetNzmax mxGetNzmax_700
316#define mxSetNzmax mxSetNzmax_700
317#define mxGetFieldByNumber mxGetFieldByNumber_700
318#define mxSetProperty mxSetProperty_700
319#define mxGetProperty mxGetProperty_700
320#define mxSetField mxSetField_700
321#define mxSetFieldByNumber mxSetFieldByNumber_700
322#define mxGetField mxGetField_700
323#define mxCreateStructMatrix mxCreateStructMatrix_700
324#define mxCreateCellMatrix mxCreateCellMatrix_700
325#define mxCreateCharMatrixFromStrings mxCreateCharMatrixFromStrings_700
326#define mxGetString mxGetString_700
327#define mxSetDimensions mxSetDimensions_700
328#define mxSetIr mxSetIr_700
329#define mxSetJc mxSetJc_700
330#define mxCreateStructArray mxCreateStructArray_700
331#define mxCreateCharArray mxCreateCharArray_700
332#define mxCreateNumericArray mxCreateNumericArray_700
333#define mxCreateCellArray mxCreateCellArray_700
334#define mxCreateLogicalArray mxCreateLogicalArray_700
335#define mxSetCell mxSetCell_700
336#define mxSetN mxSetN_700
337#define mxSetM mxSetM_700
338#define mxCreateDoubleMatrix mxCreateDoubleMatrix_700
339#define mxCreateNumericMatrix mxCreateNumericMatrix_700
340#define mxCreateLogicalMatrix mxCreateLogicalMatrix_700
341#define mxCreateSparse mxCreateSparse_700
342#define mxCreateSparseLogicalMatrix mxCreateSparseLogicalMatrix_700
343#define mxGetNChars mxGetNChars_700
344#define mxCreateStringFromNChars mxCreateStringFromNChars_700
345#define mxCalcSingleSubscript mxCalcSingleSubscript_700
350#elif TARGET_API_VERSION == 800
352#define mxMalloc mxMalloc_800
353#define mxCalloc mxCalloc_800
354#define mxRealloc mxRealloc_800
355#define mxGetM mxGetM_800
356#define mxGetN mxGetN_800
357#define mxGetNumberOfElements mxGetNumberOfElements_800
358#define mxFree mxFree_800
359#define mxGetEps mxGetEps_800
360#define mxGetInf mxGetInf_800
361#define mxGetFieldNameByNumber mxGetFieldNameByNumber_800
362#define mxGetClassID mxGetClassID_800
363#define mxIsNumeric mxIsNumeric_800
364#define mxIsCell mxIsCell_800
365#define mxIsLogical mxIsLogical_800
366#define mxIsChar mxIsChar_800
367#define mxIsStruct mxIsStruct_800
368#define mxIsSparse mxIsSparse_800
369#define mxIsDouble mxIsDouble_800
370#define mxIsSingle mxIsSingle_800
371#define mxIsInt8 mxIsInt8_800
372#define mxIsUint8 mxIsUint8_800
373#define mxIsInt16 mxIsInt16_800
374#define mxIsUint16 mxIsUint16_800
375#define mxIsInt32 mxIsInt32_800
376#define mxIsUint32 mxIsUint32_800
377#define mxIsInt64 mxIsInt64_800
378#define mxIsUint64 mxIsUint64_800
379#define mxIsFromGlobalWS mxIsFromGlobalWS_800
380#define mxIsEmpty mxIsEmpty_800
381#define mxGetFieldNumber mxGetFieldNumber_800
382#define mxGetNumberOfFields mxGetNumberOfFields_800
383#define mxGetClassName mxGetClassName_800
384#define mxIsClass mxIsClass_800
385#define mxDestroyArray mxDestroyArray_800
386#define mxCreateDoubleScalar mxCreateDoubleScalar_800
387#define mxCreateString mxCreateString_800
388#define mxAddField mxAddField_800
389#define mxRemoveField mxRemoveField_800
390#define mxGetNaN mxGetNaN_800
391#define mxIsFinite mxIsFinite_800
392#define mxIsInf mxIsInf_800
393#define mxIsNaN mxIsNaN_800
394#define mxIsScalar mxIsScalar_800
395#define mxIsOpaque mxIsOpaque_800
396#define mxIsFunctionHandle mxIsFunctionHandle_800
397#define mxIsObject mxIsObject_800
398#define mxGetChars mxGetChars_800
399#define mxGetUserBits mxGetUserBits_800
400#define mxSetUserBits mxSetUserBits_800
401#define mxSetFromGlobalWS mxSetFromGlobalWS_800
402#define mxCreateUninitNumericMatrix mxCreateUninitNumericMatrix_800
403#define mxCreateUninitNumericArray mxCreateUninitNumericArray_800
404#define mxGetLogicals mxGetLogicals_800
405#define mxCreateLogicalScalar mxCreateLogicalScalar_800
406#define mxIsLogicalScalar mxIsLogicalScalar_800
407#define mxIsLogicalScalarTrue mxIsLogicalScalarTrue_800
408#define mxArrayToString mxArrayToString_800
409#define mxArrayToUTF8String mxArrayToUTF8String_800
410#define mxSetClassName mxSetClassName_800
411#define mxGetNumberOfDimensions mxGetNumberOfDimensions_800
412#define mxGetDimensions mxGetDimensions_800
413#define mxGetIr mxGetIr_800
414#define mxGetJc mxGetJc_800
415#define mxGetNzmax mxGetNzmax_800
416#define mxGetFieldByNumber mxGetFieldByNumber_800
417#define mxGetCell mxGetCell_800
418#define mxSetIr mxSetIr_800
419#define mxSetJc mxSetJc_800
420#define mxCalcSingleSubscript mxCalcSingleSubscript_800
421#define mxSetCell mxSetCell_800
422#define mxSetFieldByNumber mxSetFieldByNumber_800
423#define mxGetField mxGetField_800
424#define mxSetField mxSetField_800
425#define mxGetProperty mxGetProperty_800
426#define mxSetProperty mxSetProperty_800
427#define mxCreateNumericMatrix mxCreateNumericMatrix_800
428#define mxCreateNumericArray mxCreateNumericArray_800
429#define mxCreateCharArray mxCreateCharArray_800
430#define mxCreateDoubleMatrix mxCreateDoubleMatrix_800
431#define mxCreateSparse mxCreateSparse_800
432#define mxGetString mxGetString_800
433#define mxCreateCharMatrixFromStrings mxCreateCharMatrixFromStrings_800
434#define mxCreateCellMatrix mxCreateCellMatrix_800
435#define mxCreateCellArray mxCreateCellArray_800
436#define mxCreateStructMatrix mxCreateStructMatrix_800
437#define mxCreateStructArray mxCreateStructArray_800
438#define mxCreateLogicalArray mxCreateLogicalArray_800
439#define mxCreateLogicalMatrix mxCreateLogicalMatrix_800
440#define mxCreateSparseLogicalMatrix mxCreateSparseLogicalMatrix_800
441#define mxCreateStringFromNChars mxCreateStringFromNChars_800
442#define mxGetNChars mxGetNChars_800
443#define mxSetM mxSetM_800
444#define mxSetN mxSetN_800
445#define mxSetDimensions mxSetDimensions_800
446#define mxSetNzmax mxSetNzmax_800
447#define mxGetData mxGetData_800
448#define mxSetData mxSetData_800
449#define mxIsComplex mxIsComplex_800
450#define mxGetScalar mxGetScalar_800
451#define mxGetPr mxGetPr_800
452#define mxSetPr mxSetPr_800
453#define mxGetElementSize mxGetElementSize_800
454#define mxDuplicateArray mxDuplicateArray_800
455#define mxGetDoubles mxGetDoubles_800
456#define mxSetDoubles mxSetDoubles_800
457#define mxGetComplexDoubles mxGetComplexDoubles_800
458#define mxSetComplexDoubles mxSetComplexDoubles_800
459#define mxGetSingles mxGetSingles_800
460#define mxSetSingles mxSetSingles_800
461#define mxGetComplexSingles mxGetComplexSingles_800
462#define mxSetComplexSingles mxSetComplexSingles_800
463#define mxGetInt8s mxGetInt8s_800
464#define mxSetInt8s mxSetInt8s_800
465#define mxGetComplexInt8s mxGetComplexInt8s_800
466#define mxSetComplexInt8s mxSetComplexInt8s_800
467#define mxGetUint8s mxGetUint8s_800
468#define mxSetUint8s mxSetUint8s_800
469#define mxGetComplexUint8s mxGetComplexUint8s_800
470#define mxSetComplexUint8s mxSetComplexUint8s_800
471#define mxGetInt16s mxGetInt16s_800
472#define mxSetInt16s mxSetInt16s_800
473#define mxGetComplexInt16s mxGetComplexInt16s_800
474#define mxSetComplexInt16s mxSetComplexInt16s_800
475#define mxGetUint16s mxGetUint16s_800
476#define mxSetUint16s mxSetUint16s_800
477#define mxGetComplexUint16s mxGetComplexUint16s_800
478#define mxSetComplexUint16s mxSetComplexUint16s_800
479#define mxGetInt32s mxGetInt32s_800
480#define mxSetInt32s mxSetInt32s_800
481#define mxGetComplexInt32s mxGetComplexInt32s_800
482#define mxSetComplexInt32s mxSetComplexInt32s_800
483#define mxGetUint32s mxGetUint32s_800
484#define mxSetUint32s mxSetUint32s_800
485#define mxGetComplexUint32s mxGetComplexUint32s_800
486#define mxSetComplexUint32s mxSetComplexUint32s_800
487#define mxGetInt64s mxGetInt64s_800
488#define mxSetInt64s mxSetInt64s_800
489#define mxGetComplexInt64s mxGetComplexInt64s_800
490#define mxSetComplexInt64s mxSetComplexInt64s_800
491#define mxGetUint64s mxGetUint64s_800
492#define mxSetUint64s mxSetUint64s_800
493#define mxGetComplexUint64s mxGetComplexUint64s_800
494#define mxSetComplexUint64s mxSetComplexUint64s_800
495#define mxMakeArrayReal mxMakeArrayReal_800
496#define mxMakeArrayComplex mxMakeArrayComplex_800
497#define mxGetPi mxGetPiIsDeprecated
498#define mxGetImagData mxGetImagDataIsDeprecated
499#define mxSetImagData mxSetImagDataIsDeprecated
500#define mxSetPi mxSetPiIsDeprecated
501#define mxCreateSharedDataCopy mxCreateSharedDataCopyIsDeprecated
502#define mxCreateUninitDoubleMatrix mxCreateUninitDoubleMatrixIsDeprecated
503#define mxFastZeros mxFastZerosIsDeprecated
504#define mxUnreference mxUnreferenceIsDeprecated
505#define mxUnshareArray mxUnshareArrayIsDeprecated
506#define mxGetPropertyShared mxGetPropertySharedIsDeprecated
507#define mxSetPropertyShared mxSetPropertySharedIsDeprecated
514LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void *mxMalloc(
size_t n
520LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void *mxCalloc(
size_t n,
527LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxFree(
void *ptr) ;
532LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void *mxRealloc(
void *ptr,
size_t size);
537LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mwSize mxGetNumberOfDimensions(
const mxArray *pa);
542LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
const mwSize *mxGetDimensions(
const mxArray *pa);
547LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
size_t mxGetM(
const mxArray *pa);
552LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mwIndex *mxGetIr(
const mxArray *pa);
557LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mwIndex *mxGetJc(
const mxArray *pa);
562LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mwSize mxGetNzmax(
const mxArray *pa);
567LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetNzmax(mxArray *pa, mwSize nzmax);
572LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
const char *mxGetFieldNameByNumber(
const mxArray *pa,
int n);
579LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
580mxGetFieldByNumber(
const mxArray *pa, mwIndex i,
int fieldnum);
585LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxGetCell(
const mxArray *pa, mwIndex i);
590LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxClassID mxGetClassID(
const mxArray *pa);
595LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void *mxGetData(
const mxArray *pa
601LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetData(mxArray *pa,
609LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsNumeric(
const mxArray *pa);
614LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsCell(
const mxArray *pa);
619LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsLogical(
const mxArray *pa);
624LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsScalar(
const mxArray *pa);
629LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsChar(
const mxArray *pa);
634LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsStruct(
const mxArray *pa);
639LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsOpaque(
const mxArray *pa);
644LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsFunctionHandle(
const mxArray *pa);
651LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsObject(
const mxArray *pa
653#if !defined(TARGET_API_VERSION) || (TARGET_API_VERSION == 700)
657LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void *mxGetImagData(
const mxArray *pa
663LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void
664mxSetImagData(mxArray *pa,
672LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsComplex(
const mxArray *pa);
677LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsSparse(
const mxArray *pa);
683LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsDouble(
const mxArray *pa);
689LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsSingle(
const mxArray *pa);
695LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsInt8(
const mxArray *pa);
701LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsUint8(
const mxArray *pa);
707LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsInt16(
const mxArray *pa);
713LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsUint16(
const mxArray *pa);
719LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsInt32(
const mxArray *pa);
725LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsUint32(
const mxArray *pa);
731LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsInt64(
const mxArray *pa);
737LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsUint64(
const mxArray *pa);
742LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
size_t mxGetNumberOfElements(
746#if !defined(TARGET_API_VERSION) || (TARGET_API_VERSION == 700)
750LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
double *mxGetPi(
const mxArray *pa
756LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetPi(mxArray *pa,
764LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxChar *mxGetChars(
const mxArray *pa
772LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxGetUserBits(
const mxArray *pa
780LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetUserBits(mxArray *pa,
786LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
double mxGetScalar(
const mxArray *pa);
793#pragma aux mxGetScalar value[8087];
799LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsFromGlobalWS(
const mxArray *pa);
804LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetFromGlobalWS(mxArray *pa,
bool global);
809LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetM(mxArray *pa, mwSize m);
814LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
size_t mxGetN(
const mxArray *pa);
819LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsEmpty(
const mxArray *pa
824LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxGetFieldNumber(
const mxArray *pa,
const char *name);
829LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetIr(mxArray *pa, mwIndex *newir);
834LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetJc(mxArray *pa, mwIndex *newjc);
836LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
double *mxGetPr(
const mxArray *pa);
837LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetPr(mxArray *pa,
double *newdata);
838LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
size_t mxGetElementSize(
const mxArray *pa);
844LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mwIndex mxCalcSingleSubscript(
const mxArray *pa,
846 const mwIndex *subs);
852LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxGetNumberOfFields(
const mxArray *pa
858LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetCell(mxArray *pa, mwIndex i, mxArray *value);
863LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void
864mxSetFieldByNumber(mxArray *pa, mwIndex i,
int fieldnum, mxArray *value);
871LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
872mxGetField(
const mxArray *pa, mwIndex i,
const char *fieldname);
878LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void
879mxSetField(mxArray *pa, mwIndex i,
const char *fieldname, mxArray *value);
888LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
889mxGetProperty(
const mxArray *pa,
const mwIndex i,
const char *propname);
896LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void
897mxSetProperty(mxArray *pa, mwIndex i,
const char *propname,
const mxArray *value);
902LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
const char *mxGetClassName(
const mxArray *pa);
907LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsClass(
const mxArray *pa,
const char *name);
913LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
914mxCreateNumericMatrix(mwSize m, mwSize n, mxClassID classid, mxComplexity flag);
920LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
921mxCreateUninitNumericMatrix(
size_t m,
size_t n, mxClassID classid, mxComplexity flag);
927LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
928mxCreateUninitNumericArray(
size_t ndim,
size_t *dims, mxClassID classid, mxComplexity flag);
933LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetN(mxArray *pa, mwSize n);
939LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int
940mxSetDimensions(mxArray *pa,
const mwSize *pdims, mwSize ndims);
945LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxDestroyArray(mxArray *pa);
953LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
954mxCreateNumericArray(mwSize ndim,
const mwSize *dims, mxClassID classid, mxComplexity flag);
960LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateCharArray(mwSize ndim,
const mwSize *dims);
966LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
967mxCreateDoubleMatrix(mwSize m, mwSize n, mxComplexity flag);
972LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxLogical *mxGetLogicals(
const mxArray *pa);
977LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateLogicalArray(mwSize ndim,
const mwSize *dims);
983LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateLogicalMatrix(mwSize m, mwSize n);
988LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateLogicalScalar(
bool value);
993LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsLogicalScalar(
const mxArray *pa);
998LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsLogicalScalarTrue(
const mxArray *pa);
1004LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateDoubleScalar(
double value);
1024LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
1025mxCreateSparse(mwSize m, mwSize n, mwSize nzmax, mxComplexity flag);
1030LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
1031mxCreateSparseLogicalMatrix(mwSize m, mwSize n, mwSize nzmax);
1038LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void
1039mxGetNChars(
const mxArray *pa,
char *buf, mwSize nChars);
1049LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int
1050mxGetString(
const mxArray *pa,
char *buf, mwSize buflen);
1057LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
char *mxArrayToString(
const mxArray *pa);
1065LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
char *mxArrayToUTF8String(mxArray
const *pa);
1072LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateStringFromNChars(
const char *str, mwSize n);
1079LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateString(
const char *str);
1084LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateCharMatrixFromStrings(mwSize m,
const char **str);
1090LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateCellMatrix(mwSize m, mwSize n);
1096LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateCellArray(mwSize ndim,
const mwSize *dims);
1102LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
1103mxCreateStructMatrix(mwSize m, mwSize n,
int nfields,
const char **fieldnames);
1109LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *
1110mxCreateStructArray(mwSize ndim,
const mwSize *dims,
int nfields,
const char **fieldnames);
1115LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxDuplicateArray(
const mxArray *in);
1122LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxSetClassName(mxArray *pa,
const char *classname);
1128LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxAddField(mxArray *pa,
const char *fieldname);
1134LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxRemoveField(mxArray *pa,
int field);
1139LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
double mxGetEps(
void);
1144LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
double mxGetInf(
void);
1149LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
double mxGetNaN(
void);
1154LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsFinite(
double x
1160LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsInf(
double x
1165LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
bool mxIsNaN(
double x
1167#if !defined(TARGET_API_VERSION) || (TARGET_API_VERSION == 700)
1171LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateSharedDataCopy(
const mxArray *pa);
1172LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxCreateUninitDoubleMatrix(
int cmplx_flag,
size_t m,
size_t n);
1173LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxFastZeros(
int cmplx_flag,
int m,
int n);
1174LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxUnreference(mxArray *pa);
1175LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxUnshareArray(mxArray *pa,
int level);
1176LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mxArray *mxGetPropertyShared(
const mxArray *pa,
size_t i,
const char *propname);
1177LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void mxSetPropertyShared(mxArray *pa,
size_t i,
const char *propname,
const mxArray *value);
1181#if TARGET_API_VERSION >= 800
1186#define MX_DECLARE_DATA_ACCESSORS(Name) \
1187 LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mx##Name *mxGet##Name##s(mxArray const *); \
1188 LIBMMWMATRIX_PUBLISHED_API_EXTERN_C int mxSet##Name##s(mxArray *, mx##Name *); \
1189 LIBMMWMATRIX_PUBLISHED_API_EXTERN_C mx##Complex##Name *mxGet##Complex##Name##s(mxArray const *); \
1190 LIBMMWMATRIX_PUBLISHED_API_EXTERN_C int mxSet##Complex##Name##s(mxArray *, mx##Complex##Name *)
1192MX_DECLARE_DATA_ACCESSORS(Double);
1193MX_DECLARE_DATA_ACCESSORS(Single);
1194MX_DECLARE_DATA_ACCESSORS(Int8);
1195MX_DECLARE_DATA_ACCESSORS(Uint8);
1196MX_DECLARE_DATA_ACCESSORS(Int16);
1197MX_DECLARE_DATA_ACCESSORS(Uint16);
1198MX_DECLARE_DATA_ACCESSORS(Int32);
1199MX_DECLARE_DATA_ACCESSORS(Uint32);
1200MX_DECLARE_DATA_ACCESSORS(Int64);
1201MX_DECLARE_DATA_ACCESSORS(Uint64);
1203LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxMakeArrayReal(mxArray *);
1204LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
int mxMakeArrayComplex(mxArray *);
1233#ifdef MATLAB_MEX_FILE
1236LIBMMWMATRIX_PUBLISHED_API_EXTERN_C
void
1237mexPrintAssertion(
const char *test,
const char *fname,
int linenum,
const char *message);
1239#define mxAssert(test, message) \
1240 ((test) ? (void)0 : mexPrintAssertion(#test, __FILE__, __LINE__, message))
1241#define mxAssertS(test, message) \
1242 ((test) ? (void)0 : mexPrintAssertion("", __FILE__, __LINE__, message))
1244#define mxAssert(test, message) ((void)0)
1245#define mxAssertS(test, message) ((void)0)
1249#define mxAssert(test, message) assert(test)
1250#define mxAssertS(test, message) assert(test)
1254#define MX_CURRENT_API_VER 0x08000000
1257#define MX_API_VER MX_CURRENT_API_VER
1260#define MX_LAST_32BIT_VER 0x07000000
1261#define MX_LAST_SEPARATE_COMPLEX_VER 0x07300000
1264#if TARGET_API_VERSION == 700
1265#if defined(MX_COMPAT_32)
1266#define MX_TARGET_API_VER MX_LAST_32BIT_VER
1268#define MX_TARGET_API_VER MX_LAST_SEPARATE_COMPLEX_VER
1271#define MX_TARGET_API_VER MX_CURRENT_API_VER
1286#define MX_HAS_64BIT_ARRAY_DIMS MX_TARGET_API_VER > MX_LAST_32BIT_VER
1287#define MX_HAS_INTERLEAVED_COMPLEX MX_TARGET_API_VER > MX_LAST_SEPARATE_COMPLEX_VER
1294#pragma aux mxGetEps value[8087];
1295#pragma aux mxGetInf value[8087];
1296#pragma aux mxGetNaN value[8087];