comparison extra/NaN/src/kth_element.cpp @ 12686:7c1bc8d8c406 octave-forge

fix range check of k-index
author schloegl
date Sat, 12 Sep 2015 07:33:55 +0000
parents 6a419bec96bb
children 13815b367946
comparison
equal deleted inserted replaced
12685:f26b1170ea90 12686:7c1bc8d8c406
188 188
189 /*********** create output arguments *****************/ 189 /*********** create output arguments *****************/
190 POutput[0] = mxCreateDoubleMatrix(mxGetM(PInputs[1]),mxGetN(PInputs[1]),mxREAL); 190 POutput[0] = mxCreateDoubleMatrix(mxGetM(PInputs[1]),mxGetN(PInputs[1]),mxREAL);
191 Y = (double*) mxGetData(POutput[0]); 191 Y = (double*) mxGetData(POutput[0]);
192 for (k=0; k < szK; k++) { 192 for (k=0; k < szK; k++) {
193 n = K[k]-1; // convert to zero-based indexing 193 if (K[k] > szX || K[k] < 1)
194 if (n >= szX || n < 0)
195 Y[k] = 0.0/0.0; // NaN: result undefined 194 Y[k] = 0.0/0.0; // NaN: result undefined
196 else { 195 else {
196 n = (size_t)(K[k]-1); // convert to zero-based indexing, round towards 0
197 findFirstK(T, 0, szX-1, n); 197 findFirstK(T, 0, szX-1, n);
198 Y[k] = T[n]; 198 Y[k] = T[n];
199 } 199 }
200 } 200 }
201 201