Mercurial > forge
changeset 1056:84d5d1dd6776 octave-forge
returns sum square also for complex data
author | schloegl |
---|---|
date | Fri, 26 Sep 2003 07:41:23 +0000 |
parents | ff83f8133f21 |
children | 750ebc804b2d |
files | extra/NaN/sumskipnan2.cpp |
diffstat | 1 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/NaN/sumskipnan2.cpp Thu Sep 25 14:41:33 2003 +0000 +++ b/extra/NaN/sumskipnan2.cpp Fri Sep 26 07:41:23 2003 +0000 @@ -79,8 +79,8 @@ mexErrMsgTxt("First argument must be NUMERIC."); if(!mxIsDouble(PInputs[0])) mexErrMsgTxt("First argument must be DOUBLE."); - if(mxIsComplex(PInputs[0]) & (POutputCount > 2)) - mexErrMsgTxt("More than 2 output arguments only supported for REAL data "); + if(mxIsComplex(PInputs[0]) & (POutputCount > 3)) + mexErrMsgTxt("More than 3 output arguments only supported for REAL data "); LInput = mxGetPr(PInputs[0]); // get 2nd argument @@ -190,18 +190,22 @@ { LSum = 0.0; LCountI = 0; + LSum2 = 0.0; for (j=0; j<D2; j++) { x = LInputI[ix1 + j*D1]; if (!mxIsNaN(x)) { LCountI++; - LSum += x; + LSum += x; + LSum2 += x*x; } } LOutputSumI[ix2] = LSum; if (LCount != LCountI) mexErrMsgTxt("Number of NaNs is different for REAL and IMAG part"); + if (POutputCount >= 3) + LOutputSum2[ix2] += LSum2; } } }