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