Mercurial > hg > camir-aes2014
diff toolboxes/FullBNT-1.0.7/KPMtools/mexutil.c @ 0:e9a9cd732c1e tip
first hg version after svn
author | wolffd |
---|---|
date | Tue, 10 Feb 2015 15:05:51 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolboxes/FullBNT-1.0.7/KPMtools/mexutil.c Tue Feb 10 15:05:51 2015 +0000 @@ -0,0 +1,43 @@ +#include "mexutil.h" + +/* Functions to create uninitialized arrays. */ + +mxArray *mxCreateNumericArrayE(int ndim, const int *dims, + mxClassID class, mxComplexity ComplexFlag) +{ + mxArray *a; + int i, *dims1 = mxMalloc(ndim*sizeof(int)); + size_t sz = 1; + for(i=0;i<ndim;i++) { + sz *= dims[i]; + dims1[i] = 1; + } + a = mxCreateNumericArray(ndim,dims1,class,ComplexFlag); + sz *= mxGetElementSize(a); + mxSetDimensions(a, dims, ndim); + mxFree(dims1); + mxSetData(a, mxRealloc(mxGetData(a), sz)); + if(ComplexFlag == mxCOMPLEX) { + mxSetPi(a, mxRealloc(mxGetPi(a),sz)); + } + return a; +} +mxArray *mxCreateNumericMatrixE(int m, int n, mxClassID class, + mxComplexity ComplexFlag) +{ + size_t sz = m*n*sizeof(double); + mxArray *a = mxCreateNumericMatrix(1, 1, class, ComplexFlag); + mxSetM(a,m); + mxSetN(a,n); + mxSetPr(a, mxRealloc(mxGetPr(a),sz)); + if(ComplexFlag == mxCOMPLEX) { + mxSetPi(a, mxRealloc(mxGetPi(a),sz)); + } + return a; +} +mxArray *mxCreateDoubleMatrixE(int m, int n, + mxComplexity ComplexFlag) +{ + return mxCreateNumericMatrixE(m,n,mxDOUBLE_CLASS,ComplexFlag); +} +