Changeset 2928 for trunk/psModules/src/pmNonLinear.c
- Timestamp:
- Jan 7, 2005, 10:00:34 AM (22 years ago)
- File:
-
- 1 edited
-
trunk/psModules/src/pmNonLinear.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/src/pmNonLinear.c
r2916 r2928 5 5 * @author GLG, MHPCC 6 6 * 7 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $8 * @date $Date: 2005-01-0 5 23:43:58$7 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2005-01-07 20:00:34 $ 9 9 * 10 10 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 41 41 psS32 j; 42 42 43 for (i=0;i< (inputReadout->image)->numRows;i++) {44 for (j=0;j< (inputReadout->image)->numCols;j++) {45 (inputReadout->image)->data.F32[i][j] = psPolynomial1DEval(input1DPoly, (inputReadout->image)->data.F32[i][j]);43 for (i=0;i<inputReadout->image->numRows;i++) { 44 for (j=0;j<inputReadout->image->numCols;j++) { 45 inputReadout->image->data.F32[i][j] = psPolynomial1DEval(input1DPoly, inputReadout->image->data.F32[i][j]); 46 46 } 47 47 } … … 65 65 PS_IMAGE_CHECK_TYPE(inputReadout->image, PS_TYPE_F32, NULL); 66 66 PS_PTR_CHECK_NULL(inFlux,NULL); 67 psS32 tableSize = inFlux->n;68 67 if (inFlux->n < 2) { 69 68 psError(PS_ERR_UNKNOWN,true, "pmNonLinearityLookup(): input vector less than 2 elements. Returning inputReadout image."); … … 71 70 } 72 71 PS_PTR_CHECK_NULL(outFlux,NULL); 72 psS32 tableSize = inFlux->n; 73 73 if (inFlux->n != outFlux->n) { 74 74 tableSize = PS_MIN(inFlux->n, outFlux->n); … … 87 87 88 88 x.type.type = PS_TYPE_F32; 89 for (i=0;i<(inputReadout->image)->numRows;i++) { 90 for (j=0;j<(inputReadout->image)->numCols;j++) { 91 x.data.F32 = (inputReadout->image)->data.F32[i][j]; 92 89 for (i=0;i<inputReadout->image->numRows;i++) { 90 for (j=0;j<inputReadout->image->numCols;j++) { 91 x.data.F32 = inputReadout->image->data.F32[i][j]; 93 92 binNum = p_psVectorBinDisect((psVector *)inFlux, &x); 94 93 95 94 if (binNum == -2) { 96 95 // We get here if x is below the table lookup range. 97 (inputReadout->image)->data.F32[i][j] = outFlux->data.F32[0];96 inputReadout->image->data.F32[i][j] = outFlux->data.F32[0]; 98 97 numPixels++; 99 98 100 99 } else if (binNum == -1) { 101 100 // We get here if x is above the table lookup range. 102 (inputReadout->image)->data.F32[i][j] = outFlux->data.F32[tableSize-1]; 101 inputReadout->image->data.F32[i][j] = outFlux->data.F32[tableSize-1]; 102 numPixels++; 103 103 104 numPixels++;105 104 } else if (binNum < -2) { 106 105 // We get here if there was some other problem. … … 112 111 slope = (outFlux->data.F32[binNum+1] - outFlux->data.F32[binNum]) / 113 112 (inFlux->data.F32[binNum+1] - inFlux->data.F32[binNum]); 114 (inputReadout->image)->data.F32[i][j] = outFlux->data.F32[binNum] +115 ((x.data.F32 - inFlux->data.F32[binNum]) * slope);113 inputReadout->image->data.F32[i][j] = outFlux->data.F32[binNum] + 114 ((x.data.F32 - inFlux->data.F32[binNum]) * slope); 116 115 } 117 116 }
Note:
See TracChangeset
for help on using the changeset viewer.
