IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 5096


Ignore:
Timestamp:
Sep 22, 2005, 12:49:29 PM (21 years ago)
Author:
gusciora
Message:

Implementing the psPoly nOrder/nTerm switch.

Location:
trunk/psLib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/imageops/psImageStats.c

    r5090 r5096  
    99 *  @author GLG, MHPCC
    1010 *
    11  *  @version $Revision: 1.79 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2005-09-22 02:47:16 $
     11 *  @version $Revision: 1.80 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2005-09-22 22:49:29 $
    1313 *
    1414 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    349349    // Free the Chebyshev polynomials that were
    350350    // created in this routine.
    351     for (i = 0; i < maxChebyPoly; i++) {
     351    for (i = 0; i < maxChebyPoly + 1; i++) {
    352352        psFree(chebPolys[i]);
    353353    }
     
    453453        maxChebyPoly = coeffs->COOL_2D_nY;
    454454    }
    455     chebPolys = 1 + p_psCreateChebyshevPolys(maxChebyPoly);
     455    chebPolys = p_psCreateChebyshevPolys(maxChebyPoly + 1);
    456456
    457457    // Compute the sums[][] data structure.
     
    498498    // Free the Chebyshev polynomials that were
    499499    // created in this routine.
    500     for (i = 0; i < maxChebyPoly; i++) {
     500    for (i = 0; i < maxChebyPoly + 1; i++) {
    501501        psFree(chebPolys[i]);
    502502    }
     
    545545    }
    546546
    547     chebPolys = 1 + p_psCreateChebyshevPolys(maxChebyPoly);
     547    chebPolys = p_psCreateChebyshevPolys(maxChebyPoly + 1);
    548548
    549549    for (x = 0; x < input->numRows; x++) {
     
    574574    // created in this routine.
    575575    // XXX: Use static data structures here.
    576     for (i = 0; i < maxChebyPoly; i++) {
     576    for (i = 0; i < maxChebyPoly + 1; i++) {
    577577        psFree(chebPolys[i]);
    578578    }
  • trunk/psLib/src/math/psPolynomial.c

    r5094 r5096  
    77*  polynomials.  It also contains a Gaussian functions.
    88*
    9 *  @version $Revision: 1.126 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2005-09-22 22:22:15 $
     9*  @version $Revision: 1.127 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2005-09-22 22:49:29 $
    1111*
    1212*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    167167static psPolynomial1D **createChebyshevPolys(psS32 maxChebyPoly)
    168168{
    169     //printf("createChebyshevPolys(%d)\n", maxChebyPoly);
    170169    PS_ASSERT_INT_NONNEGATIVE(maxChebyPoly, NULL);
    171170
     
    188187            for (psS32 j = 0; j < chebPolys[i - 1]->COOL_1D_n; j++) {
    189188                chebPolys[i]->coeff[j + 1] = 2 * chebPolys[i - 1]->coeff[j];
    190                 //printf("chebPolys[%d]->coeff[%d] is %.2f\n", i, j + 1, chebPolys[i]->coeff[j + 1]);
    191189            }
    192190            for (psS32 j = 0; j < chebPolys[i - 2]->COOL_1D_n; j++) {
    193191                chebPolys[i]->coeff[j] -= chebPolys[i - 2]->coeff[j];
    194                 //printf("chebPolys[%d]->coeff[%d] is %.2f\n", i, j, chebPolys[i]->coeff[j]);
    195192            }
    196193        }
     
    209206                                 const psPolynomial1D* poly)
    210207{
    211     //printf("ordPolynomial1DEval(%f): ", x);
    212     //for (psS32 i = 0 ; i < (1 + poly->COOL_1D_n) ; i++) printf("(%.2f) ", poly->coeff[i]);
    213     //printf("\n");
    214 
    215208    unsigned int loop_x = 0;
    216209    psF64 polySum = 0.0;
     
    545538                for (loop_t = 0; loop_t < (1 + poly->COOL_4D_nT); loop_t++) {
    546539                    if (poly->mask[loop_x][loop_y][loop_z][loop_t] == 0) {
    547                         //printf("HMMM (%d, %d, %d, %d)\n", loop_x, loop_y, loop_z, loop_t);
    548                         //printf("HMMM (%d, %d, %d, %d)\n", chebPolys[loop_x]->COOL_1D_n, chebPolys[loop_y]->COOL_1D_n, chebPolys[loop_z]->COOL_1D_n, chebPolys[loop_t]->COOL_1D_n);
    549                         //printf("chebPolynomial4DEval()\n");
    550540                        polySum += poly->coeff[loop_x][loop_y][loop_z][loop_t] *
    551541                                   psPolynomial1DEval(chebPolys[loop_x], x) *
  • trunk/psLib/test/imageops/tst_psImageStats.c

    r4547 r5096  
    2828
    2929testDescription tests[] = {
    30                               {testPsImageHistogram,0,"psImageHistogram",0,false},
    31                               {testPsImageStats,1,"psImageStats",0,false},
    32                               {testPsImageFitPolynomial,2,"psImageFitPolynomial",0,false},
    33                               {testPsImagePixelInterpolate,3,"psImagePixelInterpolate",0,false},
    34                               {testPsImageEvalPolynom,4,"psImageEvalPolynom()",0,false},
     30                              {testPsImageHistogram, 0, "psImageHistogram", 0, false},
     31                              {testPsImageStats, 1, "psImageStats", 0, false},
     32                              {testPsImageFitPolynomial, 2, "psImageFitPolynomial", 0, false},
     33                              {testPsImagePixelInterpolate, 3, "psImagePixelInterpolate", 0, false},
     34                              {testPsImageEvalPolynom, 4, "psImageEvalPolynom()", 0, false},
    3535                              {NULL}
    3636                          };
     
    3838psS32 main(psS32 argc, char* argv[])
    3939{
     40    psLogSetFormat("HLNM");
    4041    psLogSetLevel(PS_LOG_INFO);
    4142
     
    374375}
    375376
     377// HEY: XXX
    376378static psS32 testPsImageFitPolynomial()
    377379{
    378     const int IMAGE_SIZE = 64;
     380    const int IMAGE_SIZE = 16;
    379381    const int CHEBY_X_DIM = 8;
    380382    const int CHEBY_Y_DIM = 8;
     
    406408        }
    407409    }
    408     my2DPoly = psPolynomial2DAlloc( CHEBY_X_DIM, CHEBY_Y_DIM, PS_POLYNOMIAL_CHEB );
     410    my2DPoly = psPolynomial2DAlloc( CHEBY_X_DIM-1, CHEBY_Y_DIM-1, PS_POLYNOMIAL_CHEB );
    409411    /*************************************************************************/
    410412    /*  Calculate Chebyshev Polynomials, no mask                     */
    411413    /*************************************************************************/
    412414    my2DPoly = psImageFitPolynomial( my2DPoly, tmpImage );
     415    if (my2DPoly == NULL) {
     416        printf("TEST ERROR: psImageFitPolynomial() returned NULL.\n");
     417        testStatus = false;
     418    }
    413419    for ( i = 0;i < CHEBY_X_DIM;i++ ) {
    414420        for ( j = 0;j < CHEBY_Y_DIM;j++ ) {
     
    447453        }
    448454    }
    449 
    450455
    451456    psLogMsg(__func__,PS_LOG_INFO,"Following should be an error message for NULL coeffs argument.");
Note: See TracChangeset for help on using the changeset viewer.