idamnjanovic@70: /************************************************************************** idamnjanovic@70: * idamnjanovic@70: * File name: mexutils.c idamnjanovic@70: * idamnjanovic@70: * Ron Rubinstein idamnjanovic@70: * Computer Science Department idamnjanovic@70: * Technion, Haifa 32000 Israel idamnjanovic@70: * ronrubin@cs idamnjanovic@70: * idamnjanovic@70: * Last Updated: 15.8.2009 idamnjanovic@70: * idamnjanovic@70: *************************************************************************/ idamnjanovic@70: idamnjanovic@70: #include "mexutils.h" idamnjanovic@70: #include idamnjanovic@70: idamnjanovic@70: idamnjanovic@70: idamnjanovic@70: /* verify that the mxArray contains a double matrix */ idamnjanovic@70: idamnjanovic@70: void checkmatrix(const mxArray *param, char *fname, char *pname) idamnjanovic@70: { idamnjanovic@70: char errmsg[100]; idamnjanovic@70: sprintf(errmsg, "%.15s requires that %.25s be a double matrix.", fname, pname); idamnjanovic@70: if (!mxIsDouble(param) || mxIsComplex(param) || mxGetNumberOfDimensions(param)>2) { idamnjanovic@70: mexErrMsgTxt(errmsg); idamnjanovic@70: } idamnjanovic@70: } idamnjanovic@70: idamnjanovic@70: idamnjanovic@70: /* verify that the mxArray contains a 1-D double vector */ idamnjanovic@70: idamnjanovic@70: void checkvector(const mxArray *param, char *fname, char *pname) idamnjanovic@70: { idamnjanovic@70: char errmsg[100]; idamnjanovic@70: sprintf(errmsg, "%.15s requires that %.25s be a double vector.", fname, pname); idamnjanovic@70: if (!mxIsDouble(param) || mxIsComplex(param) || mxGetNumberOfDimensions(param)>2 || (mxGetM(param)!=1 && mxGetN(param)!=1)) { idamnjanovic@70: mexErrMsgTxt(errmsg); idamnjanovic@70: } idamnjanovic@70: } idamnjanovic@70: idamnjanovic@70: idamnjanovic@70: /* verify that the mxArray contains a double scalar */ idamnjanovic@70: idamnjanovic@70: void checkscalar(const mxArray *param, char *fname, char *pname) idamnjanovic@70: { idamnjanovic@70: char errmsg[100]; idamnjanovic@70: sprintf(errmsg, "%.15s requires that %.25s be a double scalar.", fname, pname); idamnjanovic@70: if (!mxIsDouble(param) || mxIsComplex(param) || mxGetNumberOfDimensions(param)>2 || idamnjanovic@70: mxGetM(param)!=1 || mxGetN(param)!=1) idamnjanovic@70: { idamnjanovic@70: mexErrMsgTxt(errmsg); idamnjanovic@70: } idamnjanovic@70: } idamnjanovic@70: idamnjanovic@70: idamnjanovic@70: /* verify that the mxArray contains a sparse matrix */ idamnjanovic@70: idamnjanovic@70: void checksparse(const mxArray *param, char *fname, char *pname) idamnjanovic@70: { idamnjanovic@70: char errmsg[100]; idamnjanovic@70: sprintf(errmsg, "%.15s requires that %.25s be sparse.", fname, pname); idamnjanovic@70: if (!mxIsSparse(param)) { idamnjanovic@70: mexErrMsgTxt(errmsg); idamnjanovic@70: } idamnjanovic@70: } idamnjanovic@70: idamnjanovic@70: idamnjanovic@70: /* verify that the mxArray contains a 1-dimensional cell array */ idamnjanovic@70: idamnjanovic@70: void checkcell_1d(const mxArray *param, char *fname, char *pname) idamnjanovic@70: { idamnjanovic@70: char errmsg[100]; idamnjanovic@70: sprintf(errmsg, "%.15s requires that %.25s be a 1-D cell array.", fname, pname); idamnjanovic@70: if (!mxIsCell(param) || mxGetNumberOfDimensions(param)>2 || (mxGetM(param)!=1 && mxGetN(param)!=1)) { idamnjanovic@70: mexErrMsgTxt(errmsg); idamnjanovic@70: } idamnjanovic@70: } idamnjanovic@70: