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