Changeset 5090
- Timestamp:
- Sep 21, 2005, 4:47:16 PM (21 years ago)
- Location:
- trunk/psLib
- Files:
-
- 19 edited
-
src/astro/psCoord.c (modified) (23 diffs)
-
src/imageops/psImageStats.c (modified) (12 diffs)
-
src/math/psMinimize.c (modified) (10 diffs)
-
src/math/psPolynomial.c (modified) (21 diffs)
-
src/math/psPolynomial.h (modified) (2 diffs)
-
src/math/psSpline.c (modified) (5 diffs)
-
src/math/psStats.c (modified) (4 diffs)
-
test/astro/tst_psCoord.c (modified) (3 diffs)
-
test/math/tst_psFunc00.c (modified) (10 diffs)
-
test/math/tst_psFunc08.c (modified) (4 diffs)
-
test/math/tst_psFunc09.c (modified) (7 diffs)
-
test/math/tst_psFunc10.c (modified) (7 diffs)
-
test/math/tst_psFunc11.c (modified) (7 diffs)
-
test/math/tst_psMinimize04.c (modified) (1 diff)
-
test/math/tst_psMinimize04_F32.c (modified) (3 diffs)
-
test/math/tst_psMinimize04b.c (modified) (3 diffs)
-
test/math/tst_psMinimize04b_F32.c (modified) (3 diffs)
-
test/math/tst_psMinimizeVector2D_F32.c (modified) (1 diff)
-
test/math/tst_psMinimizeVector2D_F64.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/astro/psCoord.c
r4991 r5090 10 10 * @author GLG, MHPCC 11 11 * 12 * @version $Revision: 1.8 6$ $Name: not supported by cvs2svn $13 * @date $Date: 2005-09- 11 22:18:40$12 * @version $Revision: 1.87 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-09-22 02:47:16 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 90 90 91 91 A = transform->x->coeff[0][0]; 92 if (transform->x-> nX >= 2) {92 if (transform->x->COOL_2D_nX >= 1) { 93 93 B = transform->x->coeff[1][0]; 94 94 } 95 if (transform->x-> nY >= 2) {95 if (transform->x->COOL_2D_nY >= 1) { 96 96 C = transform->x->coeff[0][1]; 97 97 } 98 98 D = transform->y->coeff[0][0]; 99 if (transform->y-> nX >= 2) {99 if (transform->y->COOL_2D_nX >= 1) { 100 100 E = transform->y->coeff[1][0]; 101 101 } 102 if (transform->y-> nY >= 2) {102 if (transform->y->COOL_2D_nY >= 1) { 103 103 F = transform->y->coeff[0][1]; 104 104 } … … 154 154 PS_ASSERT_PTR_NON_NULL(transform->y, 0); 155 155 156 for (psS32 i=0;i<( transform->x->nX);i++) {157 for (psS32 j=0;j<( transform->x->nY);j++) {156 for (psS32 i=0;i<(1 + transform->x->COOL_2D_nX);i++) { 157 for (psS32 j=0;j<(1 + transform->x->COOL_2D_nY);j++) { 158 158 if (transform->x->coeff[i][j] != 0.0) { 159 159 if (!(((i == 0) && (j == 0)) || … … 166 166 } 167 167 168 for (psS32 i=0;i<( transform->y->nX);i++) {169 for (psS32 j=0;j<( transform->y->nY);j++) {168 for (psS32 i=0;i<(1 + transform->y->COOL_2D_nX);i++) { 169 for (psS32 j=0;j<(1 + transform->y->COOL_2D_nY);j++) { 170 170 if (transform->y->coeff[i][j] != 0.0) { 171 171 if (!(((i == 0) && (j == 0)) || … … 208 208 } 209 209 210 // XXX: Verify the order/nterms poly changes 210 211 psPlaneTransform* psPlaneTransformAlloc(int n1, int n2) 211 212 { … … 214 215 215 216 psPlaneTransform *pt = psAlloc(sizeof(psPlaneTransform)); 216 pt->x = psPolynomial2DAlloc(n1 , n2, PS_POLYNOMIAL_ORD);217 pt->y = psPolynomial2DAlloc(n1 , n2, PS_POLYNOMIAL_ORD);217 pt->x = psPolynomial2DAlloc(n1-1, n2-1, PS_POLYNOMIAL_ORD); 218 pt->y = psPolynomial2DAlloc(n1-1, n2-1, PS_POLYNOMIAL_ORD); 218 219 219 220 psMemSetDeallocator(pt, (psFreeFunc) planeTransformFree); … … 276 277 } 277 278 279 // XXX: Verify the order/nterms poly changes 278 280 psPlaneDistort* psPlaneDistortAlloc(int n1, int n2, int n3, int n4) 279 281 { … … 284 286 285 287 psPlaneDistort *pt = psAlloc(sizeof(psPlaneDistort)); 286 pt->x = psPolynomial4DAlloc(n1 , n2, n3, n4, PS_POLYNOMIAL_ORD);287 pt->y = psPolynomial4DAlloc(n1 , n2, n3, n4, PS_POLYNOMIAL_ORD);288 pt->x = psPolynomial4DAlloc(n1-1, n2-1, n3-1, n4-1, PS_POLYNOMIAL_ORD); 289 pt->y = psPolynomial4DAlloc(n1-1, n2-1, n3-1, n4-1, PS_POLYNOMIAL_ORD); 288 290 289 291 psMemSetDeallocator(pt, (psFreeFunc) planeDistortFree); … … 499 501 psPolynomial2D *trans2) 500 502 { 501 //TRACE: printf("multiplyDPoly2D(%d %d: %d %d)\n", trans1->nX, trans1->nY, trans2->nX, trans2->nY); 502 psS32 orderX = (trans1->nX + trans2->nX) - 1; 503 psS32 orderY = (trans1->nY + trans2->nY) - 1; 504 505 psPolynomial2D *out = psPolynomial2DAlloc(orderX, orderY, PS_POLYNOMIAL_ORD); 503 //TRACE: printf("multiplyDPoly2D(%d %d: %d %d)\n", trans1->COOL_2D_nX, trans1->COOL_2D_nY, trans2->COOL_2D_nX, trans2->COOL_2D_nY); 504 // XXX: OLD: psS32 orderX = (trans1->nX + trans2->nX) - 1; 505 // XXX: Verify this (the poly order change) 506 psS32 orderX = trans1->COOL_2D_nX + trans2->COOL_2D_nX + 1; 507 psS32 orderY = trans1->COOL_2D_nY + trans2->COOL_2D_nY + 1; 508 509 // XXX: Verify this (the poly order change) 510 psPolynomial2D *out = psPolynomial2DAlloc(orderX-1, orderY-1, PS_POLYNOMIAL_ORD); 506 511 //TRACE: printf("Creating poly (%d, %d)\n", orderX, orderY); 507 for (psS32 i = 0 ; i < out->nX; i++) {508 for (psS32 j = 0 ; j < out->nY; j++) {512 for (psS32 i = 0 ; i < (1 + out->COOL_2D_nX); i++) { 513 for (psS32 j = 0 ; j < (1 + out->COOL_2D_nY); j++) { 509 514 out->coeff[i][j] = 0.0; 510 515 out->mask[i][j] = 0; … … 512 517 } 513 518 514 for (psS32 t1x = 0 ; t1x < trans1->nX; t1x++) {515 for (psS32 t1y = 0 ; t1y < trans1->nY; t1y++) {519 for (psS32 t1x = 0 ; t1x < (1 + trans1->COOL_2D_nX) ; t1x++) { 520 for (psS32 t1y = 0 ; t1y < (1 + trans1->COOL_2D_nY) ; t1y++) { 516 521 if (0.0 != trans1->coeff[t1x][t1y]) { 517 for (psS32 t2x = 0 ; t2x < trans2->nX; t2x++) {518 for (psS32 t2y = 0 ; t2y < trans2->nY; t2y++) {522 for (psS32 t2x = 0 ; t2x < (1 + trans2->COOL_2D_nX) ; t2x++) { 523 for (psS32 t2y = 0 ; t2y < (1 + trans2->COOL_2D_nY) ; t2y++) { 519 524 /* Possible debug-only macro which checks these coords? 520 525 if ((t1x+t2x) >= orderX) … … 547 552 PS_ASSERT_PTR_NON_NULL(trans1, NULL); 548 553 PS_ASSERT_PTR_NON_NULL(trans2, NULL); 549 //TRACE: printf("psPlaneTransformCombine(%d, %d, %d, %d: %d, %d, %d, %d)\n", trans1->x-> nX, trans1->x->nY, trans1->y->nX, trans1->y->nY, trans2->x->nX, trans2->x->nY, trans2->y->nX, trans2->y->nY);554 //TRACE: printf("psPlaneTransformCombine(%d, %d, %d, %d: %d, %d, %d, %d)\n", trans1->x->COOL_2D_nX, trans1->x->COOL_2D_nY, trans1->y->COOL_2D_nX, trans1->y->COOL_2D_nY, trans2->x->COOL_2D_nX, trans2->x->COOL_2D_nY, trans2->y->COOL_2D_nX, trans2->y->COOL_2D_nY); 550 555 // 551 556 // Determine the size of the new psPlaneTransform. … … 553 558 // PS_MAX( Number of x terms in T2->x * number of x terms in T1->x, 554 559 // Number of y terms in T2->x * number of x terms in T1->y, 555 psS32 orderXnX = PS_MAX(( trans2->x->nX * trans1->x->nX),556 ( trans2->x->nY * trans1->y->nX));557 psS32 orderXnY = PS_MAX(( trans2->x->nX * trans1->x->nY),558 ( trans2->x->nY * trans1->y->nY));559 560 psS32 orderYnX = PS_MAX(( trans2->y->nX * trans1->x->nX),561 ( trans2->y->nY * trans1->y->nX));562 psS32 orderYnY = PS_MAX(( trans2->y->nX * trans1->x->nY),563 ( trans2->y->nY * trans1->y->nY));560 psS32 orderXnX = PS_MAX(((1 + trans2->x->COOL_2D_nX) * (1 + trans1->x->COOL_2D_nX)), 561 ((1 + trans2->x->COOL_2D_nY) * (1 + trans1->y->COOL_2D_nX))); 562 psS32 orderXnY = PS_MAX(((1 + trans2->x->COOL_2D_nX) * (1 + trans1->x->COOL_2D_nY)), 563 ((1 + trans2->x->COOL_2D_nY) * (1 + trans1->y->COOL_2D_nY))); 564 565 psS32 orderYnX = PS_MAX(((1 + trans2->y->COOL_2D_nX) * (1 + trans1->x->COOL_2D_nX)), 566 ((1 + trans2->y->COOL_2D_nY) * (1 + trans1->y->COOL_2D_nX))); 567 psS32 orderYnY = PS_MAX(((1 + trans2->y->COOL_2D_nX) * (1 + trans1->x->COOL_2D_nY)), 568 ((1 + trans2->y->COOL_2D_nY) * (1 + trans1->y->COOL_2D_nY))); 564 569 psS32 orderX = PS_MAX(orderXnX, orderYnX); 565 570 psS32 orderY = PS_MAX(orderXnY, orderYnY); … … 568 573 // Allocate the new psPlaneTransform, if necessary. 569 574 // 575 // XXX: rename, or verify, or recode, after the poly norder/nterm change. 570 576 psPlaneTransform *myPT = NULL; 571 577 if (out == NULL) { 572 578 myPT = psPlaneTransformAlloc(orderX, orderY); 573 579 } else { 574 if (( out->x->nX == orderX) && (out->x->nY== orderY) &&575 ( out->y->nX == orderX) && (out->y->nY== orderY)) {580 if (((1 + out->x->COOL_2D_nX) == orderX) && ((1 + out->x->COOL_2D_nY) == orderY) && 581 ((1 + out->y->COOL_2D_nX) == orderX) && ((1 + out->y->COOL_2D_nY) == orderY)) { 576 582 myPT = out; 577 583 } else { … … 603 609 // 604 610 605 for (psS32 t2x = 0 ; t2x < trans2->x->nX ; t2x++) { 606 for (psS32 t2y = 0 ; t2y < trans2->x->nY ; t2y++) { 607 psPolynomial2D *currPoly = psPolynomial2DAlloc(1, 1, PS_POLYNOMIAL_ORD); 611 for (psS32 t2x = 0 ; t2x < (1 + trans2->x->COOL_2D_nX) ; t2x++) { 612 for (psS32 t2y = 0 ; t2y < (1 + trans2->x->COOL_2D_nX) ; t2y++) { 613 // XXX: Verify this (poly order/nterm change) 614 psPolynomial2D *currPoly = psPolynomial2DAlloc(1-1, 1-1, PS_POLYNOMIAL_ORD); 608 615 609 616 currPoly->coeff[0][0] = 1.0; … … 627 634 628 635 // Set the appropriate coeffs in myPT->x 629 for (psS32 i = 0 ; i < currPoly->nX; i++) {630 for (psS32 j = 0 ; j < currPoly->nY; j++) {636 for (psS32 i = 0 ; i < (1 + currPoly->COOL_2D_nX) ; i++) { 637 for (psS32 j = 0 ; j < (1 + currPoly->COOL_2D_nY) ; j++) { 631 638 myPT->x->coeff[i][j]+= currPoly->coeff[i][j] * trans2->x->coeff[t2x][t2y]; 632 639 } … … 638 645 639 646 640 for (psS32 t2x = 0 ; t2x < trans2->y->nX ; t2x++) { 641 for (psS32 t2y = 0 ; t2y < trans2->y->nY ; t2y++) { 642 psPolynomial2D *currPoly = psPolynomial2DAlloc(1, 1, PS_POLYNOMIAL_ORD); 647 for (psS32 t2x = 0 ; t2x < (1 + trans2->y->COOL_2D_nX) ; t2x++) { 648 for (psS32 t2y = 0 ; t2y < (1 + trans2->y->COOL_2D_nY) ; t2y++) { 649 // XXX: Verify this (poly order/nterm change) 650 psPolynomial2D *currPoly = psPolynomial2DAlloc(1-1, 1-1, PS_POLYNOMIAL_ORD); 643 651 currPoly->coeff[0][0] = 1.0; 644 652 currPoly->mask[0][0] = 0; … … 662 670 663 671 // Set the appropriate coeffs in myPT->x 664 for (psS32 i = 0 ; i < currPoly->nX; i++) {665 for (psS32 j = 0 ; j < currPoly->nY; j++) {672 for (psS32 i = 0 ; i < (1 + currPoly->COOL_2D_nX) ; i++) { 673 for (psS32 j = 0 ; j < (1 + currPoly->COOL_2D_nY) ; j++) { 666 674 myPT->y->coeff[i][j]+= currPoly->coeff[i][j] * trans2->y->coeff[t2x][t2y]; 667 675 } … … 694 702 695 703 psS32 numCoords = PS_MIN(source->n, dest->n); 696 psS32 order = PS_MAX(trans->x->nX, trans->x->nY); 697 order = PS_MAX(order, trans->y->nX); 698 order = PS_MAX(order, trans->y->nY); 704 psS32 order = PS_MAX(trans->x->COOL_2D_nX, trans->x->COOL_2D_nY); 705 order = PS_MAX(order, trans->y->COOL_2D_nX); 706 order = PS_MAX(order, trans->y->COOL_2D_nY); 707 // XXX: Verify, or recode, after the poly norder/nterm change. 708 order++; 699 709 700 710 // 701 711 // Create fake polynomial to use in evaluation 702 712 // 703 psPolynomial2D *fakePoly = psPolynomial2DAlloc(order, order, PS_POLYNOMIAL_ORD); 713 // XXX: Verify this (poly order/nterm change) 714 psPolynomial2D *fakePoly = psPolynomial2DAlloc(order-1, order-1, PS_POLYNOMIAL_ORD); 704 715 for (int i = 0; i < order; i++) { 705 716 for (int j = 0; j < order; j++) { … … 811 822 812 823 // Ensure that the input transformation is symmetrical. 813 if ((in->x-> nX != in->x->nY) ||814 (in->y-> nX != in->y->nY) ||815 (in->x-> nX != in->y->nX)) {824 if ((in->x->COOL_2D_nX != in->x->COOL_2D_nY) || 825 (in->y->COOL_2D_nX != in->y->COOL_2D_nY) || 826 (in->x->COOL_2D_nX != in->y->COOL_2D_nX)) { 816 827 psError(PS_ERR_BAD_PARAMETER_TYPE, true, "Input transformation must have same nX==nY."); 817 828 } 818 psS32 order = in->x->nX; 829 // XXX: recode or verify after poly changes 830 psS32 order = 1 + in->x->COOL_2D_nX; 819 831 820 832 psPlaneTransform *myPT = NULL; … … 826 838 // 827 839 if (out == NULL) { 840 // XXX: Verify this (poly order/nterm change) 828 841 myPT = psPlaneTransformAlloc(order, order); 829 842 } else { 830 if ((out->x->nX == order) && (out->x->nY == order) && 831 (out->y->nX == order) && (out->y->nY == order)) { 843 // XXX: recode or verify after poly changes 844 if (((1 + out->x->COOL_2D_nX) == order) && ((1 + out->x->COOL_2D_nY) == order) && 845 ((1 + out->y->COOL_2D_nX) == order) && ((1 + out->y->COOL_2D_nX) == order)) { 832 846 myPT = out; 833 847 } else { … … 840 854 // Copy the input transform to myPT. 841 855 // 842 for (psS32 i = 0 ; i < in->x->nX; i++) {843 for (psS32 j = 0 ; j < in->x->nY; j++) {856 for (psS32 i = 0 ; i < (1 + in->x->COOL_2D_nX) ; i++) { 857 for (psS32 j = 0 ; j < (1 + in->x->COOL_2D_nY) ; j++) { 844 858 myPT->x->coeff[i][j] = in->x->coeff[i][j]; 845 859 } 846 860 } 847 for (psS32 i = 0 ; i < in->y->nX; i++) {848 for (psS32 j = 0 ; j < in->y->nY; j++) {861 for (psS32 i = 0 ; i < (1 + in->y->COOL_2D_nX) ; i++) { 862 for (psS32 j = 0 ; j < (1 + in->y->COOL_2D_nY) ; j++) { 849 863 myPT->y->coeff[i][j] = in->y->coeff[i][j]; 850 864 } … … 926 940 927 941 // This loop starts at loop_x=1 since the derivative of the loop_x=0 terms are all 0.0 928 for (psS32 loop_x = 1; loop_x < xPoly->nX; loop_x++) {942 for (psS32 loop_x = 1; loop_x < (1 + xPoly->COOL_2D_nX); loop_x++) { 929 943 ySum = 1.0; 930 for (psS32 loop_y = 0; loop_y < xPoly->nY; loop_y++) {944 for (psS32 loop_y = 0; loop_y < (1 + xPoly->COOL_2D_nY); loop_y++) { 931 945 // 932 946 // For each iteration of the loop, we multiple the (x, y) coefficient … … 946 960 947 961 // This loop starts at loop_y=1 since the derivative of the loop_y=0 terms are all 0.0 948 for (psS32 loop_x = 0; loop_x < yPoly->nX; loop_x++) {962 for (psS32 loop_x = 0; loop_x < (1 + yPoly->COOL_2D_nX); loop_x++) { 949 963 ySum = 1.0; 950 for (psS32 loop_y = 1; loop_y < yPoly->nY; loop_y++) {964 for (psS32 loop_y = 1; loop_y < (1 + yPoly->COOL_2D_nY); loop_y++) { 951 965 // 952 966 // For each iteration of the loop, we multiple the (x, y) coefficient -
trunk/psLib/src/imageops/psImageStats.c
r5089 r5090 9 9 * @author GLG, MHPCC 10 10 * 11 * @version $Revision: 1.7 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-09-22 02: 32:00$11 * @version $Revision: 1.79 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-09-22 02:47:16 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 224 224 chebPolys = (psPolynomial1D **) psAlloc(maxChebyPoly * sizeof(psPolynomial1D *)); 225 225 for (i = 0; i < maxChebyPoly; i++) { 226 chebPolys[i] = psPolynomial1DAlloc(i + 1, PS_POLYNOMIAL_ORD); 226 // XXX: verify this, poly nOrder/nTerms change. 227 chebPolys[i] = psPolynomial1DAlloc(i, PS_POLYNOMIAL_ORD); 227 228 } 228 229 … … 232 233 chebPolys[1]->coeff[1] = 1; 233 234 for (i = 2; i < maxChebyPoly; i++) { 234 for (j = 0; j < chebPolys[i - 1]->n; j++) {235 for (j = 0; j < (1 + chebPolys[i - 1]->COOL_1D_n); j++) { 235 236 chebPolys[i]->coeff[j + 1] = 2 * chebPolys[i - 1]->coeff[j]; 236 237 } 237 for (j = 0; j < chebPolys[i - 2]->n; j++) {238 for (j = 0; j < (1 + chebPolys[i - 2]->COOL_1D_n); j++) { 238 239 chebPolys[i]->coeff[j] -= chebPolys[i - 2]->coeff[j]; 239 240 } … … 290 291 // 29 in the ADD: sums[k][l] = SUM { 291 292 // image(x,y) * Tk(x) * Tl(y) } 292 sums = (double **)psAlloc( coeffs->nX* sizeof(double *));293 for (i = 0; i < coeffs->nX; i++) {294 sums[i] = (double *)psAlloc( coeffs->nY* sizeof(double));293 sums = (double **)psAlloc((1 + coeffs->COOL_2D_nX) * sizeof(double *)); 294 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 295 sums[i] = (double *)psAlloc((1 + coeffs->COOL_2D_nY) * sizeof(double)); 295 296 } 296 297 // We scale the pixel positions to values … … 301 302 // Determine how many Chebyshev polynomials 302 303 // are needed, then create them. 303 maxChebyPoly = coeffs->nX; 304 if (coeffs->nY > coeffs->nX) { 305 maxChebyPoly = coeffs->nY; 306 } 307 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly); 304 // XXX: recorde or verify the poly order/nterm change 305 maxChebyPoly = coeffs->COOL_2D_nX; 306 if (coeffs->COOL_2D_nY > coeffs->COOL_2D_nX) { 307 maxChebyPoly = coeffs->COOL_2D_nY; 308 } 309 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly + 1); 308 310 309 311 // Compute the sums[][] data structure. 310 for (i = 0; i < coeffs->nX; i++) {311 for (j = 0; j < coeffs->nY; j++) {312 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 313 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 312 314 sums[i][j] = 0.0; 313 315 for (x = 0; x < input->numRows; x++) { … … 330 332 } 331 333 332 for (i = 0; i < coeffs->nX; i++) {333 for (j = 0; j < coeffs->nY; j++) {334 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 335 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 334 336 coeffs->coeff[i][j] = sums[i][j]; 335 337 coeffs->coeff[i][j] /= (double)(input->numRows * input->numCols); … … 353 355 354 356 // Free some data 355 for (i = 0; i < coeffs->nX; i++) {357 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 356 358 psFree(sums[i]); 357 359 } … … 436 438 // 29 in the ADD: sums[k][l] = SUM { 437 439 // image(x,y) * Tk(x) * Tl(y) } 438 sums = (double **)psAlloc( coeffs->nX* sizeof(double *));439 for (i = 0; i < coeffs->nX; i++) {440 sums[i] = (double *)psAlloc( coeffs->nY* sizeof(double));440 sums = (double **)psAlloc((1 + coeffs->COOL_2D_nX) * sizeof(double *)); 441 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 442 sums[i] = (double *)psAlloc((1 + coeffs->COOL_2D_nY) * sizeof(double)); 441 443 } 442 444 // We scale the pixel positions to values … … 447 449 // Determine how many Chebyshev polynomials 448 450 // are needed, then create them. 449 maxChebyPoly = coeffs-> nX;450 if (coeffs-> nY > coeffs->nX) {451 maxChebyPoly = coeffs-> nY;452 } 453 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly);451 maxChebyPoly = coeffs->COOL_2D_nX; 452 if (coeffs->COOL_2D_nY > coeffs->COOL_2D_nX) { 453 maxChebyPoly = coeffs->COOL_2D_nY; 454 } 455 chebPolys = 1 + p_psCreateChebyshevPolys(maxChebyPoly); 454 456 455 457 // Compute the sums[][] data structure. 456 for (i = 0; i < coeffs->nX; i++) {457 for (j = 0; j < coeffs->nY; j++) {458 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 459 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 458 460 sums[i][j] = 0.0; 459 461 for (x = 0; x < input->numRows; x++) { … … 479 481 } 480 482 481 for (i = 0; i < coeffs->nX; i++) {482 for (j = 0; j < coeffs->nY; j++) {483 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 484 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 483 485 coeffs->coeff[i][j] = sums[i][j]; 484 486 coeffs->coeff[i][j] /= (double)(input->numRows * input->numCols); … … 502 504 503 505 // Free some data 504 for (i = 0; i < coeffs->nX; i++) {506 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 505 507 psFree(sums[i]); 506 508 } … … 538 540 // Determine how many Chebyshev polynomials 539 541 // are needed, then create them. 540 maxChebyPoly = coeffs-> nX;541 if (coeffs-> nY > coeffs->nX) {542 maxChebyPoly = coeffs-> nY;543 } 544 545 chebPolys = p_psCreateChebyshevPolys(maxChebyPoly);542 maxChebyPoly = coeffs->COOL_2D_nX; 543 if (coeffs->COOL_2D_nY > coeffs->COOL_2D_nX) { 544 maxChebyPoly = coeffs->COOL_2D_nY; 545 } 546 547 chebPolys = 1 + p_psCreateChebyshevPolys(maxChebyPoly); 546 548 547 549 for (x = 0; x < input->numRows; x++) { 548 550 for (y = 0; y < input->numCols; y++) { 549 551 polySum = 0.0; 550 for (i = 0; i < coeffs->nX; i++) {551 for (j = 0; j < coeffs->nY; j++) {552 for (i = 0; i < (1 + coeffs->COOL_2D_nX); i++) { 553 for (j = 0; j < (1 + coeffs->COOL_2D_nY); j++) { 552 554 polySum += 553 555 psPolynomial1DEval(chebPolys[i], rScalingFactors[x]) * -
trunk/psLib/src/math/psMinimize.c
r5041 r5090 10 10 * @author EAM, IfA 11 11 * 12 * @version $Revision: 1.13 8$ $Name: not supported by cvs2svn $13 * @date $Date: 2005-09- 13 21:43:47$12 * @version $Revision: 1.139 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2005-09-22 02:47:16 $ 14 14 * 15 15 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 1459 1459 // XXX: these ASSERTS are redundant. 1460 1460 PS_ASSERT_POLY_NON_NULL(myPoly, NULL); 1461 PS_ASSERT_INT_NONNEGATIVE(myPoly-> n, NULL);1461 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_1D_n, NULL); 1462 1462 PS_ASSERT_VECTOR_NON_NULL(y, NULL); 1463 1463 PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F64, NULL); … … 1523 1523 fac = 2.0/((psF32) n); 1524 1524 // XXX: is this loop bound correct? 1525 for (j=0;j<myPoly-> n;j++) {1525 for (j=0;j<myPoly->COOL_1D_n+1;j++) { 1526 1526 sum = 0.0; 1527 1527 for (k=0;k<n;k++) { … … 1552 1552 // XXX: these ASSERTS are redundant. 1553 1553 PS_ASSERT_POLY_NON_NULL(myPoly, NULL); 1554 PS_ASSERT_INT_NONNEGATIVE(myPoly-> n, NULL);1554 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_1D_n, NULL); 1555 1555 PS_ASSERT_VECTOR_NON_NULL(f, NULL); 1556 1556 PS_ASSERT_VECTOR_TYPE(f, PS_TYPE_F64, NULL); … … 1597 1597 } 1598 1598 1599 nTerm = myPoly->n;1599 nTerm = 1 + myPoly->COOL_1D_n; 1600 1600 nOrder = nTerm - 1; 1601 1601 … … 1697 1697 1698 1698 PS_ASSERT_POLY_NON_NULL(poly, NULL); 1699 PS_ASSERT_INT_NONNEGATIVE(poly-> n, NULL);1699 PS_ASSERT_INT_NONNEGATIVE(poly->COOL_1D_n, NULL); 1700 1700 PS_ASSERT_VECTOR_NON_NULL(f, NULL); 1701 1701 PS_ASSERT_VECTOR_NON_EMPTY(f, NULL); … … 1837 1837 // These ASSERTS are redundant. 1838 1838 PS_ASSERT_POLY_NON_NULL(myPoly, NULL); 1839 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nX, NULL);1840 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nY, NULL);1839 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_2D_nX, NULL); 1840 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_2D_nY, NULL); 1841 1841 1842 1842 PS_ASSERT_VECTOR_NON_NULL(f, NULL); … … 1865 1865 1866 1866 // XXX:Watch for changes to the psPolys: nTerm != nOrder. 1867 psS32 nXterm = myPoly->nX;1868 psS32 nYterm = myPoly->nY;1867 psS32 nXterm = 1 + myPoly->COOL_2D_nX; 1868 psS32 nYterm = 1 + myPoly->COOL_2D_nY; 1869 1869 nTerm = nXterm * nYterm; 1870 1870 … … 2264 2264 // These ASSERTS are redundant. 2265 2265 PS_ASSERT_POLY_NON_NULL(myPoly, NULL); 2266 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nX, NULL);2267 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nY, NULL);2268 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nZ, NULL);2266 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_3D_nX, NULL); 2267 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_3D_nY, NULL); 2268 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_3D_nZ, NULL); 2269 2269 2270 2270 PS_ASSERT_VECTOR_NON_NULL(f, NULL); … … 2527 2527 // These ASSERTS are redundant. 2528 2528 PS_ASSERT_POLY_NON_NULL(myPoly, NULL); 2529 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nX, NULL);2530 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nY, NULL);2531 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nZ, NULL);2532 PS_ASSERT_INT_NONNEGATIVE(myPoly-> nT, NULL);2529 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_4D_nX, NULL); 2530 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_4D_nY, NULL); 2531 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_4D_nZ, NULL); 2532 PS_ASSERT_INT_NONNEGATIVE(myPoly->COOL_4D_nT, NULL); 2533 2533 PS_ASSERT_VECTOR_NON_NULL(f, NULL); 2534 2534 PS_ASSERT_VECTOR_TYPE(f, PS_TYPE_F64, NULL); -
trunk/psLib/src/math/psPolynomial.c
r5074 r5090 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.12 2$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-09-2 0 20:48:35$9 * @version $Revision: 1.123 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-09-22 02:47:16 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 95 95 unsigned int x = 0; 96 96 97 for (x = 0; x < poly-> nX; x++) {97 for (x = 0; x < poly->COOL_2D_nX; x++) { 98 98 psFree(poly->coeff[x]); 99 99 psFree(poly->coeffErr[x]); … … 110 110 unsigned int y = 0; 111 111 112 for (x = 0; x < poly-> nX; x++) {113 for (y = 0; y < poly-> nY; y++) {112 for (x = 0; x < poly->COOL_3D_nX; x++) { 113 for (y = 0; y < poly->COOL_3D_nY; y++) { 114 114 psFree(poly->coeff[x][y]); 115 115 psFree(poly->coeffErr[x][y]); … … 132 132 unsigned int z = 0; 133 133 134 for (x = 0; x < poly-> nX; x++) {135 for (y = 0; y < poly-> nY; y++) {136 for (z = 0; z < poly-> nZ; z++) {134 for (x = 0; x < poly->COOL_4D_nX; x++) { 135 for (y = 0; y < poly->COOL_4D_nY; y++) { 136 for (z = 0; z < poly->COOL_4D_nZ; z++) { 137 137 psFree(poly->coeff[x][y][z]); 138 138 psFree(poly->coeffErr[x][y][z]); … … 170 170 chebPolys = (psPolynomial1D **) psAlloc(maxChebyPoly * sizeof(psPolynomial1D *)); 171 171 for (unsigned int i = 0; i < maxChebyPoly; i++) { 172 chebPolys[i] = psPolynomial1DAlloc(i + 1, PS_POLYNOMIAL_ORD);172 chebPolys[i] = psPolynomial1DAlloc(i, PS_POLYNOMIAL_ORD); 173 173 } 174 174 … … 182 182 183 183 for (psS32 i = 2; i < maxChebyPoly; i++) { 184 for (psS32 j = 0; j < chebPolys[i - 1]-> n; j++) {184 for (psS32 j = 0; j < chebPolys[i - 1]->COOL_1D_n; j++) { 185 185 chebPolys[i]->coeff[j + 1] = 2 * chebPolys[i - 1]->coeff[j]; 186 186 } 187 for (psS32 j = 0; j < chebPolys[i - 2]-> n; j++) {187 for (psS32 j = 0; j < chebPolys[i - 2]->COOL_1D_n; j++) { 188 188 chebPolys[i]->coeff[j] -= chebPolys[i - 2]->coeff[j]; 189 189 } … … 210 210 "---- Calling ordPolynomial1DEval(%lf)\n", x); 211 211 psTrace(".psLib.dataManip.psPolynomial.ordPolynomial1DEval", 4, 212 "Polynomial order is %u\n", poly-> n);213 for (loop_x = 0; loop_x < poly-> n; loop_x++) {212 "Polynomial order is %u\n", poly->COOL_1D_n); 213 for (loop_x = 0; loop_x < poly->COOL_1D_n+1; loop_x++) { 214 214 psTrace(".psLib.dataManip.psPolynomial.ordPolynomial1DEval", 4, 215 215 "Polynomial coeff[%u] is %lf\n", loop_x, poly->coeff[loop_x]); 216 216 } 217 217 218 for (loop_x = 0; loop_x < poly-> n; loop_x++) {218 for (loop_x = 0; loop_x < poly->COOL_1D_n+1; loop_x++) { 219 219 if (poly->mask[loop_x] == 0) { 220 220 // XXX: If you set the tracelevel to 10 here, and later set the tracelevel to … … 238 238 PS_ASSERT_DOUBLE_WITHIN_RANGE(x, -1.0, 1.0, 0.0); 239 239 // XXX: Create a macro for this in psConstants.h 240 if (poly-> n < 1) {241 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Error: Chebyshev polynomial as order %u.", poly->n);240 if (poly->COOL_1D_n < 1) { 241 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Error: Chebyshev polynomial is order %u.", poly->COOL_1D_n); 242 242 return(NAN); 243 243 } 244 244 psVector *d; 245 unsigned int n = poly->n; 245 // XXX: n should be nTerms here (for clarity). Or get rid of the variable. 246 unsigned int n = 1 + poly->COOL_1D_n; 246 247 unsigned int i; 247 248 psF64 tmp = 0.0; … … 302 303 psPolynomial1D **chebPolys = NULL; 303 304 304 n = poly->n;305 n = 1 + poly->COOL_1D_n; 305 306 chebPolys = createChebyshevPolys(n); 306 307 307 308 tmp = 0.0; 308 for (i=0;i< poly->n;i++) {309 for (i=0;i<(1 + poly->COOL_1D_n);i++) { 309 310 tmp+= (poly->coeff[i] * psPolynomial1DEval(x, chebPolys[i])); 310 311 } … … 328 329 psF64 ySum = 1.0; 329 330 330 for (loop_x = 0; loop_x < poly->nX; loop_x++) {331 for (loop_x = 0; loop_x < (1 + poly->COOL_2D_nX); loop_x++) { 331 332 ySum = xSum; 332 for (loop_y = 0; loop_y < poly->nY; loop_y++) {333 for (loop_y = 0; loop_y < (1 + poly->COOL_2D_nY); loop_y++) { 333 334 if (poly->mask[loop_x][loop_y] == 0) { 334 335 polySum += ySum * poly->coeff[loop_x][loop_y]; … … 359 360 // Determine how many Chebyshev polynomials 360 361 // are needed, then create them. 361 maxChebyPoly = poly->nX;362 if ( poly->nY> maxChebyPoly) {363 maxChebyPoly = poly->nY;362 maxChebyPoly = 1 + poly->COOL_2D_nX; 363 if ((1 + poly->COOL_2D_nY) > maxChebyPoly) { 364 maxChebyPoly = (1 + poly->COOL_2D_nY); 364 365 } 365 366 chebPolys = createChebyshevPolys(maxChebyPoly); 366 367 367 for (loop_x = 0; loop_x < poly->nX; loop_x++) {368 for (loop_y = 0; loop_y < poly->nY; loop_y++) {368 for (loop_x = 0; loop_x < (1 + poly->COOL_2D_nX); loop_x++) { 369 for (loop_y = 0; loop_y < (1 + poly->COOL_2D_nY); loop_y++) { 369 370 if (poly->mask[loop_x][loop_y] == 0) { 370 371 polySum += poly->coeff[loop_x][loop_y] * … … 394 395 psF64 zSum = 1.0; 395 396 396 for (loop_x = 0; loop_x < poly->nX; loop_x++) {397 for (loop_x = 0; loop_x < (1 + poly->COOL_3D_nX); loop_x++) { 397 398 ySum = xSum; 398 for (loop_y = 0; loop_y < poly->nY; loop_y++) {399 for (loop_y = 0; loop_y < (1 + poly->COOL_3D_nY); loop_y++) { 399 400 zSum = ySum; 400 for (loop_z = 0; loop_z < poly->nZ; loop_z++) {401 for (loop_z = 0; loop_z < (1 + poly->COOL_3D_nZ); loop_z++) { 401 402 if (poly->mask[loop_x][loop_y][loop_z] == 0) { 402 403 polySum += zSum * poly->coeff[loop_x][loop_y][loop_z]; … … 430 431 // Determine how many Chebyshev polynomials 431 432 // are needed, then create them. 432 maxChebyPoly = poly-> nX;433 if (poly-> nY > maxChebyPoly) {434 maxChebyPoly = poly-> nY;435 } 436 if (poly-> nZ > maxChebyPoly) {437 maxChebyPoly = poly-> nZ;438 } 439 chebPolys = createChebyshevPolys(maxChebyPoly );440 441 for (loop_x = 0; loop_x < poly->nX; loop_x++) {442 for (loop_y = 0; loop_y < poly->nY; loop_y++) {443 for (loop_z = 0; loop_z < poly->nZ; loop_z++) {433 maxChebyPoly = poly->COOL_3D_nX; 434 if (poly->COOL_3D_nY > maxChebyPoly) { 435 maxChebyPoly = poly->COOL_3D_nY; 436 } 437 if (poly->COOL_3D_nZ > maxChebyPoly) { 438 maxChebyPoly = poly->COOL_3D_nZ; 439 } 440 chebPolys = createChebyshevPolys(maxChebyPoly + 1); 441 442 for (loop_x = 0; loop_x < (1 + poly->COOL_3D_nX); loop_x++) { 443 for (loop_y = 0; loop_y < (1 + poly->COOL_3D_nY); loop_y++) { 444 for (loop_z = 0; loop_z < (1 + poly->COOL_3D_nZ); loop_z++) { 444 445 if (poly->mask[loop_x][loop_y][loop_z] == 0) { 445 446 polySum += poly->coeff[loop_x][loop_y][loop_z] * … … 475 476 psF64 tSum = 1.0; 476 477 477 for (loop_x = 0; loop_x < poly->nX; loop_x++) {478 for (loop_x = 0; loop_x < (1 + poly->COOL_4D_nX); loop_x++) { 478 479 ySum = xSum; 479 for (loop_y = 0; loop_y < poly->nY; loop_y++) {480 for (loop_y = 0; loop_y < (1 + poly->COOL_4D_nY); loop_y++) { 480 481 zSum = ySum; 481 for (loop_z = 0; loop_z < poly->nZ; loop_z++) {482 for (loop_z = 0; loop_z < (1 + poly->COOL_4D_nZ); loop_z++) { 482 483 tSum = zSum; 483 for (loop_t = 0; loop_t < poly->nT; loop_t++) {484 for (loop_t = 0; loop_t < (1 + poly->COOL_4D_nT); loop_t++) { 484 485 if (poly->mask[loop_x][loop_y][loop_z][loop_t] == 0) { 485 486 polySum += tSum * poly->coeff[loop_x][loop_y][loop_z][loop_t]; … … 518 519 // Determine how many Chebyshev polynomials 519 520 // are needed, then create them. 520 maxChebyPoly = poly-> nX;521 if (poly-> nY > maxChebyPoly) {522 maxChebyPoly = poly-> nY;523 } 524 if (poly-> nZ > maxChebyPoly) {525 maxChebyPoly = poly-> nZ;526 } 527 if (poly-> nT > maxChebyPoly) {528 maxChebyPoly = poly-> nT;521 maxChebyPoly = poly->COOL_4D_nX; 522 if (poly->COOL_4D_nY > maxChebyPoly) { 523 maxChebyPoly = poly->COOL_4D_nY; 524 } 525 if (poly->COOL_4D_nZ > maxChebyPoly) { 526 maxChebyPoly = poly->COOL_4D_nZ; 527 } 528 if (poly->COOL_4D_nT > maxChebyPoly) { 529 maxChebyPoly = poly->COOL_4D_nT; 529 530 } 530 531 chebPolys = createChebyshevPolys(maxChebyPoly); 531 532 532 for (loop_x = 0; loop_x < poly->nX; loop_x++) {533 for (loop_y = 0; loop_y < poly->nY; loop_y++) {534 for (loop_z = 0; loop_z < poly->nZ; loop_z++) {535 for (loop_t = 0; loop_t < poly->nT; loop_t++) {533 for (loop_x = 0; loop_x < (1 + poly->COOL_4D_nX); loop_x++) { 534 for (loop_y = 0; loop_y < (1 + poly->COOL_4D_nY); loop_y++) { 535 for (loop_z = 0; loop_z < (1 + poly->COOL_4D_nZ); loop_z++) { 536 for (loop_t = 0; loop_t < (1 + poly->COOL_4D_nZ); loop_t++) { 536 537 if (poly->mask[loop_x][loop_y][loop_z][loop_t] == 0) { 537 538 polySum += poly->coeff[loop_x][loop_y][loop_z][loop_t] * … … 610 611 /***************************************************************************** 611 612 This routine must allocate memory for the polynomial structures. 613 XXX: replaces nterms variables with nOrder. Lots of potential for bugs 614 here. Probably should create separately named private variables 615 in these functions. 612 616 *****************************************************************************/ 613 617 psPolynomial1D* psPolynomial1DAlloc(unsigned int n, … … 623 627 624 628 newPoly->type = type; 625 newPoly-> n = n;629 newPoly->COOL_1D_n = n; 626 630 newPoly->coeff = psAlloc(n * sizeof(psF64)); 627 631 newPoly->coeffErr = psAlloc(n * sizeof(psF64)); 628 newPoly->mask = (psMaskType *)psAlloc( n* sizeof(psMaskType));629 for (i = 0; i < n; i++) {632 newPoly->mask = (psMaskType *)psAlloc((n + 1) * sizeof(psMaskType)); 633 for (i = 0; i < (n + 1); i++) { 630 634 newPoly->coeff[i] = 0.0; 631 635 newPoly->coeffErr[i] = 0.0; … … 651 655 652 656 newPoly->type = type; 653 newPoly-> nX = nX;654 newPoly-> nY = nY;655 656 newPoly->coeff = psAlloc( nX* sizeof(psF64 *));657 newPoly->coeffErr = psAlloc( nX* sizeof(psF64 *));658 newPoly->mask = (psMaskType **)psAlloc( nX* sizeof(psMaskType *));659 for (x = 0; x < nX; x++) {660 newPoly->coeff[x] = psAlloc( nY* sizeof(psF64));661 newPoly->coeffErr[x] = psAlloc( nY* sizeof(psF64));662 newPoly->mask[x] = (psMaskType *)psAlloc( nY* sizeof(psMaskType));663 } 664 for (x = 0; x < nX; x++) {665 for (y = 0; y < nY; y++) {657 newPoly->COOL_2D_nX = nX; 658 newPoly->COOL_2D_nY = nY; 659 660 newPoly->coeff = psAlloc((1 + nX) * sizeof(psF64 *)); 661 newPoly->coeffErr = psAlloc((1 + nX) * sizeof(psF64 *)); 662 newPoly->mask = (psMaskType **)psAlloc((1 + nX) * sizeof(psMaskType *)); 663 for (x = 0; x < (1 + nX); x++) { 664 newPoly->coeff[x] = psAlloc((1 + nY) * sizeof(psF64)); 665 newPoly->coeffErr[x] = psAlloc((1 + nY) * sizeof(psF64)); 666 newPoly->mask[x] = (psMaskType *)psAlloc((1 + nY) * sizeof(psMaskType)); 667 } 668 for (x = 0; x < (1 + nX); x++) { 669 for (y = 0; y < (1 + nY); y++) { 666 670 newPoly->coeff[x][y] = 0.0; 667 671 newPoly->coeffErr[x][y] = 0.0; … … 691 695 692 696 newPoly->type = type; 693 newPoly-> nX = nX;694 newPoly-> nY = nY;695 newPoly-> nZ = nZ;696 697 newPoly->coeff = psAlloc( nX* sizeof(psF64 **));698 newPoly->coeffErr = psAlloc( nX* sizeof(psF64 **));699 newPoly->mask = (psMaskType ***)psAlloc( nX* sizeof(psMaskType **));700 for (x = 0; x < nX; x++) {701 newPoly->coeff[x] = psAlloc( nY* sizeof(psF64 *));702 newPoly->coeffErr[x] = psAlloc( nY* sizeof(psF64 *));703 newPoly->mask[x] = (psMaskType **)psAlloc( nY* sizeof(psMaskType *));704 for (y = 0; y < nY; y++) {705 newPoly->coeff[x][y] = psAlloc( nZ* sizeof(psF64));706 newPoly->coeffErr[x][y] = psAlloc( nZ* sizeof(psF64));707 newPoly->mask[x][y] = (psMaskType *)psAlloc( nZ* sizeof(psMaskType));708 } 709 } 710 for (x = 0; x < nX; x++) {711 for (y = 0; y < nY; y++) {712 for (z = 0; z < nZ; z++) {697 newPoly->COOL_3D_nX = nX; 698 newPoly->COOL_3D_nY = nY; 699 newPoly->COOL_3D_nZ = nZ; 700 701 newPoly->coeff = psAlloc((nX + 1) * sizeof(psF64 **)); 702 newPoly->coeffErr = psAlloc((nX + 1) * sizeof(psF64 **)); 703 newPoly->mask = (psMaskType ***)psAlloc((nX + 1) * sizeof(psMaskType **)); 704 for (x = 0; x < (1 + nX); x++) { 705 newPoly->coeff[x] = psAlloc((nY + 1) * sizeof(psF64 *)); 706 newPoly->coeffErr[x] = psAlloc((nY + 1) * sizeof(psF64 *)); 707 newPoly->mask[x] = (psMaskType **)psAlloc((nY + 1) * sizeof(psMaskType *)); 708 for (y = 0; y < (nY + 1); y++) { 709 newPoly->coeff[x][y] = psAlloc((nZ + 1) * sizeof(psF64)); 710 newPoly->coeffErr[x][y] = psAlloc((nZ + 1) * sizeof(psF64)); 711 newPoly->mask[x][y] = (psMaskType *)psAlloc((nZ + 1) * sizeof(psMaskType)); 712 } 713 } 714 for (x = 0; x < (nX + 1); x++) { 715 for (y = 0; y < (nY + 1); y++) { 716 for (z = 0; z < (nZ + 1); z++) { 713 717 newPoly->coeff[x][y][z] = 0.0; 714 718 newPoly->coeffErr[x][y][z] = 0.0; … … 742 746 743 747 newPoly->type = type; 744 newPoly-> nX = nX;745 newPoly-> nY = nY;746 newPoly-> nZ = nZ;747 newPoly-> nT = nT;748 749 newPoly->coeff = psAlloc( nX* sizeof(psF64 ***));750 newPoly->coeffErr = psAlloc( nX* sizeof(psF64 ***));751 newPoly->mask = (psMaskType ****)psAlloc( nX* sizeof(psMaskType ***));752 for (x = 0; x < nX; x++) {753 newPoly->coeff[x] = psAlloc( nY* sizeof(psF64 **));754 newPoly->coeffErr[x] = psAlloc( nY* sizeof(psF64 **));755 newPoly->mask[x] = (psMaskType ***)psAlloc( nY* sizeof(psMaskType **));756 for (y = 0; y < nY; y++) {757 newPoly->coeff[x][y] = psAlloc( nZ* sizeof(psF64 *));758 newPoly->coeffErr[x][y] = psAlloc( nZ* sizeof(psF64 *));759 newPoly->mask[x][y] = (psMaskType **)psAlloc( nZ* sizeof(psMaskType *));760 for (z = 0; z < nZ; z++) {761 newPoly->coeff[x][y][z] = psAlloc( nT* sizeof(psF64));762 newPoly->coeffErr[x][y][z] = psAlloc( nT* sizeof(psF64));763 newPoly->mask[x][y][z] = (psMaskType *)psAlloc( nT* sizeof(psMaskType));764 } 765 } 766 } 767 for (x = 0; x < nX; x++) {768 for (y = 0; y < nY; y++) {769 for (z = 0; z < nZ; z++) {770 for (t = 0; t < nT; t++) {748 newPoly->COOL_4D_nX = nX; 749 newPoly->COOL_4D_nY = nY; 750 newPoly->COOL_4D_nZ = nZ; 751 newPoly->COOL_4D_nT = nT; 752 753 newPoly->coeff = psAlloc((nX + 1) * sizeof(psF64 ***)); 754 newPoly->coeffErr = psAlloc((nX + 1) * sizeof(psF64 ***)); 755 newPoly->mask = (psMaskType ****)psAlloc((nX + 1) * sizeof(psMaskType ***)); 756 for (x = 0; x < (nX + 1); x++) { 757 newPoly->coeff[x] = psAlloc((nY + 1) * sizeof(psF64 **)); 758 newPoly->coeffErr[x] = psAlloc((nY + 1) * sizeof(psF64 **)); 759 newPoly->mask[x] = (psMaskType ***)psAlloc((nY + 1) * sizeof(psMaskType **)); 760 for (y = 0; y < (nY + 1); y++) { 761 newPoly->coeff[x][y] = psAlloc((nZ + 1) * sizeof(psF64 *)); 762 newPoly->coeffErr[x][y] = psAlloc((nZ + 1) * sizeof(psF64 *)); 763 newPoly->mask[x][y] = (psMaskType **)psAlloc((nZ + 1) * sizeof(psMaskType *)); 764 for (z = 0; z < (nZ + 1); z++) { 765 newPoly->coeff[x][y][z] = psAlloc((nT + 1) * sizeof(psF64)); 766 newPoly->coeffErr[x][y][z] = psAlloc((nT + 1) * sizeof(psF64)); 767 newPoly->mask[x][y][z] = (psMaskType *)psAlloc((nT + 1) * sizeof(psMaskType)); 768 } 769 } 770 } 771 for (x = 0; x < (nX + 1); x++) { 772 for (y = 0; y < (nY + 1); y++) { 773 for (z = 0; z < (nZ + 1); z++) { 774 for (t = 0; t < (nT + 1); t++) { 771 775 newPoly->coeff[x][y][z][t] = 0.0; 772 776 newPoly->coeffErr[x][y][z][t] = 0.0; … … 972 976 } 973 977 974 // Alloc ateoutput vector978 // Allocoutput vector 975 979 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 976 980 -
trunk/psLib/src/math/psPolynomial.h
r5066 r5090 11 11 * @author GLG, MHPCC 12 12 * 13 * @version $Revision: 1.5 6$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-09- 19 19:53:13$13 * @version $Revision: 1.57 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-09-22 02:47:16 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 64 64 */ 65 65 typedef enum { 66 PS_POLYNOMIAL_ORD, ///< Ordinary Polynomial67 PS_POLYNOMIAL_CHEB ///< Chebyshev Polynomial66 PS_POLYNOMIAL_ORD, ///< Ordinary Polynomial 67 PS_POLYNOMIAL_CHEB ///< Chebyshev Polynomial 68 68 } 69 69 psPolynomialType; 70 70 71 // XXX: These are incorrect names for the order of the polynomial. We 72 // keep them here temporarily so we can later sed replace them with the 73 // correct names. 71 74 /** One-dimensional polynomial */ 72 75 typedef struct 73 76 { 74 psPolynomialType type; ///< Polynomial type75 unsigned int n; ///< Number of terms76 psF64 *coeff; ///< Coefficients77 psF64 *coeffErr; ///< Error in coefficients78 psMaskType *mask; ///< Coefficient mask77 psPolynomialType type; ///< Polynomial type 78 unsigned int COOL_1D_n; ///< Polynomial order 79 psF64 *coeff; ///< Coefficients 80 psF64 *coeffErr; ///< Error in coefficients 81 psMaskType *mask; ///< Coefficient mask 79 82 } 80 83 psPolynomial1D; 81 84 85 // XXX: These are incorrect names for the order of the polynomial. We 86 // keep them here temporarily so we can later sed replace them with the 87 // correct names. 82 88 /** Two-dimensional polynomial */ 83 89 typedef struct 84 90 { 85 psPolynomialType type; ///< Polynomial type86 unsigned int nX; ///< Number of termsin x87 unsigned int nY; ///< Number of termsin y88 psF64 **coeff; ///< Coefficients89 psF64 **coeffErr; ///< Error in coefficients90 psMaskType **mask; ///< Coefficients mask91 psPolynomialType type; ///< Polynomial type 92 unsigned int COOL_2D_nX; ///< Polynomial order in x 93 unsigned int COOL_2D_nY; ///< Polynomial order in y 94 psF64 **coeff; ///< Coefficients 95 psF64 **coeffErr; ///< Error in coefficients 96 psMaskType **mask; ///< Coefficients mask 91 97 } 92 98 psPolynomial2D; 93 99 100 // XXX: These are incorrect names for the order of the polynomial. We 101 // keep them here temporarily so we can later sed replace them with the 102 // correct names. 94 103 /** Three-dimensional polynomial */ 95 104 typedef struct 96 105 { 97 psPolynomialType type; ///< Polynomial type98 unsigned int nX; ///< Number of termsin x99 unsigned int nY; ///< Number of termsin y100 unsigned int nZ; ///< Number of termsin z101 psF64 ***coeff; ///< Coefficients102 psF64 ***coeffErr; ///< Error in coefficients103 psMaskType ***mask; ///< Coefficients mask106 psPolynomialType type; ///< Polynomial type 107 unsigned int COOL_3D_nX; ///< Polynomial order in x 108 unsigned int COOL_3D_nY; ///< Polynomial order in y 109 unsigned int COOL_3D_nZ; ///< Polynomial order in z 110 psF64 ***coeff; ///< Coefficients 111 psF64 ***coeffErr; ///< Error in coefficients 112 psMaskType ***mask; ///< Coefficients mask 104 113 } 105 114 psPolynomial3D; 106 115 116 // XXX: These are incorrect names for the order of the polynomial. We 117 // keep them here temporarily so we can later sed replace them with the 118 // correct names. 107 119 /** Four-dimensional polynomial */ 108 120 typedef struct 109 121 { 110 psPolynomialType type; ///< Polynomial type111 unsigned int nX; ///< Number of termsin x112 unsigned int nY; ///< Number of termsin y113 unsigned int nZ; ///< Number of termsin z114 unsigned int nT; ///< Number of termsin t115 psF64 ****coeff; ///< Coefficients116 psF64 ****coeffErr; ///< Error in coefficients117 psMaskType ****mask; ///< Coefficients mask122 psPolynomialType type; ///< Polynomial type 123 unsigned int COOL_4D_nX; ///< Polynomial order in x 124 unsigned int COOL_4D_nY; ///< Polynomial order in y 125 unsigned int COOL_4D_nZ; ///< Polynomial order in z 126 unsigned int COOL_4D_nT; ///< Polynomial order in t 127 psF64 ****coeff; ///< Coefficients 128 psF64 ****coeffErr; ///< Error in coefficients 129 psMaskType ****mask; ///< Coefficients mask 118 130 } 119 131 psPolynomial4D; -
trunk/psLib/src/math/psSpline.c
r5072 r5090 7 7 * splines. 8 8 * 9 * @version $Revision: 1.12 6$ $Name: not supported by cvs2svn $10 * @date $Date: 2005-09-2 0 02:43:53$9 * @version $Revision: 1.127 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2005-09-22 02:47:16 $ 11 11 * 12 12 * … … 383 383 // If these are linear splines, which means their polynomials will have 384 384 // two coefficients, then we do the simple calculation. 385 if ( 2 == (spline->spline[0])->n) {385 if (1 == (spline->spline[0])->COOL_1D_n) { 386 386 for (i=0;i<spline->n;i++) { 387 387 slope = (y32->data.F32[i+1] - y32->data.F32[i]) / … … 402 402 403 403 // Check if these are cubic splines (n==4). If not, psError. 404 if ( 4 != (spline->spline[0])->n) {404 if (3 != (spline->spline[0])->COOL_1D_n) { 405 405 psError(PS_ERR_BAD_PARAMETER_SIZE, true, 406 406 "Don't know how to generate %u-order splines.", 407 (spline->spline[0])-> n-1);407 (spline->spline[0])->COOL_1D_n); 408 408 return(NULL); 409 409 } … … 745 745 tmpSpline->spline = (psPolynomial1D **) psAlloc(numSplines * sizeof(psPolynomial1D *)); 746 746 for (unsigned int i=0;i<numSplines;i++) { 747 (tmpSpline->spline)[i] = psPolynomial1DAlloc(order +1, PS_POLYNOMIAL_ORD);747 (tmpSpline->spline)[i] = psPolynomial1DAlloc(order, PS_POLYNOMIAL_ORD); 748 748 } 749 749 … … 809 809 tmpSpline->spline = (psPolynomial1D **) psAlloc(numSplines * sizeof(psPolynomial1D *)); 810 810 for (unsigned int i=0;i<numSplines;i++) { 811 (tmpSpline->spline)[i] = psPolynomial1DAlloc(order +1, PS_POLYNOMIAL_ORD);811 (tmpSpline->spline)[i] = psPolynomial1DAlloc(order, PS_POLYNOMIAL_ORD); 812 812 } 813 813 -
trunk/psLib/src/math/psStats.c
r4991 r5090 17 17 * 18 18 * 19 * @version $Revision: 1.14 5$ $Name: not supported by cvs2svn $20 * @date $Date: 2005-09- 11 22:18:40$19 * @version $Revision: 1.146 $ $Name: not supported by cvs2svn $ 20 * @date $Date: 2005-09-22 02:47:16 $ 21 21 * 22 22 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 1502 1502 psVector *y = psVectorAlloc(3, PS_TYPE_F64); 1503 1503 psVector *yErr = psVectorAlloc(3, PS_TYPE_F64); 1504 // XXX: Why was this 2 when the alloc function specified number of terms? Note: it's correct now. 1504 1505 psPolynomial1D *myPoly = psPolynomial1DAlloc(2, PS_POLYNOMIAL_ORD); 1505 1506 … … 1552 1553 1553 1554 // Determine the coefficients of the polynomial. 1554 // myPoly = psVectorFitPolynomial1D(myPoly, x, y, yErr);1555 1555 myPoly = psVectorFitPolynomial1D(myPoly, NULL, 0, y, yErr, x); 1556 1556 if (myPoly == NULL) { … … 1827 1827 } 1828 1828 1829 psPolynomial1D *tmpPoly = psPolynomial1DAlloc( 3, PS_POLYNOMIAL_ORD);1829 psPolynomial1D *tmpPoly = psPolynomial1DAlloc(2, PS_POLYNOMIAL_ORD); 1830 1830 // XXX: What about the NULL x argument? 1831 1831 tmpPoly = psVectorFitPolynomial1D(tmpPoly, NULL, 0, y, NULL, NULL); -
trunk/psLib/test/astro/tst_psCoord.c
r4601 r5090 6 6 * @author GLG, MHPCC 7 7 * 8 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $9 * @date $Date: 2005-0 7-23 02:44:09$8 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2005-09-22 02:47:16 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 51 51 52 52 // Verify returned transform has members set properly 53 if ( myPT->x->nX!= NX_TERMS) {54 psError(PS_ERR_UNKNOWN,true,"myPT->x-> nX is %d, should be %d",55 myPT->x-> nX, NX_TERMS);53 if ((1 + myPT->x->COOL_2D_nX) != NX_TERMS) { 54 psError(PS_ERR_UNKNOWN,true,"myPT->x->COOL_2D_nX is %d, should be %d", 55 myPT->x->COOL_2D_nX, NX_TERMS-1); 56 56 return 2; 57 57 } 58 if ( myPT->y->nX!= NX_TERMS) {59 psError(PS_ERR_UNKNOWN,true,"myPT->y-> nX is %d, should be %d",60 myPT->y-> nX, NX_TERMS);58 if ((1 + myPT->y->COOL_2D_nX) != NX_TERMS) { 59 psError(PS_ERR_UNKNOWN,true,"myPT->y->COOL_2D_nX is %d, should be %d", 60 myPT->y->COOL_2D_nX, NX_TERMS-1); 61 61 return 3; 62 62 } 63 if ( myPT->x->nY!= NY_TERMS) {64 psError(PS_ERR_UNKNOWN,true,"myPT->x-> nY is %d, should be %d",65 myPT->x-> nY, NY_TERMS);63 if ((1 + myPT->x->COOL_2D_nY) != NY_TERMS) { 64 psError(PS_ERR_UNKNOWN,true,"myPT->x->COOL_2D_nY is %d, should be %d", 65 myPT->x->COOL_2D_nY, NY_TERMS-1); 66 66 return 4; 67 67 } 68 if ( myPT->y->nY!= NY_TERMS) {69 psError(PS_ERR_UNKNOWN,true,"myPT->y-> nY is %d, should be %d",70 myPT->y-> nY, NY_TERMS);68 if ((1 + myPT->y->COOL_2D_nY) != NY_TERMS) { 69 psError(PS_ERR_UNKNOWN,true,"myPT->y->COOL_2D_nY is %d, should be %d", 70 myPT->y->COOL_2D_nY, NY_TERMS-1); 71 71 return 5; 72 72 } … … 108 108 } 109 109 // Verify the terms are properly set after allocation 110 if ( myPD->x->nX!= NX_TERMS) {111 psError(PS_ERR_UNKNOWN,true,"myPD->x-> nX is %d, should be %d",112 myPD->x-> nX, NX_TERMS);110 if ((1 + myPD->x->COOL_4D_nX) != NX_TERMS) { 111 psError(PS_ERR_UNKNOWN,true,"myPD->x->COOL_4D_nX is %d, should be %d", 112 myPD->x->COOL_4D_nX, NX_TERMS-1); 113 113 return 2; 114 114 } 115 if ( myPD->y->nX!= NX_TERMS) {116 psError(PS_ERR_UNKNOWN,true,"myPD->y-> nX is %d, should be %d",117 myPD->y-> nX, NX_TERMS);115 if ((1 + myPD->y->COOL_4D_nX) != NX_TERMS) { 116 psError(PS_ERR_UNKNOWN,true,"myPD->y->COOL_4D_nX is %d, should be %d", 117 myPD->y->COOL_4D_nX, NX_TERMS-1); 118 118 return 3; 119 119 } 120 if ( myPD->x->nY!= NY_TERMS) {121 psError(PS_ERR_UNKNOWN,true,"myPD->x-> nY is %d, should be %d",122 myPD->x-> nY, NY_TERMS);120 if ((1 + myPD->x->COOL_4D_nY) != NY_TERMS) { 121 psError(PS_ERR_UNKNOWN,true,"myPD->x->COOL_4D_nY is %d, should be %d", 122 myPD->x->COOL_4D_nY, NY_TERMS-1); 123 123 return 4; 124 124 } 125 if ( myPD->y->nY!= NY_TERMS) {126 psError(PS_ERR_UNKNOWN,true,"myPD->y-> nY is %d, should be %d",127 myPD->y-> nY, NY_TERMS);125 if ((1 + myPD->y->COOL_4D_nY) != NY_TERMS) { 126 psError(PS_ERR_UNKNOWN,true,"myPD->y->COOL_4D_nY is %d, should be %d", 127 myPD->y->COOL_4D_nY, NY_TERMS-1); 128 128 return 5; 129 129 } 130 if ( myPD->x->nZ!= NZ_TERMS) {131 psError(PS_ERR_UNKNOWN,true,"myPD->x-> nZ is %d, should be %d",132 myPD->x-> nZ, NZ_TERMS);130 if ((1 + myPD->x->COOL_4D_nZ) != NZ_TERMS) { 131 psError(PS_ERR_UNKNOWN,true,"myPD->x->COOL_4D_nZ is %d, should be %d", 132 myPD->x->COOL_4D_nX, NZ_TERMS-1); 133 133 return 6; 134 134 } 135 if ( myPD->y->nZ!= NZ_TERMS) {136 psError(PS_ERR_UNKNOWN,true,"myPD->y-> nZ is %d, should be %d",137 myPD->y-> nZ, NZ_TERMS);135 if ((1 + myPD->y->COOL_4D_nZ) != NZ_TERMS) { 136 psError(PS_ERR_UNKNOWN,true,"myPD->y->COOL_4D_nZ is %d, should be %d", 137 myPD->y->COOL_4D_nZ, NZ_TERMS-1); 138 138 return 7; 139 139 } 140 if ( myPD->x->nT!= NT_TERMS) {141 psError(PS_ERR_UNKNOWN,true,"myPD->x-> nT is %d, should be %d",142 myPD->x-> nT, NT_TERMS);140 if ((1 + myPD->x->COOL_4D_nT) != NT_TERMS) { 141 psError(PS_ERR_UNKNOWN,true,"myPD->x->COOL_4D_nT is %d, should be %d", 142 myPD->x->COOL_4D_nT, NT_TERMS-1); 143 143 return 8; 144 144 } 145 if ( myPD->y->nT!= NT_TERMS) {146 psError(PS_ERR_UNKNOWN,true,"myPD->y-> nT is %d, should be %d",147 myPD->y-> nT, NT_TERMS);145 if ((1 + myPD->y->COOL_4D_nT) != NT_TERMS) { 146 psError(PS_ERR_UNKNOWN,true,"myPD->y->COOL_4D_nT is %d, should be %d", 147 myPD->y->COOL_4D_nT, NT_TERMS-1); 148 148 return 9; 149 149 } -
trunk/psLib/test/math/tst_psFunc00.c
r4731 r5090 14 14 * orders are created. 15 15 * 16 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $17 * @date $Date: 2005-0 8-08 21:44:09$16 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 17 * @date $Date: 2005-09-22 02:47:16 $ 18 18 * 19 19 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 63 63 } 64 64 // Verify polynomial structure members set properly 65 if(my1DPoly-> n != ORDER) {66 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 67 my1DPoly-> n, ORDER);65 if(my1DPoly->COOL_1D_n != ORDER) { 66 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 67 my1DPoly->COOL_1D_n, ORDER); 68 68 return 2; 69 69 } … … 73 73 return 3; 74 74 } 75 for(psS32 i = 0; i < ORDER ; i++) {75 for(psS32 i = 0; i < ORDER+1; i++) { 76 76 if(my1DPoly->coeff[i] != 0.0) { 77 77 psError(PS_ERR_UNKNOWN,true,"Coeff[%d] %lg not as expected %lg", … … 115 115 } 116 116 // Verify polynomial structure members set properly 117 if(my2DPoly-> nX != ORDER) {118 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 119 my2DPoly-> nX, ORDER);117 if(my2DPoly->COOL_2D_nX != ORDER) { 118 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 119 my2DPoly->COOL_2D_nX, ORDER); 120 120 return 2; 121 121 } 122 122 // Verify polynomial structure members set properly 123 if(my2DPoly-> nY != ORDER+1) {124 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 125 my2DPoly-> nY, ORDER+1);123 if(my2DPoly->COOL_2D_nY != ORDER+1) { 124 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 125 my2DPoly->COOL_2D_nY, ORDER+1); 126 126 return 3; 127 127 } … … 131 131 return 4; 132 132 } 133 for(psS32 i = 0; i < ORDER ; i++) {134 for(psS32 j = 0; j < ORDER+ 1; j++) {133 for(psS32 i = 0; i < ORDER+1; i++) { 134 for(psS32 j = 0; j < ORDER+2; j++) { 135 135 if(my2DPoly->coeff[i][j] != 0.0) { 136 136 psError(PS_ERR_UNKNOWN,true,"Coeff[%d][%d] %lg not as expected %lg", … … 181 181 } 182 182 // Verify polynomial structure members set properly 183 if(my3DPoly-> nX != ORDER) {184 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 185 my3DPoly-> nX, ORDER);183 if(my3DPoly->COOL_3D_nX != ORDER) { 184 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 185 my3DPoly->COOL_3D_nX, ORDER); 186 186 return 2; 187 187 } 188 188 // Verify polynomial structure members set properly 189 if(my3DPoly-> nY != ORDER+1) {190 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 191 my3DPoly-> nY, ORDER+1);189 if(my3DPoly->COOL_3D_nY != ORDER+1) { 190 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 191 my3DPoly->COOL_3D_nY, ORDER+1); 192 192 return 3; 193 193 } 194 194 // Verify polynomial structure members set properly 195 if(my3DPoly-> nZ != ORDER+2) {196 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 197 my3DPoly-> nZ, ORDER+2);195 if(my3DPoly->COOL_3D_nZ != ORDER+2) { 196 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 197 my3DPoly->COOL_3D_nZ, ORDER+2); 198 198 return 4; 199 199 } … … 203 203 return 5; 204 204 } 205 for(psS32 i = 0; i < ORDER ; i++) {206 for(psS32 j = 0; j < ORDER+ 1; j++) {207 for(psS32 k = 0; k < ORDER+ 2; k++) {205 for(psS32 i = 0; i < ORDER+1; i++) { 206 for(psS32 j = 0; j < ORDER+2; j++) { 207 for(psS32 k = 0; k < ORDER+3; k++) { 208 208 if(my3DPoly->coeff[i][j][k] != 0.0) { 209 209 psError(PS_ERR_UNKNOWN,true,"Coeff[%d][%d][%d] %lg not as expected %lg", … … 254 254 255 255 // Allocate polynomial 256 my4DPoly = psPolynomial4DAlloc(ORDER +3,ORDER,ORDER+1,ORDER+2,PS_POLYNOMIAL_ORD);256 my4DPoly = psPolynomial4DAlloc(ORDER,ORDER+1,ORDER+2,ORDER+3,PS_POLYNOMIAL_ORD); 257 257 // Verify structure allocated 258 258 if(my4DPoly == NULL) { … … 261 261 } 262 262 // Verify polynomial structure members set properly 263 if(my4DPoly-> nY!= ORDER) {264 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 265 my4DPoly-> nY, ORDER);263 if(my4DPoly->COOL_4D_nX != ORDER) { 264 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 265 my4DPoly->COOL_4D_nX, ORDER); 266 266 return 2; 267 267 } 268 268 // Verify polynomial structure members set properly 269 if(my4DPoly-> nZ!= ORDER+1) {270 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 271 my4DPoly-> nZ, ORDER+1);269 if(my4DPoly->COOL_4D_nY != ORDER+1) { 270 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 271 my4DPoly->COOL_4D_nX, ORDER+1); 272 272 return 3; 273 273 } 274 274 // Verify polynomial structure members set properly 275 if(my4DPoly-> nT!= ORDER+2) {276 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 277 my4DPoly-> nT, ORDER+2);275 if(my4DPoly->COOL_4D_nZ != ORDER+2) { 276 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 277 my4DPoly->COOL_4D_nZ, ORDER+2); 278 278 return 4; 279 279 } 280 280 // Verify polynomial structure members set properly 281 if(my4DPoly-> nX!= ORDER+3) {282 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 283 my4DPoly-> nX, ORDER+3);281 if(my4DPoly->COOL_4D_nT != ORDER+3) { 282 psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d", 283 my4DPoly->COOL_4D_nT, ORDER+3); 284 284 return 5; 285 285 } … … 289 289 return 6; 290 290 } 291 for(psS32 i = 0; i < ORDER+ 3; i++) {292 for(psS32 j = 0; j < ORDER ; j++) {293 for(psS32 k = 0; k < ORDER+ 1; k++) {294 for(psS32 l = 0; l < ORDER+ 2; l++) {291 for(psS32 i = 0; i < ORDER+1; i++) { 292 for(psS32 j = 0; j < ORDER+2; j++) { 293 for(psS32 k = 0; k < ORDER+3; k++) { 294 for(psS32 l = 0; l < ORDER+4; l++) { 295 295 if(my4DPoly->coeff[i][j][k][l] != 0.0) { 296 296 psError(PS_ERR_UNKNOWN,true,"Coeff[%d][%d][%d][%d] %lg not as expected %lg", -
trunk/psLib/test/math/tst_psFunc08.c
r4731 r5090 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $7 * @date $Date: 2005-0 8-08 21:44:09$6 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2005-09-22 02:47:16 $ 8 8 * 9 9 * XXX: Probably should test single- and multi-dimensional polynomials in … … 59 59 60 60 // Allocate polynomial structure 61 psPolynomial1D* polyOrd = psPolynomial1DAlloc(TERMS , PS_POLYNOMIAL_ORD);62 psPolynomial1D* polyCheb = psPolynomial1DAlloc(TERMS , PS_POLYNOMIAL_CHEB);61 psPolynomial1D* polyOrd = psPolynomial1DAlloc(TERMS-1, PS_POLYNOMIAL_ORD); 62 psPolynomial1D* polyCheb = psPolynomial1DAlloc(TERMS-1, PS_POLYNOMIAL_CHEB); 63 63 // Set polynomial members 64 64 for(psS32 i = 0; i < TERMS; i++) { … … 87 87 88 88 // Allocate polynomial with invalid type 89 polyOrd = psPolynomial1DAlloc(TERMS , 99);89 polyOrd = psPolynomial1DAlloc(TERMS-1, 99); 90 90 // Attempt to evaluation invalid polynomial type 91 91 psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type"); … … 104 104 { 105 105 // Allocate polynomial 106 psPolynomial1D* polyOrd = psPolynomial1DAlloc(TERMS ,PS_POLYNOMIAL_ORD);107 psPolynomial1D* polyCheb = psPolynomial1DAlloc(TERMS ,PS_POLYNOMIAL_CHEB);106 psPolynomial1D* polyOrd = psPolynomial1DAlloc(TERMS-1,PS_POLYNOMIAL_ORD); 107 psPolynomial1D* polyCheb = psPolynomial1DAlloc(TERMS-1,PS_POLYNOMIAL_CHEB); 108 108 109 109 // Set polynomial members -
trunk/psLib/test/math/tst_psFunc09.c
r4731 r5090 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $7 * @date $Date: 2005-0 8-08 21:44:09$6 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2005-09-22 02:47:16 $ 8 8 * 9 9 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 88 88 89 89 // Allocate polynomial structure 90 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS , TERMS, PS_POLYNOMIAL_ORD);91 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS , TERMS, PS_POLYNOMIAL_CHEB);90 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS-1, TERMS-1, PS_POLYNOMIAL_ORD); 91 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS-1, TERMS-1, PS_POLYNOMIAL_CHEB); 92 92 // Set polynomial members 93 93 for(psS32 i = 0; i < TERMS; i++) { … … 118 118 119 119 // Allocate polynomial with invalid type 120 polyOrd = psPolynomial2DAlloc(TERMS , TERMS, 99);120 polyOrd = psPolynomial2DAlloc(TERMS-1, TERMS-1, 99); 121 121 // Attempt to evaluation invalid polynomial type 122 122 psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type"); … … 138 138 139 139 // Allocate polynomial structure 140 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS , TERMS, PS_POLYNOMIAL_ORD);141 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS , TERMS, PS_POLYNOMIAL_CHEB);140 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS-1, TERMS-1, PS_POLYNOMIAL_ORD); 141 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS-1, TERMS-1, PS_POLYNOMIAL_CHEB); 142 142 // Set polynomial members 143 143 for(psS32 i = 0; i < TERMS; i++) { … … 168 168 169 169 // Allocate polynomial with invalid type 170 polyOrd = psPolynomial2DAlloc(TERMS , TERMS, 99);170 polyOrd = psPolynomial2DAlloc(TERMS-1, TERMS-1, 99); 171 171 // Attempt to evaluation invalid polynomial type 172 172 psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type"); … … 184 184 { 185 185 // Allocate polynomial 186 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS ,TERMS,PS_POLYNOMIAL_ORD);187 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS ,TERMS,PS_POLYNOMIAL_CHEB);186 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS-1,TERMS-1,PS_POLYNOMIAL_ORD); 187 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS-1,TERMS-1,PS_POLYNOMIAL_CHEB); 188 188 189 189 // Set polynomial members … … 297 297 { 298 298 // Allocate polynomial 299 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS ,TERMS,PS_POLYNOMIAL_ORD);300 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS ,TERMS,PS_POLYNOMIAL_CHEB);299 psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS-1,TERMS-1,PS_POLYNOMIAL_ORD); 300 psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS-1,TERMS-1,PS_POLYNOMIAL_CHEB); 301 301 302 302 // Set polynomial members -
trunk/psLib/test/math/tst_psFunc10.c
r4731 r5090 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $7 * @date $Date: 2005-0 8-08 21:44:09$6 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2005-09-22 02:47:16 $ 8 8 * 9 9 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 139 139 140 140 // Allocate polynomial structure 141 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS , TERMS, TERMS, PS_POLYNOMIAL_ORD);142 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS , TERMS, TERMS, PS_POLYNOMIAL_CHEB);141 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_ORD); 142 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_CHEB); 143 143 // Set polynomial members 144 144 for(psS32 i = 0; i < TERMS; i++) { … … 173 173 174 174 // Allocate polynomial with invalid type 175 polyOrd = psPolynomial3DAlloc(TERMS , TERMS, TERMS, 99);175 polyOrd = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1, 99); 176 176 // Attempt to evaluation invalid polynomial type 177 177 psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type"); … … 193 193 194 194 // Allocate polynomial structure 195 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS ,TERMS,TERMS,PS_POLYNOMIAL_ORD);196 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS ,TERMS,TERMS,PS_POLYNOMIAL_CHEB);195 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1,PS_POLYNOMIAL_ORD); 196 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1,PS_POLYNOMIAL_CHEB); 197 197 // Set polynomial members 198 198 for(psS32 i = 0; i < TERMS; i++) { … … 227 227 228 228 // Allocate polynomial with invalid type 229 polyOrd = psPolynomial3DAlloc(TERMS , TERMS, TERMS, 99);229 polyOrd = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1, 99); 230 230 // Attempt to evaluation invalid polynomial type 231 231 psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type"); … … 243 243 { 244 244 // Allocate polynomial 245 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS ,TERMS,TERMS,PS_POLYNOMIAL_ORD);246 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS ,TERMS,TERMS,PS_POLYNOMIAL_CHEB);245 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1,PS_POLYNOMIAL_ORD); 246 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1,PS_POLYNOMIAL_CHEB); 247 247 248 248 // Set polynomial members … … 378 378 { 379 379 // Allocate polynomial 380 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS ,TERMS,TERMS,PS_POLYNOMIAL_ORD);381 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS ,TERMS,TERMS,PS_POLYNOMIAL_CHEB);380 psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1,PS_POLYNOMIAL_ORD); 381 psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS-1, TERMS-1, TERMS-1,PS_POLYNOMIAL_CHEB); 382 382 383 383 // Set polynomial members -
trunk/psLib/test/math/tst_psFunc11.c
r4731 r5090 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 3$ $Name: not supported by cvs2svn $7 * @date $Date: 2005-0 8-08 21:44:09$6 * @version $Revision: 1.4 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2005-09-22 02:47:16 $ 8 8 * 9 9 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 381 381 382 382 // Allocate polynomial structure 383 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);384 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);383 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_ORD); 384 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_CHEB); 385 385 // Set polynomial members 386 386 for(psS32 i = 0; i < TERMS; i++) { … … 417 417 418 418 // Allocate polynomial with invalid type 419 polyOrd = psPolynomial4DAlloc(TERMS , TERMS, TERMS, TERMS, 99);419 polyOrd = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, 99); 420 420 // Attempt to evaluation invalid polynomial type 421 421 psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type"); … … 437 437 438 438 // Allocate polynomial structure 439 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);440 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);439 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_ORD); 440 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_CHEB); 441 441 // Set polynomial members 442 442 for(psS32 i = 0; i < TERMS; i++) { … … 473 473 474 474 // Allocate polynomial with invalid type 475 polyOrd = psPolynomial4DAlloc(TERMS , TERMS, TERMS, TERMS, 99);475 polyOrd = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, 99); 476 476 // Attempt to evaluation invalid polynomial type 477 477 psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type"); … … 489 489 { 490 490 // Allocate polynomial 491 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);492 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);491 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_ORD); 492 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_CHEB); 493 493 494 494 // Set polynomial members … … 646 646 { 647 647 // Allocate polynomial 648 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);649 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS ,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);648 psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_ORD); 649 psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS-1, TERMS-1, TERMS-1, TERMS-1, PS_POLYNOMIAL_CHEB); 650 650 651 651 // Set polynomial members -
trunk/psLib/test/math/tst_psMinimize04.c
r4995 r5090 45 45 double actualData; 46 46 47 psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_ORDER +1, POLY_ORDER+1, PS_POLYNOMIAL_ORD);47 psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_ORDER, POLY_ORDER, PS_POLYNOMIAL_ORD); 48 48 psVector *x = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 49 49 psVector *y = psVectorAlloc(NUM_DATA, PS_TYPE_F32); -
trunk/psLib/test/math/tst_psMinimize04_F32.c
r4995 r5090 45 45 float actualData; 46 46 47 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_ORD);47 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_ORD); 48 48 x = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 49 49 y = psVectorAlloc(NUM_DATA, PS_TYPE_F32); … … 114 114 float actualData; 115 115 116 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_ORD);116 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_ORD); 117 117 x = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 118 118 y = psVectorAlloc(NUM_DATA, PS_TYPE_F32); … … 179 179 float actualData; 180 180 181 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_ORD);181 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_ORD); 182 182 y = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 183 183 -
trunk/psLib/test/math/tst_psMinimize04b.c
r4995 r5090 38 38 psS32 memLeaks = 0; 39 39 40 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_CHEB);40 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_CHEB); 41 41 x = psVectorAlloc(NUM_DATA, PS_TYPE_F64); 42 42 y = psVectorAlloc(NUM_DATA, PS_TYPE_F64); … … 109 109 psS32 memLeaks = 0; 110 110 111 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_CHEB);111 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_CHEB); 112 112 x = psVectorAlloc(NUM_DATA, PS_TYPE_F64); 113 113 y = psVectorAlloc(NUM_DATA, PS_TYPE_F64); … … 172 172 psS32 memLeaks = 0; 173 173 174 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_CHEB);174 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_CHEB); 175 175 x = psVectorAlloc(NUM_DATA, PS_TYPE_F64); 176 176 y = psVectorAlloc(NUM_DATA, PS_TYPE_F64); -
trunk/psLib/test/math/tst_psMinimize04b_F32.c
r4995 r5090 38 38 psS32 memLeaks = 0; 39 39 40 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_CHEB);40 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_CHEB); 41 41 x = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 42 42 y = psVectorAlloc(NUM_DATA, PS_TYPE_F32); … … 109 109 psS32 memLeaks = 0; 110 110 111 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_CHEB);111 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_CHEB); 112 112 x = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 113 113 y = psVectorAlloc(NUM_DATA, PS_TYPE_F32); … … 172 172 psS32 memLeaks = 0; 173 173 174 myPoly = psPolynomial1DAlloc(POLY_ORDER +1, PS_POLYNOMIAL_CHEB);174 myPoly = psPolynomial1DAlloc(POLY_ORDER, PS_POLYNOMIAL_CHEB); 175 175 x = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 176 176 y = psVectorAlloc(NUM_DATA, PS_TYPE_F32); -
trunk/psLib/test/math/tst_psMinimizeVector2D_F32.c
r4995 r5090 45 45 double actualData; 46 46 47 psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_ORDER +1, POLY_ORDER+1, PS_POLYNOMIAL_ORD);47 psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_ORDER, POLY_ORDER, PS_POLYNOMIAL_ORD); 48 48 psVector *x = psVectorAlloc(NUM_DATA, PS_TYPE_F64); 49 49 psVector *y = psVectorAlloc(NUM_DATA, PS_TYPE_F64); -
trunk/psLib/test/math/tst_psMinimizeVector2D_F64.c
r4995 r5090 45 45 double actualData; 46 46 47 psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_ORDER +1, POLY_ORDER+1, PS_POLYNOMIAL_ORD);47 psPolynomial2D *myPoly = psPolynomial2DAlloc(POLY_ORDER, POLY_ORDER, PS_POLYNOMIAL_ORD); 48 48 psVector *x = psVectorAlloc(NUM_DATA, PS_TYPE_F32); 49 49 psVector *y = psVectorAlloc(NUM_DATA, PS_TYPE_F32);
Note:
See TracChangeset
for help on using the changeset viewer.
