Mercurial > hg > octave-nkf
view examples/mypow2.c @ 6909:fc55a5e1760b ss-2-9-14
[project @ 2007-09-17 20:47:40 by jwe]
author | jwe |
---|---|
date | Mon, 17 Sep 2007 20:47:41 +0000 |
parents | 2aad75fcc93a |
children | 4270ded9ddc6 |
line wrap: on
line source
#include "mex.h" void mexFunction (int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]) { mwIndex i; mwSize n; double *vri, *vro; if (nrhs != 1 || ! mxIsNumeric (prhs[0])) mexErrMsgTxt ("expects matrix"); n = mxGetNumberOfElements (prhs[0]); plhs[0] = (mxArray *) mxCreateNumericArray (mxGetNumberOfDimensions (prhs[0]), mxGetDimensions (prhs[0]), mxGetClassID (prhs[0]), mxIsComplex (prhs[0])); vri = mxGetPr (prhs[0]); vro = mxGetPr (plhs[0]); if (mxIsComplex (prhs[0])) { double *vii, *vio; vii = mxGetPi (prhs[0]); vio = mxGetPi (plhs[0]); for (i = 0; i < n; i++) { vro [i] = vri [i] * vri [i] - vii [i] * vii [i]; vio [i] = 2 * vri [i] * vii [i]; } } else { for (i = 0; i < n; i++) vro [i] = vri [i] * vri [i]; } }