/* * @(#)rt_matrx.h generated by: makeheader 4.21 Wed Jan 5 19:06:48 2005 * * built from: rt_matrx.c */ #ifndef rt_matrx_h #define rt_matrx_h /* * Copyright 1994-2003 The MathWorks, Inc. * $Revision: 1.26.6.4.2.1 $ * $Date: 2004/12/20 16:28:29 $ */ /*==========* * Includes * *==========*/ #if defined(MATLAB_MEX_FILE) # error "rt_matrix cannot be used within a mex file. It is for RTW only." #endif #include /* needed for malloc, calloc, free, realloc */ #include /* needed for strlen */ #include "rtwtypes.h" /* needed for real_T */ #include "rt_mxclassid.h" /* needed for mxClassID */ /*==========* * Typedefs * *==========*/ #ifndef rt_typedefs_h #define rt_typedefs_h #if !defined(TYPEDEF_MX_ARRAY) # define TYPEDEF_MX_ARRAY typedef real_T mxArray; #endif typedef real_T mxChar; #define mxMAXNAM TMW_NAME_LENGTH_MAX /* maximum name length */ typedef enum { mxREAL, mxCOMPLEX } mxComplexity; #ifdef V4_COMPAT typedef double Real; /* mimic MATLAB 4's matrix.h */ #define Matrix mxArray #define COMPLEX mxCOMPLEX #define REAL mxREAL #endif #endif /* rt_typedefs_h */ /*==================* * Extern variables * *==================*/ #ifdef __cplusplus extern "C" { #endif extern real_T rtInf; extern real_T rtMinusInf; extern real_T rtNaN; #ifdef __cplusplus } #endif /*=======================================* * Defines for mx Routines and constants * *=======================================*/ #define mxCalloc(n,size) \ calloc(n,size) #define mxCreateCharArray(ndim, dims) \ mxCreateNumericArray(ndim, dims, mxCHAR_CLASS); #define mxDestroyArray(pa) \ if (pa) free(pa) /* NOTE: You cannot mxFree(mxGetPr(pa)) !!! */ #define mxFree(ptr) \ if(ptr)free(ptr) #define mxGetClassID(pa) \ mxDOUBLE_CLASS /* NOTE: mxGetClassName(pa) returns "double" even on a character array */ #define mxGetClassName(pa) \ "double" #define mxGetData(pa) \ ((void *)(&((pa)[2]))) #define mxGetElementSize(pa) \ (sizeof(real_T)) #define mxGetInf() \ rtInf #define mxGetM(pa) \ ((int) ((pa)[0])) #define mxGetN(pa) \ ((int) ((pa)[1])) #define mxGetNaN() \ rtNaN #define mxGetNumberOfDimensions(pa) \ (2) #define mxGetNumberOfElements(pa) \ (mxGetM(pa)*mxGetN(pa)) /* NOTE: mxGetPr() of an empty matrix does NOT return NULL */ #define mxGetPr(pa) \ ( &((pa)[2]) ) #define mxGetScalar(pa) \ ((pa)[2]) #define mxIsComplex(pa) \ false #define mxIsDouble(pa) \ true #define mxIsEmpty(pa) \ (mxGetM(pa)==0 || mxGetN(pa)==0) #define mxIsFinite(r) \ ((r)>rtMinusInf && (r)