Changeset 2788 for trunk/psLib/src/math/psPolynomial.c
- Timestamp:
- Dec 21, 2004, 7:09:32 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/math/psPolynomial.c (modified) (58 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psPolynomial.c
r2778 r2788 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.7 4$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-12-2 1 20:42:07$9 * @version $Revision: 1.75 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-12-22 05:09:32 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 55 55 static void dPolynomial4DFree(psDPolynomial4D* myPoly); 56 56 static void spline1DFree(psSpline1D *tmpSpline); 57 static psS32 vectorBinDisectF32( float *bins,psS32 numBins,floatx);57 static psS32 vectorBinDisectF32(psF32 *bins,psS32 numBins,psF32 x); 58 58 static psS32 vectorBinDisectS32(psS32 *bins,psS32 numBins,psS32 x); 59 59 … … 277 277 278 278 *****************************************************************************/ 279 static float ordPolynomial1DEval(floatx, const psPolynomial1D* myPoly)279 static psF32 ordPolynomial1DEval(psF32 x, const psPolynomial1D* myPoly) 280 280 { 281 281 psS32 loop_x = 0; 282 floatpolySum = 0.0;283 floatxSum = 1.0;282 psF32 polySum = 0.0; 283 psF32 xSum = 1.0; 284 284 285 285 psTrace(".psLib.dataManip.psFunctions.ordPolynomial1DEval", 4, … … 307 307 // XXX: How does the mask vector effect Crenshaw's formula? 308 308 // XXX: We assume that x is scaled between -1.0 and 1.0; 309 static float chebPolynomial1DEval(floatx, const psPolynomial1D* myPoly)309 static psF32 chebPolynomial1DEval(psF32 x, const psPolynomial1D* myPoly) 310 310 { 311 311 // PS_FLOAT_CHECK_RANGE(x, -1.0, 1.0, 0.0); … … 314 314 psS32 n; 315 315 psS32 i; 316 floattmp;316 psF32 tmp; 317 317 318 318 n = myPoly->n; … … 337 337 psS32 n; 338 338 psS32 i; 339 floattmp;339 psF32 tmp; 340 340 psPolynomial1D **chebPolys = NULL; 341 341 … … 355 355 } 356 356 357 static float ordPolynomial2DEval(float x, floaty, const psPolynomial2D* myPoly)357 static psF32 ordPolynomial2DEval(psF32 x, psF32 y, const psPolynomial2D* myPoly) 358 358 { 359 359 PS_POLY_CHECK_NULL(myPoly, NAN); … … 361 361 psS32 loop_x = 0; 362 362 psS32 loop_y = 0; 363 floatpolySum = 0.0;364 floatxSum = 1.0;365 floatySum = 1.0;363 psF32 polySum = 0.0; 364 psF32 xSum = 1.0; 365 psF32 ySum = 1.0; 366 366 367 367 for (loop_x = 0; loop_x < myPoly->nX; loop_x++) { … … 379 379 } 380 380 381 static float chebPolynomial2DEval(float x, floaty, const psPolynomial2D* myPoly)381 static psF32 chebPolynomial2DEval(psF32 x, psF32 y, const psPolynomial2D* myPoly) 382 382 { 383 383 PS_POLY_CHECK_NULL(myPoly, NAN); … … 386 386 psS32 loop_y = 0; 387 387 psS32 i = 0; 388 floatpolySum = 0.0;388 psF32 polySum = 0.0; 389 389 psPolynomial1D* *chebPolys = NULL; 390 390 psS32 maxChebyPoly = 0; … … 414 414 } 415 415 416 static float ordPolynomial3DEval(float x, float y, floatz, const psPolynomial3D* myPoly)416 static psF32 ordPolynomial3DEval(psF32 x, psF32 y, psF32 z, const psPolynomial3D* myPoly) 417 417 { 418 418 psS32 loop_x = 0; 419 419 psS32 loop_y = 0; 420 420 psS32 loop_z = 0; 421 floatpolySum = 0.0;422 floatxSum = 1.0;423 floatySum = 1.0;424 floatzSum = 1.0;421 psF32 polySum = 0.0; 422 psF32 xSum = 1.0; 423 psF32 ySum = 1.0; 424 psF32 zSum = 1.0; 425 425 426 426 for (loop_x = 0; loop_x < myPoly->nX; loop_x++) { … … 442 442 } 443 443 444 static float chebPolynomial3DEval(float x, float y, floatz, const psPolynomial3D* myPoly)444 static psF32 chebPolynomial3DEval(psF32 x, psF32 y, psF32 z, const psPolynomial3D* myPoly) 445 445 { 446 446 psS32 loop_x = 0; … … 448 448 psS32 loop_z = 0; 449 449 psS32 i = 0; 450 floatpolySum = 0.0;450 psF32 polySum = 0.0; 451 451 psPolynomial1D* *chebPolys = NULL; 452 452 psS32 maxChebyPoly = 0; … … 483 483 } 484 484 485 static float ordPolynomial4DEval(float w, float x, float y, floatz, const psPolynomial4D* myPoly)485 static psF32 ordPolynomial4DEval(psF32 w, psF32 x, psF32 y, psF32 z, const psPolynomial4D* myPoly) 486 486 { 487 487 psS32 loop_w = 0; … … 489 489 psS32 loop_y = 0; 490 490 psS32 loop_z = 0; 491 floatpolySum = 0.0;492 floatwSum = 1.0;493 floatxSum = 1.0;494 floatySum = 1.0;495 floatzSum = 1.0;491 psF32 polySum = 0.0; 492 psF32 wSum = 1.0; 493 psF32 xSum = 1.0; 494 psF32 ySum = 1.0; 495 psF32 zSum = 1.0; 496 496 497 497 for (loop_w = 0; loop_w < myPoly->nW; loop_w++) { … … 517 517 } 518 518 519 static float chebPolynomial4DEval(float w, float x, float y, floatz, const psPolynomial4D* myPoly)519 static psF32 chebPolynomial4DEval(psF32 w, psF32 x, psF32 y, psF32 z, const psPolynomial4D* myPoly) 520 520 { 521 521 psS32 loop_w = 0; … … 524 524 psS32 loop_z = 0; 525 525 psS32 i = 0; 526 floatpolySum = 0.0;526 psF32 polySum = 0.0; 527 527 psPolynomial1D* *chebPolys = NULL; 528 528 psS32 maxChebyPoly = 0; … … 568 568 Polynomial coefficients will be accessed in [w][x][y][z] fashion. 569 569 *****************************************************************************/ 570 static double dOrdPolynomial1DEval(doublex, const psDPolynomial1D* myPoly)570 static psF64 dOrdPolynomial1DEval(psF64 x, const psDPolynomial1D* myPoly) 571 571 { 572 572 psS32 loop_x = 0; 573 doublepolySum = 0.0;574 doublexSum = 1.0;573 psF64 polySum = 0.0; 574 psF64 xSum = 1.0; 575 575 576 576 for (loop_x = 0; loop_x < myPoly->n; loop_x++) { … … 586 586 // XXX: You can do this without having to psAlloc() vector d. 587 587 // XXX: How does the mask vector effect Crenshaw's formula? 588 static double dChebPolynomial1DEval(doublex, const psDPolynomial1D* myPoly)588 static psF64 dChebPolynomial1DEval(psF64 x, const psDPolynomial1D* myPoly) 589 589 { 590 590 psVector *d; 591 591 psS32 n; 592 592 psS32 i; 593 doubletmp;593 psF64 tmp; 594 594 595 595 n = myPoly->n; … … 611 611 } 612 612 613 static double dOrdPolynomial2DEval(double x, doubley, const psDPolynomial2D* myPoly)613 static psF64 dOrdPolynomial2DEval(psF64 x, psF64 y, const psDPolynomial2D* myPoly) 614 614 { 615 615 psS32 loop_x = 0; 616 616 psS32 loop_y = 0; 617 doublepolySum = 0.0;618 doublexSum = 1.0;619 doubleySum = 1.0;617 psF64 polySum = 0.0; 618 psF64 xSum = 1.0; 619 psF64 ySum = 1.0; 620 620 621 621 for (loop_x = 0; loop_x < myPoly->nX; loop_x++) { … … 633 633 } 634 634 635 static double dChebPolynomial2DEval(double x, doubley, const psDPolynomial2D* myPoly)635 static psF64 dChebPolynomial2DEval(psF64 x, psF64 y, const psDPolynomial2D* myPoly) 636 636 { 637 637 psS32 loop_x = 0; 638 638 psS32 loop_y = 0; 639 639 psS32 i = 0; 640 doublepolySum = 0.0;640 psF64 polySum = 0.0; 641 641 psPolynomial1D* *chebPolys = NULL; 642 642 psS32 maxChebyPoly = 0; … … 667 667 } 668 668 669 static double dOrdPolynomial3DEval(double x, double y, doublez, const psDPolynomial3D* myPoly)669 static psF64 dOrdPolynomial3DEval(psF64 x, psF64 y, psF64 z, const psDPolynomial3D* myPoly) 670 670 { 671 671 psS32 loop_x = 0; 672 672 psS32 loop_y = 0; 673 673 psS32 loop_z = 0; 674 doublepolySum = 0.0;675 doublexSum = 1.0;676 doubleySum = 1.0;677 doublezSum = 1.0;674 psF64 polySum = 0.0; 675 psF64 xSum = 1.0; 676 psF64 ySum = 1.0; 677 psF64 zSum = 1.0; 678 678 679 679 for (loop_x = 0; loop_x < myPoly->nX; loop_x++) { … … 695 695 } 696 696 697 static double dChebPolynomial3DEval(double x, double y, doublez, const psDPolynomial3D* myPoly)697 static psF64 dChebPolynomial3DEval(psF64 x, psF64 y, psF64 z, const psDPolynomial3D* myPoly) 698 698 { 699 699 psS32 loop_x = 0; … … 701 701 psS32 loop_z = 0; 702 702 psS32 i = 0; 703 doublepolySum = 0.0;703 psF64 polySum = 0.0; 704 704 psPolynomial1D* *chebPolys = NULL; 705 705 psS32 maxChebyPoly = 0; … … 736 736 } 737 737 738 static double dOrdPolynomial4DEval(double w, double x, double y, doublez, const psDPolynomial4D* myPoly)738 static psF64 dOrdPolynomial4DEval(psF64 w, psF64 x, psF64 y, psF64 z, const psDPolynomial4D* myPoly) 739 739 { 740 740 psS32 loop_w = 0; … … 742 742 psS32 loop_y = 0; 743 743 psS32 loop_z = 0; 744 doublepolySum = 0.0;745 doublewSum = 1.0;746 doublexSum = 1.0;747 doubleySum = 1.0;748 doublezSum = 1.0;744 psF64 polySum = 0.0; 745 psF64 wSum = 1.0; 746 psF64 xSum = 1.0; 747 psF64 ySum = 1.0; 748 psF64 zSum = 1.0; 749 749 750 750 for (loop_w = 0; loop_w < myPoly->nW; loop_w++) { … … 770 770 } 771 771 772 static double dChebPolynomial4DEval(double w, double x, double y, doublez, const psDPolynomial4D* myPoly)772 static psF64 dChebPolynomial4DEval(psF64 w, psF64 x, psF64 y, psF64 z, const psDPolynomial4D* myPoly) 773 773 { 774 774 psS32 loop_w = 0; … … 777 777 psS32 loop_z = 0; 778 778 psS32 i = 0; 779 doublepolySum = 0.0;779 psF64 polySum = 0.0; 780 780 psPolynomial1D* *chebPolys = NULL; 781 781 psS32 maxChebyPoly = 0; … … 828 828 *****************************************************************************/ 829 829 #define FUNC_MACRO_FULL_INTERPOLATE_1D(TYPE) \ 830 static floatfullInterpolate1D##TYPE(ps##TYPE *domain, \830 static psF32 fullInterpolate1D##TYPE(ps##TYPE *domain, \ 831 831 ps##TYPE *range, \ 832 832 psS32 n, \ … … 896 896 LaGrange interpolation. 897 897 *****************************************************************************/ 898 static float interpolate1DF32(float*domain,899 float*range,898 static psF32 interpolate1DF32(psF32 *domain, 899 psF32 *range, 900 900 psS32 n, 901 901 psS32 order, 902 floatx)902 psF32 x) 903 903 { 904 904 psS32 binNum; … … 941 941 evaluated Gaussian is: \f[ exp(-\frac{(x-mean)^2}{2\sigma^2}) \f] 942 942 *****************************************************************************/ 943 float psGaussian(float x, float mean, floatsigma, psBool normal)944 { 945 floattmp = 1.0;943 psF32 psGaussian(psF32 x, psF32 mean, psF32 sigma, psBool normal) 944 { 945 psF32 tmp = 1.0; 946 946 947 947 psTrace(".psLib.dataManip.psFunctions.psGaussian", 4, … … 967 967 XXX: There is no way to seed the random generator. 968 968 *****************************************************************************/ 969 psVector* p_psGaussianDev( float mean, floatsigma, psS32 Npts)969 psVector* p_psGaussianDev(psF32 mean, psF32 sigma, psS32 Npts) 970 970 { 971 971 PS_INT_CHECK_NON_NEGATIVE(Npts, NULL); … … 1007 1007 newPoly->type = type; 1008 1008 newPoly->n = n; 1009 newPoly->coeff = ( float *)psAlloc(n * sizeof(float));1010 newPoly->coeffErr = ( float *)psAlloc(n * sizeof(float));1011 newPoly->mask = ( char *)psAlloc(n * sizeof(char));1009 newPoly->coeff = (psF32 *)psAlloc(n * sizeof(psF32)); 1010 newPoly->coeffErr = (psF32 *)psAlloc(n * sizeof(psF32)); 1011 newPoly->mask = (psU8 *)psAlloc(n * sizeof(psU8)); 1012 1012 for (i = 0; i < n; i++) { 1013 1013 newPoly->coeff[i] = 0.0; … … 1036 1036 newPoly->nY = nY; 1037 1037 1038 newPoly->coeff = ( float **)psAlloc(nX * sizeof(float*));1039 newPoly->coeffErr = ( float **)psAlloc(nX * sizeof(float*));1040 newPoly->mask = ( char **)psAlloc(nX * sizeof(char*));1038 newPoly->coeff = (psF32 **)psAlloc(nX * sizeof(psF32 *)); 1039 newPoly->coeffErr = (psF32 **)psAlloc(nX * sizeof(psF32 *)); 1040 newPoly->mask = (psU8 **)psAlloc(nX * sizeof(psU8 *)); 1041 1041 for (x = 0; x < nX; x++) { 1042 newPoly->coeff[x] = ( float *)psAlloc(nY * sizeof(float));1043 newPoly->coeffErr[x] = ( float *)psAlloc(nY * sizeof(float));1044 newPoly->mask[x] = ( char *)psAlloc(nY * sizeof(char));1042 newPoly->coeff[x] = (psF32 *)psAlloc(nY * sizeof(psF32)); 1043 newPoly->coeffErr[x] = (psF32 *)psAlloc(nY * sizeof(psF32)); 1044 newPoly->mask[x] = (psU8 *)psAlloc(nY * sizeof(psU8)); 1045 1045 } 1046 1046 for (x = 0; x < nX; x++) { … … 1075 1075 newPoly->nZ = nZ; 1076 1076 1077 newPoly->coeff = ( float ***)psAlloc(nX * sizeof(float**));1078 newPoly->coeffErr = ( float ***)psAlloc(nX * sizeof(float**));1079 newPoly->mask = ( char ***)psAlloc(nX * sizeof(char**));1077 newPoly->coeff = (psF32 ***)psAlloc(nX * sizeof(psF32 **)); 1078 newPoly->coeffErr = (psF32 ***)psAlloc(nX * sizeof(psF32 **)); 1079 newPoly->mask = (psU8 ***)psAlloc(nX * sizeof(psU8 **)); 1080 1080 for (x = 0; x < nX; x++) { 1081 newPoly->coeff[x] = ( float **)psAlloc(nY * sizeof(float*));1082 newPoly->coeffErr[x] = ( float **)psAlloc(nY * sizeof(float*));1083 newPoly->mask[x] = ( char **)psAlloc(nY * sizeof(char*));1081 newPoly->coeff[x] = (psF32 **)psAlloc(nY * sizeof(psF32 *)); 1082 newPoly->coeffErr[x] = (psF32 **)psAlloc(nY * sizeof(psF32 *)); 1083 newPoly->mask[x] = (psU8 **)psAlloc(nY * sizeof(psU8 *)); 1084 1084 for (y = 0; y < nY; y++) { 1085 newPoly->coeff[x][y] = ( float *)psAlloc(nZ * sizeof(float));1086 newPoly->coeffErr[x][y] = ( float *)psAlloc(nZ * sizeof(float));1087 newPoly->mask[x][y] = ( char *)psAlloc(nZ * sizeof(char));1085 newPoly->coeff[x][y] = (psF32 *)psAlloc(nZ * sizeof(psF32)); 1086 newPoly->coeffErr[x][y] = (psF32 *)psAlloc(nZ * sizeof(psF32)); 1087 newPoly->mask[x][y] = (psU8 *)psAlloc(nZ * sizeof(psU8)); 1088 1088 } 1089 1089 } … … 1124 1124 newPoly->nZ = nZ; 1125 1125 1126 newPoly->coeff = ( float ****)psAlloc(nW * sizeof(float***));1127 newPoly->coeffErr = ( float ****)psAlloc(nW * sizeof(float***));1128 newPoly->mask = ( char ****)psAlloc(nW * sizeof(char***));1126 newPoly->coeff = (psF32 ****)psAlloc(nW * sizeof(psF32 ***)); 1127 newPoly->coeffErr = (psF32 ****)psAlloc(nW * sizeof(psF32 ***)); 1128 newPoly->mask = (psU8 ****)psAlloc(nW * sizeof(psU8 ***)); 1129 1129 for (w = 0; w < nW; w++) { 1130 newPoly->coeff[w] = ( float ***)psAlloc(nX * sizeof(float**));1131 newPoly->coeffErr[w] = ( float ***)psAlloc(nX * sizeof(float**));1132 newPoly->mask[w] = ( char ***)psAlloc(nX * sizeof(char**));1130 newPoly->coeff[w] = (psF32 ***)psAlloc(nX * sizeof(psF32 **)); 1131 newPoly->coeffErr[w] = (psF32 ***)psAlloc(nX * sizeof(psF32 **)); 1132 newPoly->mask[w] = (psU8 ***)psAlloc(nX * sizeof(psU8 **)); 1133 1133 for (x = 0; x < nX; x++) { 1134 newPoly->coeff[w][x] = ( float **)psAlloc(nY * sizeof(float*));1135 newPoly->coeffErr[w][x] = ( float **)psAlloc(nY * sizeof(float*));1136 newPoly->mask[w][x] = ( char **)psAlloc(nY * sizeof(char*));1134 newPoly->coeff[w][x] = (psF32 **)psAlloc(nY * sizeof(psF32 *)); 1135 newPoly->coeffErr[w][x] = (psF32 **)psAlloc(nY * sizeof(psF32 *)); 1136 newPoly->mask[w][x] = (psU8 **)psAlloc(nY * sizeof(psU8 *)); 1137 1137 for (y = 0; y < nY; y++) { 1138 newPoly->coeff[w][x][y] = ( float *)psAlloc(nZ * sizeof(float));1139 newPoly->coeffErr[w][x][y] = ( float *)psAlloc(nZ * sizeof(float));1140 newPoly->mask[w][x][y] = ( char *)psAlloc(nZ * sizeof(char));1138 newPoly->coeff[w][x][y] = (psF32 *)psAlloc(nZ * sizeof(psF32)); 1139 newPoly->coeffErr[w][x][y] = (psF32 *)psAlloc(nZ * sizeof(psF32)); 1140 newPoly->mask[w][x][y] = (psU8 *)psAlloc(nZ * sizeof(psU8)); 1141 1141 } 1142 1142 } … … 1157 1157 } 1158 1158 1159 float psPolynomial1DEval(const psPolynomial1D* myPoly, floatx)1159 psF32 psPolynomial1DEval(const psPolynomial1D* myPoly, psF32 x) 1160 1160 { 1161 1161 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1195 1195 } 1196 1196 1197 float psPolynomial2DEval(const psPolynomial2D* myPoly, float x, floaty)1197 psF32 psPolynomial2DEval(const psPolynomial2D* myPoly, psF32 x, psF32 y) 1198 1198 { 1199 1199 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1250 1250 } 1251 1251 1252 float psPolynomial3DEval(const psPolynomial3D* myPoly, float x, float y, floatz)1252 psF32 psPolynomial3DEval(const psPolynomial3D* myPoly, psF32 x, psF32 y, psF32 z) 1253 1253 { 1254 1254 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1316 1316 } 1317 1317 1318 float psPolynomial4DEval(const psPolynomial4D* myPoly, float w, float x, float y, floatz)1318 psF32 psPolynomial4DEval(const psPolynomial4D* myPoly, psF32 w, psF32 x, psF32 y, psF32 z) 1319 1319 { 1320 1320 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1406 1406 newPoly->type = type; 1407 1407 newPoly->n = n; 1408 newPoly->coeff = ( double *)psAlloc(n * sizeof(double));1409 newPoly->coeffErr = ( double *)psAlloc(n * sizeof(double));1410 newPoly->mask = ( char *)psAlloc(n * sizeof(char));1408 newPoly->coeff = (psF64 *)psAlloc(n * sizeof(psF64)); 1409 newPoly->coeffErr = (psF64 *)psAlloc(n * sizeof(psF64)); 1410 newPoly->mask = (psU8 *)psAlloc(n * sizeof(psU8)); 1411 1411 for (i = 0; i < n; i++) { 1412 1412 newPoly->coeff[i] = 0.0; … … 1435 1435 newPoly->nY = nY; 1436 1436 1437 newPoly->coeff = ( double **)psAlloc(nX * sizeof(double*));1438 newPoly->coeffErr = ( double **)psAlloc(nX * sizeof(double*));1439 newPoly->mask = ( char **)psAlloc(nX * sizeof(char*));1437 newPoly->coeff = (psF64 **)psAlloc(nX * sizeof(psF64 *)); 1438 newPoly->coeffErr = (psF64 **)psAlloc(nX * sizeof(psF64 *)); 1439 newPoly->mask = (psU8 **)psAlloc(nX * sizeof(psU8 *)); 1440 1440 for (x = 0; x < nX; x++) { 1441 newPoly->coeff[x] = ( double *)psAlloc(nY * sizeof(double));1442 newPoly->coeffErr[x] = ( double *)psAlloc(nY * sizeof(double));1443 newPoly->mask[x] = ( char *)psAlloc(nY * sizeof(char));1441 newPoly->coeff[x] = (psF64 *)psAlloc(nY * sizeof(psF64)); 1442 newPoly->coeffErr[x] = (psF64 *)psAlloc(nY * sizeof(psF64)); 1443 newPoly->mask[x] = (psU8 *)psAlloc(nY * sizeof(psU8)); 1444 1444 } 1445 1445 for (x = 0; x < nX; x++) { … … 1474 1474 newPoly->nZ = nZ; 1475 1475 1476 newPoly->coeff = ( double ***)psAlloc(nX * sizeof(double**));1477 newPoly->coeffErr = ( double ***)psAlloc(nX * sizeof(double**));1478 newPoly->mask = ( char ***)psAlloc(nX * sizeof(char**));1476 newPoly->coeff = (psF64 ***)psAlloc(nX * sizeof(psF64 **)); 1477 newPoly->coeffErr = (psF64 ***)psAlloc(nX * sizeof(psF64 **)); 1478 newPoly->mask = (psU8 ***)psAlloc(nX * sizeof(psU8 **)); 1479 1479 for (x = 0; x < nX; x++) { 1480 newPoly->coeff[x] = ( double **)psAlloc(nY * sizeof(double*));1481 newPoly->coeffErr[x] = ( double **)psAlloc(nY * sizeof(double*));1482 newPoly->mask[x] = ( char **)psAlloc(nY * sizeof(char*));1480 newPoly->coeff[x] = (psF64 **)psAlloc(nY * sizeof(psF64 *)); 1481 newPoly->coeffErr[x] = (psF64 **)psAlloc(nY * sizeof(psF64 *)); 1482 newPoly->mask[x] = (psU8 **)psAlloc(nY * sizeof(psU8 *)); 1483 1483 for (y = 0; y < nY; y++) { 1484 newPoly->coeff[x][y] = ( double *)psAlloc(nZ * sizeof(double));1485 newPoly->coeffErr[x][y] = ( double *)psAlloc(nZ * sizeof(double));1486 newPoly->mask[x][y] = ( char *)psAlloc(nZ * sizeof(char));1484 newPoly->coeff[x][y] = (psF64 *)psAlloc(nZ * sizeof(psF64)); 1485 newPoly->coeffErr[x][y] = (psF64 *)psAlloc(nZ * sizeof(psF64)); 1486 newPoly->mask[x][y] = (psU8 *)psAlloc(nZ * sizeof(psU8)); 1487 1487 } 1488 1488 } … … 1523 1523 newPoly->nZ = nZ; 1524 1524 1525 newPoly->coeff = ( double ****)psAlloc(nW * sizeof(double***));1526 newPoly->coeffErr = ( double ****)psAlloc(nW * sizeof(double***));1527 newPoly->mask = ( char ****)psAlloc(nW * sizeof(char***));1525 newPoly->coeff = (psF64 ****)psAlloc(nW * sizeof(psF64 ***)); 1526 newPoly->coeffErr = (psF64 ****)psAlloc(nW * sizeof(psF64 ***)); 1527 newPoly->mask = (psU8 ****)psAlloc(nW * sizeof(psU8 ***)); 1528 1528 for (w = 0; w < nW; w++) { 1529 newPoly->coeff[w] = ( double ***)psAlloc(nX * sizeof(double**));1530 newPoly->coeffErr[w] = ( double ***)psAlloc(nX * sizeof(double**));1531 newPoly->mask[w] = ( char ***)psAlloc(nX * sizeof(char**));1529 newPoly->coeff[w] = (psF64 ***)psAlloc(nX * sizeof(psF64 **)); 1530 newPoly->coeffErr[w] = (psF64 ***)psAlloc(nX * sizeof(psF64 **)); 1531 newPoly->mask[w] = (psU8 ***)psAlloc(nX * sizeof(psU8 **)); 1532 1532 for (x = 0; x < nX; x++) { 1533 newPoly->coeff[w][x] = ( double **)psAlloc(nY * sizeof(double*));1534 newPoly->coeffErr[w][x] = ( double **)psAlloc(nY * sizeof(double*));1535 newPoly->mask[w][x] = ( char **)psAlloc(nY * sizeof(char*));1533 newPoly->coeff[w][x] = (psF64 **)psAlloc(nY * sizeof(psF64 *)); 1534 newPoly->coeffErr[w][x] = (psF64 **)psAlloc(nY * sizeof(psF64 *)); 1535 newPoly->mask[w][x] = (psU8 **)psAlloc(nY * sizeof(psU8 *)); 1536 1536 for (y = 0; y < nY; y++) { 1537 newPoly->coeff[w][x][y] = ( double *)psAlloc(nZ * sizeof(double));1538 newPoly->coeffErr[w][x][y] = ( double *)psAlloc(nZ * sizeof(double));1539 newPoly->mask[w][x][y] = ( char *)psAlloc(nZ * sizeof(char));1537 newPoly->coeff[w][x][y] = (psF64 *)psAlloc(nZ * sizeof(psF64)); 1538 newPoly->coeffErr[w][x][y] = (psF64 *)psAlloc(nZ * sizeof(psF64)); 1539 newPoly->mask[w][x][y] = (psU8 *)psAlloc(nZ * sizeof(psU8)); 1540 1540 } 1541 1541 } … … 1557 1557 1558 1558 1559 double psDPolynomial1DEval(const psDPolynomial1D* myPoly, doublex)1559 psF64 psDPolynomial1DEval(const psDPolynomial1D* myPoly, psF64 x) 1560 1560 { 1561 1561 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1598 1598 1599 1599 1600 doublepsDPolynomial2DEval(const psDPolynomial2D* myPoly,1601 doublex,1602 doubley)1600 psF64 psDPolynomial2DEval(const psDPolynomial2D* myPoly, 1601 psF64 x, 1602 psF64 y) 1603 1603 { 1604 1604 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1655 1655 1656 1656 1657 doublepsDPolynomial3DEval(const psDPolynomial3D* myPoly,1658 doublex,1659 doubley,1660 doublez)1657 psF64 psDPolynomial3DEval(const psDPolynomial3D* myPoly, 1658 psF64 x, 1659 psF64 y, 1660 psF64 z) 1661 1661 { 1662 1662 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1724 1724 } 1725 1725 1726 doublepsDPolynomial4DEval(const psDPolynomial4D* myPoly,1727 doublew,1728 doublex,1729 doubley,1730 doublez)1726 psF64 psDPolynomial4DEval(const psDPolynomial4D* myPoly, 1727 psF64 w, 1728 psF64 x, 1729 psF64 y, 1730 psF64 z) 1731 1731 { 1732 1732 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1810 1810 // psS32 n; 1811 1811 // psPolynomial1D **spline; 1812 // float*p_psDeriv2;1813 // float*domains;1812 // psF32 *p_psDeriv2; 1813 // psF32 *domains; 1814 1814 //} psSpline1D; 1815 1815 … … 1822 1822 psSpline1D *psSpline1DAlloc(psS32 numSplines, 1823 1823 psS32 order, 1824 floatmin,1825 floatmax)1824 psF32 min, 1825 psF32 max) 1826 1826 { 1827 1827 PS_INT_CHECK_NON_NEGATIVE(numSplines, NULL); … … 1831 1831 psSpline1D *tmp = NULL; 1832 1832 psS32 i; 1833 floattmpDomain;1834 floatwidth;1833 psF32 tmpDomain; 1834 psF32 width; 1835 1835 1836 1836 tmp = (psSpline1D *) psAlloc(sizeof(psSpline1D)); … … 1845 1845 tmp->p_psDeriv2 = NULL; 1846 1846 1847 tmp->domains = ( float *) psAlloc((numSplines+1) * sizeof(float));1848 width = (max - min) / (( float) numSplines);1847 tmp->domains = (psF32 *) psAlloc((numSplines+1) * sizeof(psF32)); 1848 width = (max - min) / ((psF32) numSplines); 1849 1849 1850 1850 (tmp->domains)[0] = min; … … 1884 1884 } 1885 1885 1886 tmp->domains = ( float *) psAlloc((bounds->n) * sizeof(float));1886 tmp->domains = (psF32 *) psAlloc((bounds->n) * sizeof(psF32)); 1887 1887 1888 1888 for (i=0;i<bounds->n;i++) { … … 1977 1977 { 1978 1978 PS_PTR_CHECK_TYPE_EQUAL(x, bins, -3); 1979 char* strType;1979 psS8* strType; 1980 1980 1981 1981 switch (x->type.type) { … … 2074 2074 domain32 = psVectorCopy(domain32, domain, PS_TYPE_F32); 2075 2075 2076 psScalar *tmpScalar = psScalarAlloc(( double)2076 psScalar *tmpScalar = psScalarAlloc((psF64) 2077 2077 interpolate1DF32(domain32->data.F32, 2078 2078 range32->data.F32, 2079 2079 domain32->n, 2080 2080 order, 2081 ( float) x->data.F64), PS_TYPE_F64);2081 (psF32) x->data.F64), PS_TYPE_F64); 2082 2082 psFree(range32); 2083 2083 psFree(domain32); … … 2089 2089 2090 2090 } else { 2091 char* strType;2091 psS8* strType; 2092 2092 PS_TYPE_NAME(strType,x->type.type); 2093 2093 psError(PS_ERR_BAD_PARAMETER_TYPE, … … 2115 2115 the spline fit functions require F32 and F64. 2116 2116 *****************************************************************************/ 2117 floatpsSpline1DEval(2118 floatx,2117 psF32 psSpline1DEval( 2118 psF32 x, 2119 2119 const psSpline1D *spline 2120 2120 ) … … 2172 2172 for (i=0;i<x->n;i++) { 2173 2173 tmpVector->data.F32[i] = psSpline1DEval( 2174 ( float) x->data.F64[i],2174 (psF32) x->data.F64[i], 2175 2175 spline 2176 2176 ); 2177 2177 } 2178 2178 } else { 2179 char* strType;2179 psS8* strType; 2180 2180 PS_TYPE_NAME(strType,x->type.type); 2181 2181 psError(PS_ERR_BAD_PARAMETER_TYPE,
Note:
See TracChangeset
for help on using the changeset viewer.
