Changeset 1725 for trunk/psLib/src/dataManip/psFunctions.c
- Timestamp:
- Sep 7, 2004, 9:11:22 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/dataManip/psFunctions.c (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psFunctions.c
r1724 r1725 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.2 7$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-09-08 0 6:24:17$9 * @version $Revision: 1.28 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-09-08 07:11:22 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii 13 *14 * XXX: currently coefficient masks are not used in polynomial evaluation.15 *16 13 */ 17 14 /*****************************************************************************/ … … 198 195 newPoly->coeff[i] = 0.0; 199 196 newPoly->coeffErr[i] = 0.0; 200 newPoly->mask[i] = 0 .0;197 newPoly->mask[i] = 0; 201 198 } 202 199 … … 428 425 429 426 for (loop_x = 0; loop_x < myPoly->n; loop_x++) { 430 polySum += xSum * myPoly->coeff[loop_x]; 431 xSum *= x; 427 if (myPoly->mask[loop_x] != 0) { 428 polySum += xSum * myPoly->coeff[loop_x]; 429 xSum *= x; 430 } 432 431 } 433 432 … … 436 435 437 436 // XXX: You can do this without having to psAlloc() vector d. 437 // XXX: How does the mask vector effect Crenshaw's formula? 438 438 float p_psChebPolynomial1DEval(float x, const psPolynomial1D* myPoly) 439 439 { … … 505 505 ySum = xSum; 506 506 for (loop_y = 0; loop_y < myPoly->nY; loop_y++) { 507 polySum += ySum * myPoly->coeff[loop_x][loop_y]; 508 ySum *= y; 507 if (myPoly->mask[loop_x][loop_y] != 0) { 508 polySum += ySum * myPoly->coeff[loop_x][loop_y]; 509 ySum *= y; 510 } 509 511 } 510 512 xSum *= x; … … 584 586 zSum = ySum; 585 587 for (loop_z = 0; loop_z < myPoly->nZ; loop_z++) { 586 polySum += zSum * myPoly->coeff[loop_x][loop_y][loop_z]; 587 zSum *= z; 588 if (myPoly->mask[loop_x][loop_y][loop_z] != 0) { 589 polySum += zSum * myPoly->coeff[loop_x][loop_y][loop_z]; 590 zSum *= z; 591 } 588 592 } 589 593 ySum *= y; … … 681 685 zSum = ySum; 682 686 for (loop_z = 0; loop_z < myPoly->nZ; loop_z++) { 683 polySum += zSum * myPoly->coeff[loop_w][loop_x][loop_y][loop_z]; 684 zSum *= z; 687 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] != 0) { 688 polySum += zSum * myPoly->coeff[loop_w][loop_x][loop_y][loop_z]; 689 zSum *= z; 690 } 685 691 } 686 692 ySum *= y; … … 787 793 newPoly->coeff[i] = 0.0; 788 794 newPoly->coeffErr[i] = 0.0; 789 newPoly->mask[i] = 0 .0;795 newPoly->mask[i] = 0; 790 796 } 791 797 … … 1003 1009 1004 1010 for (loop_x = 0; loop_x < myPoly->n; loop_x++) { 1005 polySum += xSum * myPoly->coeff[loop_x]; 1006 xSum *= x; 1011 if (myPoly->mask[loop_x] != 0) { 1012 polySum += xSum * myPoly->coeff[loop_x]; 1013 xSum *= x; 1014 } 1007 1015 } 1008 1016 … … 1011 1019 1012 1020 // XXX: You can do this without having to psAlloc() vector d. 1021 // XXX: How does the mask vector effect Crenshaw's formula? 1013 1022 double p_psDChebPolynomial1DEval(double x, const psDPolynomial1D* myPoly) 1014 1023 { … … 1081 1090 ySum = xSum; 1082 1091 for (loop_y = 0; loop_y < myPoly->nY; loop_y++) { 1083 polySum += ySum * myPoly->coeff[loop_x][loop_y]; 1084 ySum *= y; 1092 if (myPoly->mask[loop_x][loop_y] != 0) { 1093 polySum += ySum * myPoly->coeff[loop_x][loop_y]; 1094 ySum *= y; 1095 } 1085 1096 } 1086 1097 xSum *= x; … … 1159 1170 zSum = ySum; 1160 1171 for (loop_z = 0; loop_z < myPoly->nZ; loop_z++) { 1161 polySum += zSum * myPoly->coeff[loop_x][loop_y][loop_z]; 1162 zSum *= z; 1172 if (myPoly->mask[loop_x][loop_y][loop_z] != 0) { 1173 polySum += zSum * myPoly->coeff[loop_x][loop_y][loop_z]; 1174 zSum *= z; 1175 } 1163 1176 } 1164 1177 ySum *= y; … … 1258 1271 zSum = ySum; 1259 1272 for (loop_z = 0; loop_z < myPoly->nZ; loop_z++) { 1260 polySum += zSum * myPoly->coeff[loop_w][loop_x][loop_y][loop_z]; 1261 zSum *= z; 1273 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] != 0) { 1274 polySum += zSum * myPoly->coeff[loop_w][loop_x][loop_y][loop_z]; 1275 zSum *= z; 1276 } 1262 1277 } 1263 1278 ySum *= y;
Note:
See TracChangeset
for help on using the changeset viewer.
