IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4581


Ignore:
Timestamp:
Jul 19, 2005, 3:21:13 PM (21 years ago)
Author:
drobbin
Message:

changed psPolynomial fxns to use F64 and removed psDPoly fxns

Location:
trunk/psLib
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astro/psCoord.c

    r4540 r4581  
    1010*  @author GLG, MHPCC
    1111*
    12 *  @version $Revision: 1.79 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2005-07-12 19:12:00 $
     12*  @version $Revision: 1.80 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2005-07-20 01:21:13 $
    1414*
    1515*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    226226
    227227    psPlaneTransform *pt = psAlloc(sizeof(psPlaneTransform));
    228     pt->x = psDPolynomial2DAlloc(n1, n2, PS_POLYNOMIAL_ORD);
    229     pt->y = psDPolynomial2DAlloc(n1, n2, PS_POLYNOMIAL_ORD);
     228    pt->x = psPolynomial2DAlloc(n1, n2, PS_POLYNOMIAL_ORD);
     229    pt->y = psPolynomial2DAlloc(n1, n2, PS_POLYNOMIAL_ORD);
    230230
    231231    psMemSetDeallocator(pt, (psFreeFunc) planeTransformFree);
     
    246246    }
    247247
    248     out->x = psDPolynomial2DEval(
     248    out->x = psPolynomial2DEval(
    249249                 transform->x,
    250250                 coords->x,
     
    252252             );
    253253
    254     out->y = psDPolynomial2DEval(
     254    out->y = psPolynomial2DEval(
    255255                 transform->y,
    256256                 coords->x,
     
    275275
    276276    psPlaneDistort *pt = psAlloc(sizeof(psPlaneDistort));
    277     pt->x = psDPolynomial4DAlloc(n1, n2, n3, n4, PS_POLYNOMIAL_ORD);
    278     pt->y = psDPolynomial4DAlloc(n1, n2, n3, n4, PS_POLYNOMIAL_ORD);
     277    pt->x = psPolynomial4DAlloc(n1, n2, n3, n4, PS_POLYNOMIAL_ORD);
     278    pt->y = psPolynomial4DAlloc(n1, n2, n3, n4, PS_POLYNOMIAL_ORD);
    279279
    280280    psMemSetDeallocator(pt, (psFreeFunc) planeDistortFree);
     
    300300        out = (psPlane* ) psAlloc(sizeof(psPlane));
    301301    }
    302     out->x = psDPolynomial4DEval(
     302    out->x = psPolynomial4DEval(
    303303                 distort->x,
    304304                 coords->x,
     
    307307                 color
    308308             );
    309     out->y = psDPolynomial4DEval(
     309    out->y = psPolynomial4DEval(
    310310                 distort->y,
    311311                 coords->x,
     
    854854 *****************************************************************************/
    855855
    856 static psDPolynomial2D *multiplyDPoly2D(psDPolynomial2D *trans1,
    857                                         psDPolynomial2D *trans2)
     856static psPolynomial2D *multiplyDPoly2D(psPolynomial2D *trans1,
     857                                       psPolynomial2D *trans2)
    858858{
    859859    //TRACE: printf("multiplyDPoly2D(%d %d: %d %d)\n", trans1->nX, trans1->nY, trans2->nX, trans2->nY);
     
    861861    psS32 orderY = (trans1->nY + trans2->nY) - 1;
    862862
    863     psDPolynomial2D *out = psDPolynomial2DAlloc(orderX, orderY, PS_POLYNOMIAL_ORD);
     863    psPolynomial2D *out = psPolynomial2DAlloc(orderX, orderY, PS_POLYNOMIAL_ORD);
    864864    //TRACE: printf("Creating poly (%d, %d)\n", orderX, orderY);
    865865    for (psS32 i = 0 ; i < out->nX; i++) {
     
    966966    for (psS32 t2x = 0 ; t2x < trans2->x->nX ; t2x++) {
    967967        for (psS32 t2y = 0 ; t2y < trans2->x->nY ; t2y++) {
    968             psDPolynomial2D *currPoly = psDPolynomial2DAlloc(1, 1, PS_POLYNOMIAL_ORD);
     968            psPolynomial2D *currPoly = psPolynomial2DAlloc(1, 1, PS_POLYNOMIAL_ORD);
    969969
    970970            currPoly->coeff[0][0] = 1.0;
    971971            currPoly->mask[0][0] = 0;
    972             psDPolynomial2D *newPoly = NULL;
     972            psPolynomial2D *newPoly = NULL;
    973973
    974974            if (trans2->x->mask[t2x][t2y] == 0) {
     
    10011001    for (psS32 t2x = 0 ; t2x < trans2->y->nX ; t2x++) {
    10021002        for (psS32 t2y = 0 ; t2y < trans2->y->nY ; t2y++) {
    1003             psDPolynomial2D *currPoly = psDPolynomial2DAlloc(1, 1, PS_POLYNOMIAL_ORD);
     1003            psPolynomial2D *currPoly = psPolynomial2DAlloc(1, 1, PS_POLYNOMIAL_ORD);
    10041004            currPoly->coeff[0][0] = 1.0;
    10051005            currPoly->mask[0][0] = 0;
    1006             psDPolynomial2D *newPoly = NULL;
     1006            psPolynomial2D *newPoly = NULL;
    10071007
    10081008            if (trans2->y->mask[t2x][t2y] == 0) {
     
    10621062    // Create fake polynomial to use in evaluation
    10631063    //
    1064     psDPolynomial2D *fakePoly = psDPolynomial2DAlloc(order, order, PS_POLYNOMIAL_ORD);
     1064    psPolynomial2D *fakePoly = psPolynomial2DAlloc(order, order, PS_POLYNOMIAL_ORD);
    10651065    for (int i = 0; i < order; i++) {
    10661066        for (int j = 0; j < order; j++) {
     
    10981098                psF64 xOut = ((psPlane *) dest->data[g])->x;
    10991099                psF64 yOut = ((psPlane *) dest->data[g])->y;
    1100                 psF64 ijPoly = psDPolynomial2DEval(fakePoly, xIn, yIn);
     1100                psF64 ijPoly = psPolynomial2DEval(fakePoly, xIn, yIn);
    11011101                fakePoly->mask[i][j] = 1;
    11021102
     
    11041104                    for (psS32 n = 0; n < order - m; n++, mnIndex++) {
    11051105                        fakePoly->mask[m][n] = 0;
    1106                         psF64 mnPoly = psDPolynomial2DEval(fakePoly, xIn, yIn);
     1106                        psF64 mnPoly = psPolynomial2DEval(fakePoly, xIn, yIn);
    11071107                        fakePoly->mask[m][n] = 1;
    11081108
  • trunk/psLib/src/astro/psCoord.h

    r4401 r4581  
    1010*  @author GLG, MHPCC
    1111*
    12 *  @version $Revision: 1.37 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2005-06-27 20:38:11 $
     12*  @version $Revision: 1.38 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2005-07-20 01:21:13 $
    1414*
    1515*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    7171typedef struct
    7272{
    73     psDPolynomial2D* x;         ///< 2D polynomial transform of X coordinates
    74     psDPolynomial2D* y;         ///< 2D polynomial transform of Y coordinates
     73    psPolynomial2D* x;         ///< 2D polynomial transform of X coordinates
     74    psPolynomial2D* y;         ///< 2D polynomial transform of Y coordinates
    7575}
    7676psPlaneTransform;
     
    9090typedef struct
    9191{
    92     psDPolynomial4D* x;         ///< 4D polynomial transform of X coordinates
    93     psDPolynomial4D* y;         ///< 4D polynomial transform of Y coordinates
     92    psPolynomial4D* x;         ///< 4D polynomial transform of X coordinates
     93    psPolynomial4D* y;         ///< 4D polynomial transform of Y coordinates
    9494}
    9595psPlaneDistort;
  • trunk/psLib/src/math/psConstants.h

    r4419 r4581  
    66 *  @author GLG, MHPCC
    77 *
    8  *  @version $Revision: 1.74 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2005-06-28 23:28:31 $
     8 *  @version $Revision: 1.75 $ $Name: not supported by cvs2svn $
     9 *  @date $Date: 2005-07-20 01:21:13 $
    1010 *
    1111 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    201201}
    202202
     203#define PS_ASSERT_DOUBLE_WITHIN_RANGE(NAME, LOWER, UPPER, RVAL) \
     204if ((NAME) < (LOWER) || (NAME) > (UPPER)) { \
     205    psError(PS_ERR_BAD_PARAMETER_VALUE, true, \
     206            "Error: %s, %lf, is out of range.  Must be between %lf and %lf.", \
     207            #NAME, NAME, LOWER, UPPER); \
     208    return RVAL; \
     209}
     210
    203211// Return an error if the arg lies outside the supplied range
    204212#define PS_ASSERT_LONG_WITHIN_RANGE(NAME, LOWER, UPPER, RVAL) \
  • trunk/psLib/src/math/psFunctions.c

    r4580 r4581  
    77*  polynomials.  It also contains a Gaussian functions.
    88*
    9 *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
    10 *  @date $Date: 2005-07-19 02:55:54 $
     9*  @version $Revision: 1.6 $ $Name: not supported by cvs2svn $
     10*  @date $Date: 2005-07-20 01:21:13 $
    1111*
    1212*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    5050static void polynomial3DFree(psPolynomial3D* poly);
    5151static void polynomial4DFree(psPolynomial4D* poly);
    52 static void dPolynomial1DFree(psDPolynomial1D* poly);
    53 static void dPolynomial2DFree(psDPolynomial2D* poly);
    54 static void dPolynomial3DFree(psDPolynomial3D* poly);
    55 static void dPolynomial4DFree(psDPolynomial4D* poly);
    5652static void spline1DFree(psSpline1D *tmpSpline);
    5753static psS32 vectorBinDisectF32(psF32 *bins,psS32 numBins,psF32 x);
     
    166162}
    167163
    168 static void dPolynomial1DFree(psDPolynomial1D* poly)
    169 {
    170     psFree(poly->coeff);
    171     psFree(poly->coeffErr);
    172     psFree(poly->mask);
    173 }
    174 
    175 static void dPolynomial2DFree(psDPolynomial2D* poly)
    176 {
    177     for (unsigned int x = 0; x < poly->nX; x++) {
    178         psFree(poly->coeff[x]);
    179         psFree(poly->coeffErr[x]);
    180         psFree(poly->mask[x]);
    181     }
    182     psFree(poly->coeff);
    183     psFree(poly->coeffErr);
    184     psFree(poly->mask);
    185 }
    186 
    187 static void dPolynomial3DFree(psDPolynomial3D* poly)
    188 {
    189     unsigned int x = 0;
    190     unsigned int y = 0;
    191 
    192     for (x = 0; x < poly->nX; x++) {
    193         for (y = 0; y < poly->nY; y++) {
    194             psFree(poly->coeff[x][y]);
    195             psFree(poly->coeffErr[x][y]);
    196             psFree(poly->mask[x][y]);
    197         }
    198         psFree(poly->coeff[x]);
    199         psFree(poly->coeffErr[x]);
    200         psFree(poly->mask[x]);
    201     }
    202 
    203     psFree(poly->coeff);
    204     psFree(poly->coeffErr);
    205     psFree(poly->mask);
    206 }
    207 
    208 static void dPolynomial4DFree(psDPolynomial4D* poly)
    209 {
    210     unsigned int x = 0;
    211     unsigned int y = 0;
    212     unsigned int z = 0;
    213 
    214     for (x = 0; x < poly->nX; x++) {
    215         for (y = 0; y < poly->nY; y++) {
    216             for (z = 0; z < poly->nZ; z++) {
    217                 psFree(poly->coeff[x][y][z]);
    218                 psFree(poly->coeffErr[x][y][z]);
    219                 psFree(poly->mask[x][y][z]);
    220             }
    221             psFree(poly->coeff[x][y]);
    222             psFree(poly->coeffErr[x][y]);
    223             psFree(poly->mask[x][y]);
    224         }
    225         psFree(poly->coeff[x]);
    226         psFree(poly->coeffErr[x]);
    227         psFree(poly->mask[x]);
    228     }
    229 
    230     psFree(poly->coeff);
    231     psFree(poly->coeffErr);
    232     psFree(poly->mask);
    233 }
    234 
    235164/*****************************************************************************
    236165createChebyshevPolys(n): this routine takes as input the required order n,
     
    283212{
    284213    psS32 loop_x = 0;
    285     psF32 polySum = 0.0;
    286     psF32 xSum = 1.0;
     214    psF64 polySum = 0.0;
     215    psF64 xSum = 1.0;
    287216
    288217    psTrace(".psLib.dataManip.psFunctions.ordPolynomial1DEval", 4,
    289             "---- Calling ordPolynomial1DEval(%f)\n", x);
     218            "---- Calling ordPolynomial1DEval(%lf)\n", x);
    290219    psTrace(".psLib.dataManip.psFunctions.ordPolynomial1DEval", 4,
    291220            "Polynomial order is %d\n", poly->n);
    292221    for (loop_x = 0; loop_x < poly->n; loop_x++) {
    293222        psTrace(".psLib.dataManip.psFunctions.ordPolynomial1DEval", 4,
    294                 "Polynomial coeff[%d] is %f\n", loop_x, poly->coeff[loop_x]);
     223                "Polynomial coeff[%d] is %lf\n", loop_x, poly->coeff[loop_x]);
    295224    }
    296225
     
    298227        if (poly->mask[loop_x] == 0) {
    299228            psTrace(".psLib.dataManip.psFunctions.ordPolynomial1DEval", 10,
    300                     "polysum+= sum*coeff [%f+= (%f * %f)\n", polySum, xSum, poly->coeff[loop_x]);
     229                    "polysum+= sum*coeff [%lf+= (%lf * %lf)\n", polySum, xSum, poly->coeff[loop_x]);
    301230            polySum += xSum * poly->coeff[loop_x];
    302231        }
     
    312241static psF64 chebPolynomial1DEval(psF64 x, const psPolynomial1D* poly)
    313242{
    314     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
     243    PS_ASSERT_DOUBLE_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    315244    // XXX: Create a macro for this in psConstants.h
    316245    if (poly->n < 1) {
     
    321250    psS32 n = poly->n;
    322251    psS32 i;
    323     psF32 tmp = 0.0;
     252    psF64 tmp = 0.0;
    324253
    325254    // Special case where the Chebyshev poly is constant.
     
    343272
    344273    // General case where the Chebyshev poly has 2 or more terms.
    345     d = psVectorAlloc(n, PS_TYPE_F32);
     274    d = psVectorAlloc(n, PS_TYPE_F64);
    346275    if(poly->mask[n-1] == 0) {
    347         d->data.F32[n-1] = poly->coeff[n-1];
     276        d->data.F64[n-1] = poly->coeff[n-1];
    348277    } else {
    349         d->data.F32[n-1] = 0.0;
    350     }
    351 
    352     d->data.F32[n-2] = (2.0 * x * d->data.F32[n-1]);
     278        d->data.F64[n-1] = 0.0;
     279    }
     280
     281    d->data.F64[n-2] = (2.0 * x * d->data.F64[n-1]);
    353282    if(poly->mask[n-2] == 0) {
    354         d->data.F32[n-2] += poly->coeff[n-2];
     283        d->data.F64[n-2] += poly->coeff[n-2];
    355284    }
    356285
    357286    for (i=n-3;i>=1;i--) {
    358         d->data.F32[i] = (2.0 * x * d->data.F32[i+1]) -
    359                          (d->data.F32[i+2]);
     287        d->data.F64[i] = (2.0 * x * d->data.F64[i+1]) -
     288                         (d->data.F64[i+2]);
    360289        if(poly->mask[i] == 0) {
    361             d->data.F32[i] += poly->coeff[i];
    362         }
    363     }
    364 
    365     tmp = (x * d->data.F32[1]) -
    366           (d->data.F32[2]);
     290            d->data.F64[i] += poly->coeff[i];
     291        }
     292    }
     293
     294    tmp = (x * d->data.F64[1]) -
     295          (d->data.F64[2]);
    367296    if(poly->mask[0] == 0) {
    368297        tmp += (0.5 * poly->coeff[0]);
     
    400329    psS32 loop_x = 0;
    401330    psS32 loop_y = 0;
    402     psF32 polySum = 0.0;
    403     psF32 xSum = 1.0;
    404     psF32 ySum = 1.0;
     331    psF64 polySum = 0.0;
     332    psF64 xSum = 1.0;
     333    psF64 ySum = 1.0;
    405334
    406335    for (loop_x = 0; loop_x < poly->nX; loop_x++) {
     
    420349static psF64 chebPolynomial2DEval(psF64 x, psF64 y, const psPolynomial2D* poly)
    421350{
    422     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    423     PS_ASSERT_FLOAT_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
     351    PS_ASSERT_DOUBLE_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
     352    PS_ASSERT_DOUBLE_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
    424353    PS_ASSERT_POLY_NON_NULL(poly, NAN);
    425354
     
    427356    psS32 loop_y = 0;
    428357    psS32 i = 0;
    429     psF32 polySum = 0.0;
     358    psF64 polySum = 0.0;
    430359    psPolynomial1D* *chebPolys = NULL;
    431360    psS32 maxChebyPoly = 0;
     
    460389    psS32 loop_y = 0;
    461390    psS32 loop_z = 0;
    462     psF32 polySum = 0.0;
    463     psF32 xSum = 1.0;
    464     psF32 ySum = 1.0;
    465     psF32 zSum = 1.0;
     391    psF64 polySum = 0.0;
     392    psF64 xSum = 1.0;
     393    psF64 ySum = 1.0;
     394    psF64 zSum = 1.0;
    466395
    467396    for (loop_x = 0; loop_x < poly->nX; loop_x++) {
     
    485414static psF64 chebPolynomial3DEval(psF64 x, psF64 y, psF64 z, const psPolynomial3D* poly)
    486415{
    487     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    488     PS_ASSERT_FLOAT_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
    489     PS_ASSERT_FLOAT_WITHIN_RANGE(z, -1.0, 1.0, 0.0);
     416    PS_ASSERT_DOUBLE_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
     417    PS_ASSERT_DOUBLE_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
     418    PS_ASSERT_DOUBLE_WITHIN_RANGE(z, -1.0, 1.0, 0.0);
    490419    psS32 loop_x = 0;
    491420    psS32 loop_y = 0;
    492421    psS32 loop_z = 0;
    493422    psS32 i = 0;
    494     psF32 polySum = 0.0;
     423    psF64 polySum = 0.0;
    495424    psPolynomial1D* *chebPolys = NULL;
    496425    psS32 maxChebyPoly = 0;
     
    533462    psS32 loop_z = 0;
    534463    psS32 loop_t = 0;
    535     psF32 polySum = 0.0;
    536     psF32 xSum = 1.0;
    537     psF32 ySum = 1.0;
    538     psF32 zSum = 1.0;
    539     psF32 tSum = 1.0;
     464    psF64 polySum = 0.0;
     465    psF64 xSum = 1.0;
     466    psF64 ySum = 1.0;
     467    psF64 zSum = 1.0;
     468    psF64 tSum = 1.0;
    540469
    541470    for (loop_x = 0; loop_x < poly->nX; loop_x++) {
     
    563492static psF64 chebPolynomial4DEval(psF64 x, psF64 y, psF64 z, psF64 t, const psPolynomial4D* poly)
    564493{
    565     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    566     PS_ASSERT_FLOAT_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
    567     PS_ASSERT_FLOAT_WITHIN_RANGE(z, -1.0, 1.0, 0.0);
    568     PS_ASSERT_FLOAT_WITHIN_RANGE(t, -1.0, 1.0, 0.0);
     494    PS_ASSERT_DOUBLE_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
     495    PS_ASSERT_DOUBLE_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
     496    PS_ASSERT_DOUBLE_WITHIN_RANGE(z, -1.0, 1.0, 0.0);
     497    PS_ASSERT_DOUBLE_WITHIN_RANGE(t, -1.0, 1.0, 0.0);
    569498    psS32 loop_x = 0;
    570499    psS32 loop_y = 0;
     
    572501    psS32 loop_t = 0;
    573502    psS32 i = 0;
    574     psF32 polySum = 0.0;
     503    psF64 polySum = 0.0;
    575504    psPolynomial1D* *chebPolys = NULL;
    576505    psS32 maxChebyPoly = 0;
     
    612541    return(polySum);
    613542}
    614 
    615 /*****************************************************************************
    616     Polynomial coefficients will be accessed in [w][x][y][z] fashion.
    617  *****************************************************************************/
    618 static psF64 dOrdPolynomial1DEval(psF64 x, const psDPolynomial1D* poly)
    619 {
    620     psS32 loop_x = 0;
    621     psF64 polySum = 0.0;
    622     psF64 xSum = 1.0;
    623 
    624     for (loop_x = 0; loop_x < poly->n; loop_x++) {
    625         if (poly->mask[loop_x] == 0) {
    626             polySum += xSum * poly->coeff[loop_x];
    627         }
    628         xSum *= x;
    629     }
    630 
    631     return(polySum);
    632 }
    633 
    634 // XXX: You can do this without having to psAlloc() vector d.
    635 // XXX: How does the mask vector effect Crenshaw's formula?
    636 static psF64 dChebPolynomial1DEval(psF64 x, const psDPolynomial1D* poly)
    637 {
    638     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    639     psVector *d;
    640     psS32 n;
    641     psS32 i;
    642     psF64 tmp;
    643 
    644     n = poly->n;
    645     d = psVectorAlloc(n, PS_TYPE_F64);
    646     if(poly->mask[n-1] == 0) {
    647         d->data.F64[n-1] = poly->coeff[n-1];
    648     } else {
    649         d->data.F64[n-1] = 0.0;
    650     }
    651     d->data.F64[n-2] = (2.0 * x * d->data.F64[n-1]);
    652     if(poly->mask[n-2] == 0) {
    653         d->data.F64[n-2] += poly->coeff[n-2];
    654     }
    655     for (i=n-3;i>=1;i--) {
    656         d->data.F64[i] = (2.0 * x * d->data.F64[i+1]) -
    657                          (d->data.F64[i+2]);
    658         if(poly->mask[i] == 0) {
    659             d->data.F64[i] += poly->coeff[i];
    660         }
    661     }
    662 
    663     tmp = (x * d->data.F64[1]) -
    664           (d->data.F64[2]);
    665     if(poly->mask[0] == 0) {
    666         tmp += (0.5 * poly->coeff[0]);
    667     }
    668 
    669     psFree(d);
    670     return(tmp);
    671 }
    672 
    673 static psF64 dOrdPolynomial2DEval(psF64 x,
    674                                   psF64 y,
    675                                   const psDPolynomial2D* poly)
    676 {
    677     psS32 loop_x = 0;
    678     psS32 loop_y = 0;
    679     psF64 polySum = 0.0;
    680     psF64 xSum = 1.0;
    681     psF64 ySum = 1.0;
    682 
    683     for (loop_x = 0; loop_x < poly->nX; loop_x++) {
    684         ySum = xSum;
    685         for (loop_y = 0; loop_y < poly->nY; loop_y++) {
    686             if (poly->mask[loop_x][loop_y] == 0) {
    687                 polySum += ySum * poly->coeff[loop_x][loop_y];
    688             }
    689             ySum *= y;
    690         }
    691         xSum *= x;
    692     }
    693 
    694     return(polySum);
    695 }
    696 
    697 static psF64 dChebPolynomial2DEval(psF64 x, psF64 y, const psDPolynomial2D* poly)
    698 {
    699     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    700     PS_ASSERT_FLOAT_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
    701     psS32 loop_x = 0;
    702     psS32 loop_y = 0;
    703     psS32 i = 0;
    704     psF64 polySum = 0.0;
    705     psPolynomial1D* *chebPolys = NULL;
    706     psS32 maxChebyPoly = 0;
    707 
    708     // Determine how many Chebyshev polynomials
    709     // are needed, then create them.
    710     maxChebyPoly = poly->nX;
    711     if (poly->nY > maxChebyPoly) {
    712         maxChebyPoly = poly->nY;
    713     }
    714     chebPolys = createChebyshevPolys(maxChebyPoly);
    715 
    716     for (loop_x = 0; loop_x < poly->nX; loop_x++) {
    717         for (loop_y = 0; loop_y < poly->nY; loop_y++) {
    718             if (poly->mask[loop_x][loop_y] == 0) {
    719                 polySum += poly->coeff[loop_x][loop_y] *
    720                            psPolynomial1DEval(chebPolys[loop_x], x) *
    721                            psPolynomial1DEval(chebPolys[loop_y], y);
    722             }
    723         }
    724     }
    725 
    726     for (i=0;i<maxChebyPoly;i++) {
    727         psFree(chebPolys[i]);
    728     }
    729     psFree(chebPolys);
    730     return(polySum);
    731 }
    732 
    733 static psF64 dOrdPolynomial3DEval(psF64 x, psF64 y, psF64 z, const psDPolynomial3D* poly)
    734 {
    735     psS32 loop_x = 0;
    736     psS32 loop_y = 0;
    737     psS32 loop_z = 0;
    738     psF64 polySum = 0.0;
    739     psF64 xSum = 1.0;
    740     psF64 ySum = 1.0;
    741     psF64 zSum = 1.0;
    742 
    743     for (loop_x = 0; loop_x < poly->nX; loop_x++) {
    744         ySum = xSum;
    745         for (loop_y = 0; loop_y < poly->nY; loop_y++) {
    746             zSum = ySum;
    747             for (loop_z = 0; loop_z < poly->nZ; loop_z++) {
    748                 if (poly->mask[loop_x][loop_y][loop_z] == 0) {
    749                     polySum += zSum * poly->coeff[loop_x][loop_y][loop_z];
    750                 }
    751                 zSum *= z;
    752             }
    753             ySum *= y;
    754         }
    755         xSum *= x;
    756     }
    757 
    758     return(polySum);
    759 }
    760 
    761 static psF64 dChebPolynomial3DEval(psF64 x, psF64 y, psF64 z, const psDPolynomial3D* poly)
    762 {
    763     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    764     PS_ASSERT_FLOAT_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
    765     PS_ASSERT_FLOAT_WITHIN_RANGE(z, -1.0, 1.0, 0.0);
    766     psS32 loop_x = 0;
    767     psS32 loop_y = 0;
    768     psS32 loop_z = 0;
    769     psS32 i = 0;
    770     psF64 polySum = 0.0;
    771     psPolynomial1D* *chebPolys = NULL;
    772     psS32 maxChebyPoly = 0;
    773 
    774     // Determine how many Chebyshev polynomials
    775     // are needed, then create them.
    776     maxChebyPoly = poly->nX;
    777     if (poly->nY > maxChebyPoly) {
    778         maxChebyPoly = poly->nY;
    779     }
    780     if (poly->nZ > maxChebyPoly) {
    781         maxChebyPoly = poly->nZ;
    782     }
    783     chebPolys = createChebyshevPolys(maxChebyPoly);
    784 
    785     for (loop_x = 0; loop_x < poly->nX; loop_x++) {
    786         for (loop_y = 0; loop_y < poly->nY; loop_y++) {
    787             for (loop_z = 0; loop_z < poly->nZ; loop_z++) {
    788                 if (poly->mask[loop_x][loop_y][loop_z] == 0) {
    789                     polySum += poly->coeff[loop_x][loop_y][loop_z] *
    790                                psPolynomial1DEval(chebPolys[loop_x], x) *
    791                                psPolynomial1DEval(chebPolys[loop_y], y) *
    792                                psPolynomial1DEval(chebPolys[loop_z], z);
    793                 }
    794             }
    795         }
    796     }
    797 
    798     for (i=0;i<maxChebyPoly;i++) {
    799         psFree(chebPolys[i]);
    800     }
    801     psFree(chebPolys);
    802     return(polySum);
    803 }
    804 
    805 static psF64 dOrdPolynomial4DEval(psF64 x, psF64 y, psF64 z, psF64 t, const psDPolynomial4D* poly)
    806 {
    807     psS32 loop_x = 0;
    808     psS32 loop_y = 0;
    809     psS32 loop_z = 0;
    810     psS32 loop_t = 0;
    811     psF64 polySum = 0.0;
    812     psF64 xSum = 1.0;
    813     psF64 ySum = 1.0;
    814     psF64 zSum = 1.0;
    815     psF64 tSum = 1.0;
    816 
    817     for (loop_x = 0; loop_x < poly->nX; loop_x++) {
    818         ySum = xSum;
    819         for (loop_y = 0; loop_y < poly->nY; loop_y++) {
    820             zSum = ySum;
    821             for (loop_z = 0; loop_z < poly->nZ; loop_z++) {
    822                 tSum = zSum;
    823                 for (loop_t = 0; loop_t < poly->nT; loop_t++) {
    824                     if (poly->mask[loop_x][loop_y][loop_z][loop_t] == 0) {
    825                         polySum += tSum * poly->coeff[loop_x][loop_y][loop_z][loop_t];
    826                     }
    827                     tSum *= t;
    828                 }
    829                 zSum *= z;
    830             }
    831             ySum *= y;
    832         }
    833         xSum *= x;
    834     }
    835 
    836     return(polySum);
    837 }
    838 
    839 static psF64 dChebPolynomial4DEval(psF64 x, psF64 y, psF64 z, psF64 t, const psDPolynomial4D* poly)
    840 {
    841     PS_ASSERT_FLOAT_WITHIN_RANGE(x, -1.0, 1.0, 0.0);
    842     PS_ASSERT_FLOAT_WITHIN_RANGE(y, -1.0, 1.0, 0.0);
    843     PS_ASSERT_FLOAT_WITHIN_RANGE(z, -1.0, 1.0, 0.0);
    844     PS_ASSERT_FLOAT_WITHIN_RANGE(t, -1.0, 1.0, 0.0);
    845     psS32 loop_x = 0;
    846     psS32 loop_y = 0;
    847     psS32 loop_z = 0;
    848     psS32 loop_t = 0;
    849     psS32 i = 0;
    850     psF64 polySum = 0.0;
    851     psPolynomial1D* *chebPolys = NULL;
    852     psS32 maxChebyPoly = 0;
    853 
    854     // Determine how many Chebyshev polynomials
    855     // are needed, then create them.
    856     maxChebyPoly = poly->nX;
    857     if (poly->nY > maxChebyPoly) {
    858         maxChebyPoly = poly->nY;
    859     }
    860     if (poly->nZ > maxChebyPoly) {
    861         maxChebyPoly = poly->nZ;
    862     }
    863     if (poly->nT > maxChebyPoly) {
    864         maxChebyPoly = poly->nT;
    865     }
    866     chebPolys = createChebyshevPolys(maxChebyPoly);
    867 
    868     for (loop_x = 0; loop_x < poly->nX; loop_x++) {
    869         for (loop_y = 0; loop_y < poly->nY; loop_y++) {
    870             for (loop_z = 0; loop_z < poly->nZ; loop_z++) {
    871                 for (loop_t = 0; loop_t < poly->nT; loop_t++) {
    872                     if (poly->mask[loop_x][loop_y][loop_z][loop_t] == 0) {
    873                         polySum += poly->coeff[loop_x][loop_y][loop_z][loop_t] *
    874                                    psPolynomial1DEval(chebPolys[loop_x], x) *
    875                                    psPolynomial1DEval(chebPolys[loop_y], y) *
    876                                    psPolynomial1DEval(chebPolys[loop_z], z) *
    877                                    psPolynomial1DEval(chebPolys[loop_t], t);
    878                     }
    879                 }
    880             }
    881         }
    882     }
    883 
    884     for (i=0;i<maxChebyPoly;i++) {
    885         psFree(chebPolys[i]);
    886     }
    887     psFree(chebPolys);
    888     return(polySum);
    889 }
    890 
    891543
    892544/*****************************************************************************
     
    1082734    newPoly->type = type;
    1083735    newPoly->n = n;
    1084     newPoly->coeff = (psF32 *)psAlloc(n * sizeof(psF32));
    1085     newPoly->coeffErr = (psF32 *)psAlloc(n * sizeof(psF32));
     736    newPoly->coeff = psAlloc(n * sizeof(psF64));
     737    newPoly->coeffErr = psAlloc(n * sizeof(psF64));
    1086738    newPoly->mask = (char *)psAlloc(n * sizeof(char));
    1087739    for (i = 0; i < n; i++) {
     
    1111763    newPoly->nY = nY;
    1112764
    1113     newPoly->coeff = (psF32 **)psAlloc(nX * sizeof(psF32 *));
    1114     newPoly->coeffErr = (psF32 **)psAlloc(nX * sizeof(psF32 *));
     765    newPoly->coeff = psAlloc(nX * sizeof(psF64 *));
     766    newPoly->coeffErr = psAlloc(nX * sizeof(psF64 *));
    1115767    newPoly->mask = (char **)psAlloc(nX * sizeof(char *));
    1116768    for (x = 0; x < nX; x++) {
    1117         newPoly->coeff[x] = (psF32 *)psAlloc(nY * sizeof(psF32));
    1118         newPoly->coeffErr[x] = (psF32 *)psAlloc(nY * sizeof(psF32));
     769        newPoly->coeff[x] = psAlloc(nY * sizeof(psF64));
     770        newPoly->coeffErr[x] = psAlloc(nY * sizeof(psF64));
    1119771        newPoly->mask[x] = (char *)psAlloc(nY * sizeof(char));
    1120772    }
     
    1150802    newPoly->nZ = nZ;
    1151803
    1152     newPoly->coeff = (psF32 ***)psAlloc(nX * sizeof(psF32 **));
    1153     newPoly->coeffErr = (psF32 ***)psAlloc(nX * sizeof(psF32 **));
     804    newPoly->coeff = psAlloc(nX * sizeof(psF64 **));
     805    newPoly->coeffErr = psAlloc(nX * sizeof(psF64 **));
    1154806    newPoly->mask = (char ***)psAlloc(nX * sizeof(char **));
    1155807    for (x = 0; x < nX; x++) {
    1156         newPoly->coeff[x] = (psF32 **)psAlloc(nY * sizeof(psF32 *));
    1157         newPoly->coeffErr[x] = (psF32 **)psAlloc(nY * sizeof(psF32 *));
     808        newPoly->coeff[x] = psAlloc(nY * sizeof(psF64 *));
     809        newPoly->coeffErr[x] = psAlloc(nY * sizeof(psF64 *));
    1158810        newPoly->mask[x] = (char **)psAlloc(nY * sizeof(char *));
    1159811        for (y = 0; y < nY; y++) {
    1160             newPoly->coeff[x][y] = (psF32 *)psAlloc(nZ * sizeof(psF32));
    1161             newPoly->coeffErr[x][y] = (psF32 *)psAlloc(nZ * sizeof(psF32));
     812            newPoly->coeff[x][y] = psAlloc(nZ * sizeof(psF64));
     813            newPoly->coeffErr[x][y] = psAlloc(nZ * sizeof(psF64));
    1162814            newPoly->mask[x][y] = (char *)psAlloc(nZ * sizeof(char));
    1163815        }
     
    1199851    newPoly->nT = nT;
    1200852
    1201     newPoly->coeff = (psF32 ****)psAlloc(nX * sizeof(psF32 ***));
    1202     newPoly->coeffErr = (psF32 ****)psAlloc(nX * sizeof(psF32 ***));
     853    newPoly->coeff = psAlloc(nX * sizeof(psF64 ***));
     854    newPoly->coeffErr = psAlloc(nX * sizeof(psF64 ***));
    1203855    newPoly->mask = (char ****)psAlloc(nX * sizeof(char ***));
    1204856    for (x = 0; x < nX; x++) {
    1205         newPoly->coeff[x] = (psF32 ***)psAlloc(nY * sizeof(psF32 **));
    1206         newPoly->coeffErr[x] = (psF32 ***)psAlloc(nY * sizeof(psF32 **));
     857        newPoly->coeff[x] = psAlloc(nY * sizeof(psF64 **));
     858        newPoly->coeffErr[x] = psAlloc(nY * sizeof(psF64 **));
    1207859        newPoly->mask[x] = (char ***)psAlloc(nY * sizeof(char **));
    1208860        for (y = 0; y < nY; y++) {
    1209             newPoly->coeff[x][y] = (psF32 **)psAlloc(nZ * sizeof(psF32 *));
    1210             newPoly->coeffErr[x][y] = (psF32 **)psAlloc(nZ * sizeof(psF32 *));
     861            newPoly->coeff[x][y] = psAlloc(nZ * sizeof(psF64 *));
     862            newPoly->coeffErr[x][y] = psAlloc(nZ * sizeof(psF64 *));
    1211863            newPoly->mask[x][y] = (char **)psAlloc(nZ * sizeof(char *));
    1212864            for (z = 0; z < nZ; z++) {
    1213                 newPoly->coeff[x][y][z] = (psF32 *)psAlloc(nT * sizeof(psF32));
    1214                 newPoly->coeffErr[x][y][z] = (psF32 *)psAlloc(nT * sizeof(psF32));
     865                newPoly->coeff[x][y][z] = psAlloc(nT * sizeof(psF64));
     866                newPoly->coeffErr[x][y][z] = psAlloc(nT * sizeof(psF64));
    1215867                newPoly->mask[x][y][z] = (char *)psAlloc(nT * sizeof(char));
    1216868            }
     
    1253905    PS_ASSERT_POLY_NON_NULL(poly, NULL);
    1254906    PS_ASSERT_VECTOR_NON_NULL(x, NULL);
    1255     PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F32, NULL);
     907    PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F64, NULL);
    1256908
    1257909    psVector *tmp;
    1258910
    1259     tmp = psVectorAlloc(x->n, PS_TYPE_F32);
     911    tmp = psVectorAlloc(x->n, PS_TYPE_F64);
    1260912    for (psS32 i=0;i<x->n;i++) {
    1261         tmp->data.F32[i] = psPolynomial1DEval(poly, x->data.F32[i]);
     913        tmp->data.F64[i] = psPolynomial1DEval(poly, x->data.F64[i]);
    1262914    }
    1263915
     
    1288940    PS_ASSERT_POLY_NON_NULL(poly, NULL);
    1289941    PS_ASSERT_VECTOR_NON_NULL(x, NULL);
    1290     PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F32, NULL);
     942    PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F64, NULL);
    1291943    PS_ASSERT_VECTOR_NON_NULL(y, NULL);
    1292     PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F32, NULL);
     944    PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F64, NULL);
    1293945
    1294946    psVector *tmp;
     
    1301953
    1302954    // Create output vector to return
    1303     tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
     955    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    1304956
    1305957    // Evaluate the polynomial at the specified points
    1306958    for (psS32 i=0; i<vecLen; i++) {
    1307         tmp->data.F32[i] = psPolynomial2DEval(poly,x->data.F32[i],y->data.F32[i]);
     959        tmp->data.F64[i] = psPolynomial2DEval(poly,x->data.F64[i],y->data.F64[i]);
    1308960    }
    1309961
     
    1336988    PS_ASSERT_POLY_NON_NULL(poly, NULL);
    1337989    PS_ASSERT_VECTOR_NON_NULL(x, NULL);
    1338     PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F32, NULL);
     990    PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F64, NULL);
    1339991    PS_ASSERT_VECTOR_NON_NULL(y, NULL);
    1340     PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F32, NULL);
     992    PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F64, NULL);
    1341993    PS_ASSERT_VECTOR_NON_NULL(z, NULL);
    1342     PS_ASSERT_VECTOR_TYPE(z, PS_TYPE_F32, NULL);
     994    PS_ASSERT_VECTOR_TYPE(z, PS_TYPE_F64, NULL);
    1343995
    1344996    psVector *tmp;
     
    13541006
    13551007    // Allocate output vector
    1356     tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
     1008    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    13571009
    13581010    // Evaluate polynomial
    13591011    for (psS32 i = 0; i < vecLen; i++) {
    1360         tmp->data.F32[i] = psPolynomial3DEval(poly,
    1361                                               x->data.F32[i],
    1362                                               y->data.F32[i],
    1363                                               z->data.F32[i]);
     1012        tmp->data.F64[i] = psPolynomial3DEval(poly,
     1013                                              x->data.F64[i],
     1014                                              y->data.F64[i],
     1015                                              z->data.F64[i]);
    13641016    }
    13651017
     
    13891041                                   const psVector *z,
    13901042                                   const psVector *t)
    1391 {
    1392     PS_ASSERT_POLY_NON_NULL(poly, NULL);
    1393     PS_ASSERT_VECTOR_NON_NULL(x, NULL);
    1394     PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F32, NULL);
    1395     PS_ASSERT_VECTOR_NON_NULL(y, NULL);
    1396     PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F32, NULL);
    1397     PS_ASSERT_VECTOR_NON_NULL(z, NULL);
    1398     PS_ASSERT_VECTOR_TYPE(z, PS_TYPE_F32, NULL);
    1399     PS_ASSERT_VECTOR_NON_NULL(t, NULL);
    1400     PS_ASSERT_VECTOR_TYPE(t, PS_TYPE_F32, NULL);
    1401 
    1402     psVector *tmp;
    1403     psS32 vecLen=x->n;
    1404 
    1405     // Determine output vector size from min of input vectors
    1406     if (z->n < vecLen) {
    1407         vecLen = z->n;
    1408     }
    1409     if (y->n < vecLen) {
    1410         vecLen = y->n;
    1411     }
    1412     if (t->n < vecLen) {
    1413         vecLen = t->n;
    1414     }
    1415 
    1416     // Allocate output vector
    1417     tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    1418 
    1419     // Evaluate polynomial
    1420     for (psS32 i = 0; i < vecLen; i++) {
    1421         tmp->data.F32[i] = psPolynomial4DEval(poly,
    1422                                               x->data.F32[i],
    1423                                               y->data.F32[i],
    1424                                               z->data.F32[i],
    1425                                               t->data.F32[i]);
    1426     }
    1427 
    1428     // Return output vector
    1429     return(tmp);
    1430 }
    1431 
    1432 
    1433 psDPolynomial1D* psDPolynomial1DAlloc( int n,
    1434                                        psPolynomialType type)
    1435 {
    1436     PS_ASSERT_INT_POSITIVE(n, NULL);
    1437 
    1438     unsigned int i = 0;
    1439     psDPolynomial1D* newPoly = NULL;
    1440 
    1441     newPoly = (psDPolynomial1D* ) psAlloc(sizeof(psDPolynomial1D));
    1442     psMemSetDeallocator(newPoly, (psFreeFunc) dPolynomial1DFree);
    1443 
    1444     newPoly->type = type;
    1445     newPoly->n = n;
    1446     newPoly->coeff = (psF64 *)psAlloc(n * sizeof(psF64));
    1447     newPoly->coeffErr = (psF64 *)psAlloc(n * sizeof(psF64));
    1448     newPoly->mask = (char *)psAlloc(n * sizeof(char));
    1449     for (i = 0; i < n; i++) {
    1450         newPoly->coeff[i] = 0.0;
    1451         newPoly->coeffErr[i] = 0.0;
    1452         newPoly->mask[i] = 0;
    1453     }
    1454 
    1455     return(newPoly);
    1456 }
    1457 
    1458 psDPolynomial2D* psDPolynomial2DAlloc( int nX,  int nY,
    1459                                        psPolynomialType type)
    1460 {
    1461     PS_ASSERT_INT_POSITIVE(nX, NULL);
    1462     PS_ASSERT_INT_POSITIVE(nY, NULL);
    1463 
    1464     unsigned int x = 0;
    1465     unsigned int y = 0;
    1466     psDPolynomial2D* newPoly = NULL;
    1467 
    1468     newPoly = (psDPolynomial2D* ) psAlloc(sizeof(psDPolynomial2D));
    1469     psMemSetDeallocator(newPoly, (psFreeFunc) dPolynomial2DFree);
    1470 
    1471     newPoly->type = type;
    1472     newPoly->nX = nX;
    1473     newPoly->nY = nY;
    1474 
    1475     newPoly->coeff = (psF64 **)psAlloc(nX * sizeof(psF64 *));
    1476     newPoly->coeffErr = (psF64 **)psAlloc(nX * sizeof(psF64 *));
    1477     newPoly->mask = (char **)psAlloc(nX * sizeof(char *));
    1478     for (x = 0; x < nX; x++) {
    1479         newPoly->coeff[x] = (psF64 *)psAlloc(nY * sizeof(psF64));
    1480         newPoly->coeffErr[x] = (psF64 *)psAlloc(nY * sizeof(psF64));
    1481         newPoly->mask[x] = (char *)psAlloc(nY * sizeof(char));
    1482     }
    1483     for (x = 0; x < nX; x++) {
    1484         for (y = 0; y < nY; y++) {
    1485             newPoly->coeff[x][y] = 0.0;
    1486             newPoly->coeffErr[x][y] = 0.0;
    1487             newPoly->mask[x][y] = 0;
    1488         }
    1489     }
    1490 
    1491     return(newPoly);
    1492 }
    1493 
    1494 psDPolynomial3D* psDPolynomial3DAlloc( int nX,  int nY,  int nZ,
    1495                                        psPolynomialType type)
    1496 {
    1497     PS_ASSERT_INT_POSITIVE(nX, NULL);
    1498     PS_ASSERT_INT_POSITIVE(nY, NULL);
    1499     PS_ASSERT_INT_POSITIVE(nZ, NULL);
    1500 
    1501     unsigned int x = 0;
    1502     unsigned int y = 0;
    1503     unsigned int z = 0;
    1504     psDPolynomial3D* newPoly = NULL;
    1505 
    1506     newPoly = (psDPolynomial3D* ) psAlloc(sizeof(psDPolynomial3D));
    1507     psMemSetDeallocator(newPoly, (psFreeFunc) dPolynomial3DFree);
    1508 
    1509     newPoly->type = type;
    1510     newPoly->nX = nX;
    1511     newPoly->nY = nY;
    1512     newPoly->nZ = nZ;
    1513 
    1514     newPoly->coeff = (psF64 ***)psAlloc(nX * sizeof(psF64 **));
    1515     newPoly->coeffErr = (psF64 ***)psAlloc(nX * sizeof(psF64 **));
    1516     newPoly->mask = (char ***)psAlloc(nX * sizeof(char **));
    1517     for (x = 0; x < nX; x++) {
    1518         newPoly->coeff[x] = (psF64 **)psAlloc(nY * sizeof(psF64 *));
    1519         newPoly->coeffErr[x] = (psF64 **)psAlloc(nY * sizeof(psF64 *));
    1520         newPoly->mask[x] = (char **)psAlloc(nY * sizeof(char *));
    1521         for (y = 0; y < nY; y++) {
    1522             newPoly->coeff[x][y] = (psF64 *)psAlloc(nZ * sizeof(psF64));
    1523             newPoly->coeffErr[x][y] = (psF64 *)psAlloc(nZ * sizeof(psF64));
    1524             newPoly->mask[x][y] = (char *)psAlloc(nZ * sizeof(char));
    1525         }
    1526     }
    1527     for (x = 0; x < nX; x++) {
    1528         for (y = 0; y < nY; y++) {
    1529             for (z = 0; z < nZ; z++) {
    1530                 newPoly->coeff[x][y][z] = 0.0;
    1531                 newPoly->coeffErr[x][y][z] = 0.0;
    1532                 newPoly->mask[x][y][z] = 0;
    1533             }
    1534         }
    1535     }
    1536 
    1537     return(newPoly);
    1538 }
    1539 
    1540 psDPolynomial4D* psDPolynomial4DAlloc( int nX,  int nY,  int nZ,  int nT,
    1541                                        psPolynomialType type)
    1542 {
    1543     PS_ASSERT_INT_POSITIVE(nX, NULL);
    1544     PS_ASSERT_INT_POSITIVE(nY, NULL);
    1545     PS_ASSERT_INT_POSITIVE(nZ, NULL);
    1546     PS_ASSERT_INT_POSITIVE(nT, NULL);
    1547 
    1548     unsigned int x = 0;
    1549     unsigned int y = 0;
    1550     unsigned int z = 0;
    1551     unsigned int t = 0;
    1552     psDPolynomial4D* newPoly = NULL;
    1553 
    1554     newPoly = (psDPolynomial4D* ) psAlloc(sizeof(psDPolynomial4D));
    1555     psMemSetDeallocator(newPoly, (psFreeFunc) dPolynomial4DFree);
    1556 
    1557     newPoly->type = type;
    1558     newPoly->nX = nX;
    1559     newPoly->nY = nY;
    1560     newPoly->nZ = nZ;
    1561     newPoly->nT = nT;
    1562 
    1563     newPoly->coeff = (psF64 ****)psAlloc(nX * sizeof(psF64 ***));
    1564     newPoly->coeffErr = (psF64 ****)psAlloc(nX * sizeof(psF64 ***));
    1565     newPoly->mask = (char ****)psAlloc(nX * sizeof(char ***));
    1566     for (x = 0; x < nX; x++) {
    1567         newPoly->coeff[x] = (psF64 ***)psAlloc(nY * sizeof(psF64 **));
    1568         newPoly->coeffErr[x] = (psF64 ***)psAlloc(nY * sizeof(psF64 **));
    1569         newPoly->mask[x] = (char ***)psAlloc(nY * sizeof(char **));
    1570         for (y = 0; y < nY; y++) {
    1571             newPoly->coeff[x][y] = (psF64 **)psAlloc(nZ * sizeof(psF64 *));
    1572             newPoly->coeffErr[x][y] = (psF64 **)psAlloc(nZ * sizeof(psF64 *));
    1573             newPoly->mask[x][y] = (char **)psAlloc(nZ * sizeof(char *));
    1574             for (z = 0; z < nZ; z++) {
    1575                 newPoly->coeff[x][y][z] = (psF64 *)psAlloc(nT * sizeof(psF64));
    1576                 newPoly->coeffErr[x][y][z] = (psF64 *)psAlloc(nT * sizeof(psF64));
    1577                 newPoly->mask[x][y][z] = (char *)psAlloc(nT * sizeof(char));
    1578             }
    1579         }
    1580     }
    1581     for (x = 0; x < nX; x++) {
    1582         for (y = 0; y < nY; y++) {
    1583             for (z = 0; z < nZ; z++) {
    1584                 for (t = 0; t < nT; t++) {
    1585                     newPoly->coeff[x][y][z][t] = 0.0;
    1586                     newPoly->coeffErr[x][y][z][t] = 0.0;
    1587                     newPoly->mask[x][y][z][t] = 0;
    1588                 }
    1589             }
    1590         }
    1591     }
    1592 
    1593     return(newPoly);
    1594 }
    1595 
    1596 
    1597 psF64 psDPolynomial1DEval(const psDPolynomial1D* poly, psF64 x)
    1598 {
    1599     PS_ASSERT_POLY_NON_NULL(poly, NAN);
    1600 
    1601     if (poly->type == PS_POLYNOMIAL_ORD) {
    1602         return(dOrdPolynomial1DEval(x, poly));
    1603     } else if (poly->type == PS_POLYNOMIAL_CHEB) {
    1604         return(dChebPolynomial1DEval(x, poly));
    1605     } else {
    1606         psError(PS_ERR_BAD_PARAMETER_TYPE, true,
    1607                 PS_ERRORTEXT_psFunctions_INVALID_POLYNOMIAL_TYPE,
    1608                 poly->type);
    1609     }
    1610     return(NAN);
    1611 }
    1612 
    1613 psVector *psDPolynomial1DEvalVector(const psDPolynomial1D *poly,
    1614                                     const psVector *x)
    1615 
    1616 {
    1617     PS_ASSERT_POLY_NON_NULL(poly, NULL);
    1618     PS_ASSERT_VECTOR_NON_NULL(x, NULL);
    1619     PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F64, NULL);
    1620 
    1621     psVector *tmp;
    1622 
    1623     tmp = psVectorAlloc(x->n, PS_TYPE_F64);
    1624     for (psS32 i=0;i<x->n;i++) {
    1625         tmp->data.F64[i] = psDPolynomial1DEval(poly,
    1626                                                x->data.F64[i]);
    1627     }
    1628 
    1629     return(tmp);
    1630 }
    1631 
    1632 
    1633 psF64 psDPolynomial2DEval(const psDPolynomial2D* poly,
    1634                           psF64 x,
    1635                           psF64 y)
    1636 {
    1637     PS_ASSERT_POLY_NON_NULL(poly, NAN);
    1638     if (poly->type == PS_POLYNOMIAL_ORD) {
    1639         return(dOrdPolynomial2DEval(x, y, poly));
    1640     } else if (poly->type == PS_POLYNOMIAL_CHEB) {
    1641         return(dChebPolynomial2DEval(x, y, poly));
    1642     } else {
    1643         psError(PS_ERR_BAD_PARAMETER_TYPE, true,
    1644                 PS_ERRORTEXT_psFunctions_INVALID_POLYNOMIAL_TYPE,
    1645                 poly->type);
    1646     }
    1647     return(NAN);
    1648 }
    1649 
    1650 psVector *psDPolynomial2DEvalVector(const psDPolynomial2D *poly,
    1651                                     const psVector *x,
    1652                                     const psVector *y)
    1653 {
    1654     PS_ASSERT_POLY_NON_NULL(poly, NULL);
    1655     PS_ASSERT_VECTOR_NON_NULL(x, NULL);
    1656     PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F64, NULL);
    1657     PS_ASSERT_VECTOR_NON_NULL(y, NULL);
    1658     PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F64, NULL);
    1659 
    1660     psVector *tmp;
    1661     psS32 vecLen=x->n;
    1662 
    1663     // Determine the output vector length from minimum length of input vectors
    1664     if (y->n < vecLen) {
    1665         vecLen = y->n;
    1666     }
    1667 
    1668     // Allocate output vector
    1669     tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    1670 
    1671     // Evaluate the polynomial
    1672     for (psS32 i = 0; i < vecLen; i++) {
    1673         tmp->data.F64[i] = psDPolynomial2DEval(poly,x->data.F64[i],y->data.F64[i]);
    1674     }
    1675 
    1676     // Return output vector
    1677     return(tmp);
    1678 }
    1679 
    1680 
    1681 psF64 psDPolynomial3DEval(const psDPolynomial3D* poly,
    1682                           psF64 x,
    1683                           psF64 y,
    1684                           psF64 z)
    1685 {
    1686     PS_ASSERT_POLY_NON_NULL(poly, NAN);
    1687 
    1688     if (poly->type == PS_POLYNOMIAL_ORD) {
    1689         return(dOrdPolynomial3DEval(x, y, z, poly));
    1690     } else if (poly->type == PS_POLYNOMIAL_CHEB) {
    1691         return(dChebPolynomial3DEval(x, y, z, poly));
    1692     } else {
    1693         psError(PS_ERR_BAD_PARAMETER_TYPE, true,
    1694                 PS_ERRORTEXT_psFunctions_INVALID_POLYNOMIAL_TYPE,
    1695                 poly->type);
    1696     }
    1697     return(NAN);
    1698 }
    1699 
    1700 psVector *psDPolynomial3DEvalVector(const psDPolynomial3D *poly,
    1701                                     const psVector *x,
    1702                                     const psVector *y,
    1703                                     const psVector *z)
    1704 
    1705 {
    1706     PS_ASSERT_POLY_NON_NULL(poly, NULL);
    1707     PS_ASSERT_VECTOR_NON_NULL(x, NULL);
    1708     PS_ASSERT_VECTOR_TYPE(x, PS_TYPE_F64, NULL);
    1709     PS_ASSERT_VECTOR_NON_NULL(y, NULL);
    1710     PS_ASSERT_VECTOR_TYPE(y, PS_TYPE_F64, NULL);
    1711     PS_ASSERT_VECTOR_NON_NULL(z, NULL);
    1712     PS_ASSERT_VECTOR_TYPE(z, PS_TYPE_F64, NULL);
    1713 
    1714     psVector *tmp;
    1715     psS32 vecLen=x->n;
    1716 
    1717     // Determine the size of output vector from min of input vectors
    1718     if (y->n < vecLen) {
    1719         vecLen = y->n;
    1720     }
    1721     if (z->n < vecLen) {
    1722         vecLen = z->n;
    1723     }
    1724 
    1725     // Allocate output vector
    1726     tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    1727 
    1728     // Evaluate polynomial
    1729     for (psS32 i = 0; i < vecLen; i++) {
    1730         tmp->data.F64[i] = psDPolynomial3DEval(poly,
    1731                                                x->data.F64[i],
    1732                                                y->data.F64[i],
    1733                                                z->data.F64[i]);
    1734     }
    1735 
    1736     // Return output vector
    1737     return(tmp);
    1738 }
    1739 
    1740 psF64 psDPolynomial4DEval(const psDPolynomial4D* poly,
    1741                           psF64 x,
    1742                           psF64 y,
    1743                           psF64 z,
    1744                           psF64 t)
    1745 {
    1746     PS_ASSERT_POLY_NON_NULL(poly, NAN);
    1747 
    1748     if (poly->type == PS_POLYNOMIAL_ORD) {
    1749         return(dOrdPolynomial4DEval(x,y,z,t, poly));
    1750     } else if (poly->type == PS_POLYNOMIAL_CHEB) {
    1751         return(dChebPolynomial4DEval(x,y,z,t, poly));
    1752     } else {
    1753         psError(PS_ERR_BAD_PARAMETER_TYPE, true,
    1754                 PS_ERRORTEXT_psFunctions_INVALID_POLYNOMIAL_TYPE,
    1755                 poly->type);
    1756     }
    1757     return(NAN);
    1758 }
    1759 
    1760 psVector *psDPolynomial4DEvalVector(const psDPolynomial4D *poly,
    1761                                     const psVector *x,
    1762                                     const psVector *y,
    1763                                     const psVector *z,
    1764                                     const psVector *t)
    17651043{
    17661044    PS_ASSERT_POLY_NON_NULL(poly, NULL);
     
    17771055    psS32 vecLen=x->n;
    17781056
    1779     // Determine the output vector size from min of input vectors
     1057    // Determine output vector size from min of input vectors
    17801058    if (z->n < vecLen) {
    17811059        vecLen = z->n;
     
    17911069    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    17921070
    1793     // Evaluate the polynomial
     1071    // Evaluate polynomial
    17941072    for (psS32 i = 0; i < vecLen; i++) {
    1795         tmp->data.F64[i] = psDPolynomial4DEval(poly,
    1796                                                x->data.F64[i],
    1797                                                y->data.F64[i],
    1798                                                z->data.F64[i],
    1799                                                t->data.F64[i]);
     1073        tmp->data.F64[i] = psPolynomial4DEval(poly,
     1074                                              x->data.F64[i],
     1075                                              y->data.F64[i],
     1076                                              z->data.F64[i],
     1077                                              t->data.F64[i]);
    18001078    }
    18011079
     
    18031081    return(tmp);
    18041082}
    1805 
    1806 
    1807 
    18081083
    18091084//typedef struct {
  • trunk/psLib/src/math/psFunctions.h

    r4568 r4581  
    1212 *  @author GLG, MHPCC
    1313 *
    14  *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2005-07-16 00:06:32 $
     14 *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2005-07-20 01:21:13 $
    1616 *
    1717 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    7474{
    7575    psPolynomialType type;             ///< Polynomial type
    76     psElemType ctype;                  ///< Polynomial precision
    7776    int n;                             ///< Number of terms
    78     psF32 *coeff;                      ///< Coefficients
    79     psF32 *coeffErr;                   ///< Error in coefficients
     77    psF64 *coeff;                      ///< Coefficients
     78    psF64 *coeffErr;                   ///< Error in coefficients
    8079    char *mask;                        ///< Coefficient mask
    8180}
     
    8685{
    8786    psPolynomialType type;             ///< Polynomial type
    88     psElemType ctype;                  ///< Polynomial precision
    8987    int nX;                            ///< Number of terms in x
    9088    int nY;                            ///< Number of terms in y
    91     psF32 **coeff;                     ///< Coefficients
    92     psF32 **coeffErr;                  ///< Error in coefficients
     89    psF64 **coeff;                     ///< Coefficients
     90    psF64 **coeffErr;                  ///< Error in coefficients
    9391    char **mask;                       ///< Coefficients mask
    9492}
     
    9997{
    10098    psPolynomialType type;             ///< Polynomial type
    101     psElemType ctype;                  ///< Polynomial precision
    10299    int nX;                           ///< Number of terms in x
    103100    int nY;                            ///< Number of terms in y
    104101    int nZ;                           ///< Number of terms in z
    105     psF32 ***coeff;                    ///< Coefficients
    106     psF32 ***coeffErr;                 ///< Error in coefficients
     102    psF64 ***coeff;                    ///< Coefficients
     103    psF64 ***coeffErr;                 ///< Error in coefficients
    107104    char ***mask;                      ///< Coefficients mask
    108105}
     
    113110{
    114111    psPolynomialType type;             ///< Polynomial type
    115     psElemType ctype;                  ///< Polynomial precision
    116112    int nX;                            ///< Number of terms in x
    117113    int nY;                            ///< Number of terms in y
    118114    int nZ;                            ///< Number of terms in z
    119115    int nT;                            ///< Number of terms in t
    120     psF32 ****coeff;                   ///< Coefficients
    121     psF32 ****coeffErr;                ///< Error in coefficients
     116    psF64 ****coeff;                   ///< Coefficients
     117    psF64 ****coeffErr;                ///< Error in coefficients
    122118    char ****mask;                     ///< Coefficients mask
    123119}
     
    251247);
    252248
    253 /*****************************************************************************/
    254 
    255 /* Double-precision polynomials, mainly for use in astrometry */
    256 
    257 /** Double-precision one-dimensional polynomial */
    258 typedef struct
    259 {
    260     psPolynomialType type;             ///< Polynomial type
    261     int n;                             ///< Number of terms
    262     psF64 *coeff;                      ///< Coefficients
    263     psF64 *coeffErr;                   ///< Error in coefficients
    264     char *mask;                        ///< Coefficient mask
    265 }
    266 psDPolynomial1D;
    267 
    268 /** Double-precision two-dimensional polynomial */
    269 typedef struct
    270 {
    271     psPolynomialType type;             ///< Polynomial type
    272     int nX;                            ///< Number of terms in x
    273     int nY;                            ///< Number of terms in y
    274     psF64 **coeff;                     ///< Coefficients
    275     psF64 **coeffErr;                  ///< Error in coefficients
    276     char **mask;                       ///< Coefficients mask
    277 }
    278 psDPolynomial2D;
    279 
    280 /** Double-precision three-dimensional polynomial */
    281 typedef struct
    282 {
    283     psPolynomialType type;             ///< Polynomial type
    284     int nX;                            ///< Number of terms in x
    285     int nY;                            ///< Number of terms in y
    286     int nZ;                            ///< Number of terms in z
    287     psF64 ***coeff;                    ///< Coefficients
    288     psF64 ***coeffErr;                 ///< Error in coefficients
    289     char ***mask;                      ///< Coefficient mask
    290 }
    291 psDPolynomial3D;
    292 
    293 /** Double-precision four-dimensional polynomial */
    294 typedef struct
    295 {
    296     psPolynomialType type;             ///< Polynomial type
    297     int nX;                            ///< Number of terms in w
    298     int nY;                            ///< Number of terms in x
    299     int nZ;                            ///< Number of terms in y
    300     int nT;                            ///< Number of terms in z
    301     psF64 ****coeff;                   ///< Coefficients
    302     psF64 ****coeffErr;                ///< Error in coefficients
    303     char ****mask;                     ///< Coefficients mask
    304 }
    305 psDPolynomial4D;
    306 
    307 /** Allocates a double-precision 1-D polynomial structure with n terms
    308  *
    309  *  @return  psPolynomial1D*    new double-precision 1-D polynomial struct
    310  */
    311 psDPolynomial1D* psDPolynomial1DAlloc(
    312     int n,                             ///< Number of terms
    313     psPolynomialType type              ///< Polynomial Type
    314 );
    315 
    316 /** Allocates a double-precision 2-D polynomial structure
    317  *
    318  *  @return  psPolynomial2D*    new double-precision 2-D polynomial struct
    319  */
    320 psDPolynomial2D* psDPolynomial2DAlloc(
    321     int nX,                            ///< Number of terms in x
    322     int nY,                            ///< Number of terms in y
    323     psPolynomialType type              ///< Polynomial Type
    324 );
    325 
    326 /** Allocates a double-precision 3-D polynomial structure
    327  *
    328  *  @return  psPolynomial3D*    new double-precision 3-D polynomial struct
    329  */
    330 psDPolynomial3D* psDPolynomial3DAlloc(
    331     int nX,                            ///< Number of terms in x
    332     int nY,                            ///< Number of terms in y
    333     int nZ,                            ///< Number of terms in z
    334     psPolynomialType type              ///< Polynomial Type
    335 );
    336 
    337 /** Allocates a double-precision 4-D polynomial structure
    338  *
    339  *  @return  psPolynomial4D*    new double-precision 4-D polynomial struct
    340  */
    341 psDPolynomial4D* psDPolynomial4DAlloc(
    342     int nX,                            ///< Number of terms in w
    343     int nY,                            ///< Number of terms in x
    344     int nZ,                            ///< Number of terms in y
    345     int nT,                            ///< Number of terms in z
    346     psPolynomialType type              ///< Polynomial Type
    347 );
    348 
    349 /** Evaluates a double-precision 1-D polynomial at specific coordinates.
    350  *
    351  *  @return psF32    result of polynomial at given location
    352  */
    353 psF64 psDPolynomial1DEval(
    354     const psDPolynomial1D* poly,     ///< Coefficients for the polynomial
    355     psF64 x                            ///< Value at which to evaluate
    356 );
    357 
    358 /** Evaluates a double-precision 2-D polynomial at specific coordinates.
    359  *
    360  *  @return psF32    result of polynomial at given location
    361  */
    362 psF64 psDPolynomial2DEval(
    363     const psDPolynomial2D* poly,      ///< Coefficients for the polynomial
    364     psF64 x,                            ///< Value x at which to evaluate
    365     psF64 y                             ///< Value y at which to evaluate
    366 );
    367 
    368 /** Evaluates a double-precision 3-D polynomial at specific coordinates.
    369  *
    370  *  @return psF64    result of polynomial at given location
    371  */
    372 psF64 psDPolynomial3DEval(
    373     const psDPolynomial3D* poly,     ///< Coefficients for the polynomial
    374     psF64 x,                           ///< Value x at which to evaluate
    375     psF64 y,                           ///< Value y at which to evaluate
    376     psF64 z                            ///< Value z at which to evaluate
    377 );
    378 
    379 /** Evaluates a double-precision 4-D polynomial at specific coordinates.
    380  *
    381  *  @return psF64    result of polynomial at given location
    382  */
    383 psF64 psDPolynomial4DEval(
    384     const psDPolynomial4D* poly,     ///< Coefficients for the polynomial
    385     psF64 x,                           ///< Value w at which to evaluate
    386     psF64 y,                           ///< Value x at which to evaluate
    387     psF64 z,                           ///< Value y at which to evaluate
    388     psF64 t                            ///< Value z at which to evaluate
    389 );
    390 
    391 /** Evaluates a double-precision 1-D polynomial at specific sets of coordinates.
    392  *
    393  *  @return psVector*    results of polynomial at given locations
    394  */
    395 psVector *psDPolynomial1DEvalVector(
    396     const psDPolynomial1D *poly,     ///< Coefficients for the polynomial
    397     const psVector *x                  ///< x locations at which to evaluate
    398 );
    399 
    400 /** Evaluates a double-precision 2-D polynomial at specific sets of coordinates.
    401  *
    402  *  @return psVector*    results of polynomial at given locations
    403  */
    404 psVector *psDPolynomial2DEvalVector(
    405     const psDPolynomial2D *poly,     ///< Coefficients for the polynomial
    406     const psVector *x,                 ///< x locations at which to evaluate
    407     const psVector *y                  ///< y locations at which to evaluate
    408 );
    409 
    410 /** Evaluates a double-precision 3-D polynomial at specific sets of coordinates.
    411  *
    412  *  @return psVector*    results of polynomial at given locations
    413  */
    414 psVector *psDPolynomial3DEvalVector(
    415     const psDPolynomial3D *poly,     ///< Coefficients for the polynomial
    416     const psVector *x,                 ///< x locations at which to evaluate
    417     const psVector *y,                 ///< y locations at which to evaluate
    418     const psVector *z                  ///< z locations at which to evaluate
    419 );
    420 
    421 /** Evaluates a double-precision 4-D polynomial at specific sets of coordinates.
    422  *
    423  *  @return psVector*    results of polynomial at given locations
    424  */
    425 psVector *psDPolynomial4DEvalVector(
    426     const psDPolynomial4D *poly,     ///< Coefficients for the polynomial
    427     const psVector *x,                 ///< w locations at which to evaluate
    428     const psVector *y,                 ///< x locations at which to evaluate
    429     const psVector *z,                 ///< y locations at which to evaluate
    430     const psVector *t                  ///< z locations at which to evaluate
    431 );
    432249
    433250/** One-Dimensional Spline */
  • trunk/psLib/test/astro/tst_psCoord.c

    r4547 r4581  
    66*  @author GLG, MHPCC
    77*
    8 *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
    9 *  @date $Date: 2005-07-13 02:46:58 $
     8*  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
     9*  @date $Date: 2005-07-20 01:21:13 $
    1010*
    1111*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    265265{
    266266    psPlane*          out = NULL;
    267     psDPolynomial2D*  tmp2DPoly = NULL;
     267    psPolynomial2D*  tmp2DPoly = NULL;
    268268    psPlane*          rc;
    269269
     
    359359    psPlane*         out       = NULL;
    360360    psPlane*         rc        = NULL;
    361     psDPolynomial4D* tmp4DPoly = NULL;
     361    psPolynomial4D* tmp4DPoly = NULL;
    362362
    363363    // Allocate input coordinate
  • trunk/psLib/test/astronomy/tst_psAstrometry01.c

    r4392 r4581  
    55*  @author GLG, MHPCC
    66*
    7 *  @version $Revision: 1.32 $ $Name: not supported by cvs2svn $
    8 *  @date $Date: 2005-06-25 02:02:05 $
     7*  @version $Revision: 1.33 $ $Name: not supported by cvs2svn $
     8*  @date $Date: 2005-07-20 01:21:13 $
    99*
    1010* XXX: Must test
     
    113113    NAME = (psPlaneTransform *) psAlloc(sizeof(psPlaneTransform)); \
    114114    psMemSetDeallocator(NAME, (psFreeFunc) psPlaneTransformFree); \
    115     NAME->x = psDPolynomial2DAlloc(2, 2, PS_POLYNOMIAL_ORD); \
    116     NAME->y = psDPolynomial2DAlloc(2, 2, PS_POLYNOMIAL_ORD); \
     115    NAME->x = psPolynomial2DAlloc(2, 2, PS_POLYNOMIAL_ORD); \
     116    NAME->y = psPolynomial2DAlloc(2, 2, PS_POLYNOMIAL_ORD); \
    117117    NAME->x->coeff[1][0] = 1.0; \
    118118    NAME->y->coeff[0][1] = 1.0; \
     
    123123    NAME = (psPlaneDistort *) psAlloc(sizeof(psPlaneDistort)); \
    124124    psMemSetDeallocator(NAME, (psFreeFunc) psPlaneDistortFree); \
    125     NAME->x = psDPolynomial4DAlloc(2, 2, 2, 2, PS_POLYNOMIAL_ORD); \
    126     NAME->y = psDPolynomial4DAlloc(2, 2, 2, 2, PS_POLYNOMIAL_ORD); \
     125    NAME->x = psPolynomial4DAlloc(2, 2, 2, 2, PS_POLYNOMIAL_ORD); \
     126    NAME->y = psPolynomial4DAlloc(2, 2, 2, 2, PS_POLYNOMIAL_ORD); \
    127127    NAME->x->coeff[1][0][0][0] = 1.0; \
    128128    NAME->y->coeff[0][1][0][0] = 1.0; \
  • trunk/psLib/test/db/verified/tst_psDB.stderr

    r4547 r4581  
    168168    Following should generate an error message for invalid table
    169169<DATE><TIME>|<HOST>|E|p_psDBRunQuery (FILE:LINENO)
    170     Failed to execute SQL query.  Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'null)' at line 1
     170    Failed to execute SQL query.  Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'null) WHERE key_s32=1974' at line 1
    171171<DATE><TIME>|<HOST>|E|psDBSelectRows (FILE:LINENO)
    172172    Query execution failed.
  • trunk/psLib/test/imageops/verified/tst_psImageStats.stderr

    r4547 r4581  
    610610pixel [0][3] is 320.00 should be 64.00
    611611pixel [0][4] is 545.00 should be 109.00
    612 The chi-squared per pixel is 54524.81
     612The chi-squared per pixel is 54524.80
    613613psImageFitPolynomial(), psImageEvalPolynom(): (5 by 5)
    614614The chi-squared per pixel is 0.00
  • trunk/psLib/test/math/tst_psFunc00.c

    r4547 r4581  
    44*    allocated and deallocated by the psPolynomialXXXlloc() procedures.
    55*    It also calls the various psPolynomialXXXEval() procedures.
    6 * 
     6*
    77*    The F32 and F64 polynomials are tested for all orders (1 - 4) and for
    88*    both ordinary and chebyshev polynomials.
    9 * 
     9*
    1010*    NOTE: This test code requries the stdout file to verify that the results
    1111*    are good.
    12 * 
     12*
    1313*    XXX: Modify these tests so that polynomials with a variety of different
    1414*    orders are created.
    15 * 
    16 *    @version $Revision: 1.1 $  $Name: not supported by cvs2svn $
    17 *    @date $Date: 2005-07-13 02:47:00 $
     15*
     16*    @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
     17*    @date $Date: 2005-07-20 01:21:13 $
    1818*
    1919*  Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
    20 *   
     20*
    2121*****************************************************************************/
    2222#include <stdio.h>
     
    3131static psS32 testPolynomial3DAlloc(void);
    3232static psS32 testPolynomial4DAlloc(void);
    33 static psS32 testDPolynomial1DAlloc(void);
    34 static psS32 testDPolynomial2DAlloc(void);
    35 static psS32 testDPolynomial3DAlloc(void);
    36 static psS32 testDPolynomial4DAlloc(void);
    3733
    3834testDescription tests[] = {
     
    4137                              {testPolynomial3DAlloc,578,"psPolynomial3DAlloc",0,false},
    4238                              {testPolynomial4DAlloc,578,"psPolynomial4DAlloc",0,false},
    43                               {testDPolynomial1DAlloc,579,"psDPolynomial1DAlloc",0,false},
    44                               {testDPolynomial2DAlloc,579,"psDPolynomial2DAlloc",0,false},
    45                               {testDPolynomial3DAlloc,579,"psDPolynomial3DAlloc",0,false},
    46                               {testDPolynomial4DAlloc,579,"psDPolynomial4DAlloc",0,false},
    4739                              {NULL}
    4840                          };
     
    109101}
    110102
    111 // This test will allocate a 1D polynomial and verify the structure allocated
    112 psS32 testDPolynomial1DAlloc(void)
    113 {
    114     psDPolynomial1D*  my1DDPoly  = NULL;
    115 
    116     // Allocate polynomial
    117     my1DDPoly = psDPolynomial1DAlloc(ORDER,PS_POLYNOMIAL_CHEB);
    118     // Verify structure allocated
    119     if(my1DDPoly == NULL) {
    120         psError(PS_ERR_UNKNOWN,true,"Returned NULL not expected");
    121         return 1;
    122     }
    123     // Verify polynomial structure members set properly
    124     if(my1DDPoly->n != ORDER) {
    125         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    126                 my1DDPoly->n, ORDER);
    127         return 2;
    128     }
    129     if(my1DDPoly->type != PS_POLYNOMIAL_CHEB) {
    130         psError(PS_ERR_UNKNOWN,true,"Type %d not as expected %d",
    131                 my1DDPoly->type, PS_POLYNOMIAL_CHEB);
    132         return 3;
    133     }
    134     for(psS32 i = 0; i < ORDER; i++) {
    135         if(my1DDPoly->coeff[i] != 0.0) {
    136             psError(PS_ERR_UNKNOWN,true,"Coeff[%d] %lg not as expected %lg",
    137                     i, my1DDPoly->coeff[i], 0.0);
    138             return 4;
    139         }
    140         if(my1DDPoly->coeffErr[i] != 0.0) {
    141             psError(PS_ERR_UNKNOWN,true,"CoeffErr[%d] %lg not as expected %lg",
    142                     i, my1DDPoly->coeffErr[i], 0.0);
    143             return 5;
    144         }
    145         if(my1DDPoly->mask[i] != 0) {
    146             psError(PS_ERR_UNKNOWN,true,"Mask[%d] %d not as expected %d",
    147                     i, my1DDPoly->mask[i], 0);
    148             return 6;
    149         }
    150     }
    151     psFree(my1DDPoly);
    152 
    153     /*    // Attempt to allocate with negative order
    154         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    155         if(psDPolynomial1DAlloc(-1,PS_POLYNOMIAL_ORD) != NULL) {
    156             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    157             return 7;
    158         }
    159     */
    160     return 0;
    161 }
    162 
    163103// This test will allocate a 2D polynomial and verify the structure allocated
    164104psS32 testPolynomial2DAlloc(void)
     
    220160        psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    221161        if(psPolynomial2DAlloc(1,-1,PS_POLYNOMIAL_ORD) != NULL) {
    222             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    223             return 9;
    224         }
    225     */
    226     return 0;
    227 }
    228 
    229 // This test will allocate a 2D polynomial and verify the structure allocated
    230 psS32 testDPolynomial2DAlloc(void)
    231 {
    232     psDPolynomial2D* my2DDPoly = NULL;
    233 
    234     // Allocate polynomial
    235     my2DDPoly = psDPolynomial2DAlloc(ORDER,ORDER+1,PS_POLYNOMIAL_CHEB);
    236     // Verify structure allocated
    237     if(my2DDPoly == NULL) {
    238         psError(PS_ERR_UNKNOWN,true,"Returned NULL not expected");
    239         return 1;
    240     }
    241     // Verify polynomial structure members set properly
    242     if(my2DDPoly->nX != ORDER) {
    243         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    244                 my2DDPoly->nX, ORDER);
    245         return 2;
    246     }
    247     // Verify polynomial structure members set properly
    248     if(my2DDPoly->nY != ORDER+1) {
    249         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    250                 my2DDPoly->nY, ORDER+1);
    251         return 3;
    252     }
    253     if(my2DDPoly->type != PS_POLYNOMIAL_CHEB) {
    254         psError(PS_ERR_UNKNOWN,true,"Type %d not as expected %d",
    255                 my2DDPoly->type, PS_POLYNOMIAL_ORD);
    256         return 4;
    257     }
    258     for(psS32 i = 0; i < ORDER; i++) {
    259         for(psS32 j = 0; j < ORDER+1; j++) {
    260             if(my2DDPoly->coeff[i][j] != 0.0) {
    261                 psError(PS_ERR_UNKNOWN,true,"Coeff[%d][%d] %lg not as expected %lg",
    262                         i, j, my2DDPoly->coeff[i][j], 0.0);
    263                 return 5;
    264             }
    265             if(my2DDPoly->coeffErr[i][j] != 0.0) {
    266                 psError(PS_ERR_UNKNOWN,true,"CoeffErr[%d][%d] %lg not as expected %lg",
    267                         i, j, my2DDPoly->coeffErr[i][j], 0.0);
    268                 return 6;
    269             }
    270             if(my2DDPoly->mask[i][j] != 0) {
    271                 psError(PS_ERR_UNKNOWN,true,"Mask[%d][%d] %d not as expected %d",
    272                         i, j, my2DDPoly->mask[i][j], 0);
    273                 return 7;
    274             }
    275         }
    276     }
    277     psFree(my2DDPoly);
    278     /*
    279         // Attempt to allocate with negative order
    280         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    281         if(psDPolynomial2DAlloc(-1,1,PS_POLYNOMIAL_ORD) != NULL) {
    282             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    283             return 8;
    284         }
    285         // Attempt to allocate with negative order
    286         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    287         if(psDPolynomial2DAlloc(1,-1,PS_POLYNOMIAL_ORD) != NULL) {
    288162            psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    289163            return 9;
     
    366240        psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    367241        if(psPolynomial3DAlloc(1,1,-1,PS_POLYNOMIAL_ORD) != NULL) {
    368             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    369             return 11;
    370         }
    371     */
    372     return 0;
    373 }
    374 
    375 // This test will allocate a 3D polynomial and verify the structure allocated
    376 psS32 testDPolynomial3DAlloc(void)
    377 {
    378     psDPolynomial3D* my3DDPoly = NULL;
    379 
    380     // Allocate polynomial
    381     my3DDPoly = psDPolynomial3DAlloc(ORDER,ORDER+1,ORDER+2,PS_POLYNOMIAL_CHEB);
    382     // Verify structure allocated
    383     if(my3DDPoly == NULL) {
    384         psError(PS_ERR_UNKNOWN,true,"Returned NULL not expected");
    385         return 1;
    386     }
    387     // Verify polynomial structure members set properly
    388     if(my3DDPoly->nX != ORDER) {
    389         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    390                 my3DDPoly->nX, ORDER);
    391         return 2;
    392     }
    393     // Verify polynomial structure members set properly
    394     if(my3DDPoly->nY != ORDER+1) {
    395         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    396                 my3DDPoly->nY, ORDER+1);
    397         return 3;
    398     }
    399     // Verify polynomial structure members set properly
    400     if(my3DDPoly->nZ != ORDER+2) {
    401         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    402                 my3DDPoly->nZ, ORDER+2);
    403         return 4;
    404     }
    405     if(my3DDPoly->type != PS_POLYNOMIAL_CHEB) {
    406         psError(PS_ERR_UNKNOWN,true,"Type %d not as expected %d",
    407                 my3DDPoly->type, PS_POLYNOMIAL_ORD);
    408         return 5;
    409     }
    410     for(psS32 i = 0; i < ORDER; i++) {
    411         for(psS32 j = 0; j < ORDER+1; j++) {
    412             for(psS32 k = 0; k < ORDER+2; k++) {
    413                 if(my3DDPoly->coeff[i][j][k] != 0.0) {
    414                     psError(PS_ERR_UNKNOWN,true,"Coeff[%d][%d][%d] %lg not as expected %lg",
    415                             i, j, k, my3DDPoly->coeff[i][j][k], 0.0);
    416                     return 6;
    417                 }
    418                 if(my3DDPoly->coeffErr[i][j][k] != 0.0) {
    419                     psError(PS_ERR_UNKNOWN,true,"CoeffErr[%d][%d][%d] %lg not as expected %lg",
    420                             i, j, k, my3DDPoly->coeffErr[i][j][k], 0.0);
    421                     return 7;
    422                 }
    423                 if(my3DDPoly->mask[i][j][k] != 0) {
    424                     psError(PS_ERR_UNKNOWN,true,"Mask[%d][%d] %d not as expected %d",
    425                             i, j, k, my3DDPoly->mask[i][j][k], 0);
    426                     return 8;
    427                 }
    428             }
    429         }
    430     }
    431     psFree(my3DDPoly);
    432 
    433     /*    // Attempt to allocate with negative order
    434         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    435         if(psDPolynomial3DAlloc(-1,1,1,PS_POLYNOMIAL_ORD) != NULL) {
    436             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    437             return 9;
    438         }
    439         // Attempt to allocate with negative order
    440         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    441         if(psDPolynomial3DAlloc(1,-1,1,PS_POLYNOMIAL_ORD) != NULL) {
    442             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    443             return 10;
    444         }
    445         // Attempt to allocate with negative order
    446         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    447         if(psDPolynomial3DAlloc(1,1,-1,PS_POLYNOMIAL_ORD) != NULL) {
    448242            psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    449243            return 11;
     
    547341}
    548342
    549 // This test will allocate a 4D polynomial and verify the structure allocated
    550 psS32 testDPolynomial4DAlloc(void)
    551 {
    552     psDPolynomial4D* my4DDPoly = NULL;
    553 
    554     // Allocate polynomial
    555     my4DDPoly = psDPolynomial4DAlloc(ORDER+3,ORDER,ORDER+1,ORDER+2,PS_POLYNOMIAL_ORD);
    556     // Verify structure allocated
    557     if(my4DDPoly == NULL) {
    558         psError(PS_ERR_UNKNOWN,true,"Returned NULL not expected");
    559         return 1;
    560     }
    561     // Verify polynomial structure members set properly
    562     if(my4DDPoly->nY != ORDER) {
    563         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    564                 my4DDPoly->nY, ORDER);
    565         return 2;
    566     }
    567     // Verify polynomial structure members set properly
    568     if(my4DDPoly->nZ != ORDER+1) {
    569         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    570                 my4DDPoly->nZ, ORDER+1);
    571         return 3;
    572     }
    573     // Verify polynomial structure members set properly
    574     if(my4DDPoly->nT != ORDER+2) {
    575         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    576                 my4DDPoly->nT, ORDER+2);
    577         return 4;
    578     }
    579     // Verify polynomial structure members set properly
    580     if(my4DDPoly->nX != ORDER+3) {
    581         psError(PS_ERR_UNKNOWN,true,"Number of terms %d not as expected %d",
    582                 my4DDPoly->nX, ORDER+3);
    583         return 5;
    584     }
    585     if(my4DDPoly->type != PS_POLYNOMIAL_ORD) {
    586         psError(PS_ERR_UNKNOWN,true,"Type %d not as expected %d",
    587                 my4DDPoly->type, PS_POLYNOMIAL_ORD);
    588         return 6;
    589     }
    590     for(psS32 i = 0; i < ORDER+3; i++) {
    591         for(psS32 j = 0; j < ORDER; j++) {
    592             for(psS32 k = 0; k < ORDER+1; k++) {
    593                 for(psS32 l = 0; l < ORDER+2; l++) {
    594                     if(my4DDPoly->coeff[i][j][k][l] != 0.0) {
    595                         psError(PS_ERR_UNKNOWN,true,"Coeff[%d][%d][%d][%d] %lg not as expected %lg",
    596                                 i, j, k, l, my4DDPoly->coeff[i][j][k][l], 0.0);
    597                         return 7;
    598                     }
    599                     if(my4DDPoly->coeffErr[i][j][k][l] != 0.0) {
    600                         psError(PS_ERR_UNKNOWN,true,"CoeffErr[%d][%d][%d][l] %lg not as expected %lg",
    601                                 i, j, k, l, my4DDPoly->coeffErr[i][j][k][l], 0.0);
    602                         return 8;
    603                     }
    604                     if(my4DDPoly->mask[i][j][k][l] != 0) {
    605                         psError(PS_ERR_UNKNOWN,true,"Mask[%d][%d][%d][%d] %d not as expected %d",
    606                                 i, j, k, l, my4DDPoly->mask[i][j][k][l], 0);
    607                         return 9;
    608                     }
    609                 }
    610             }
    611         }
    612     }
    613     psFree(my4DDPoly);
    614 
    615     /*    // Attempt to allocate with negative order
    616         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    617         if(psDPolynomial4DAlloc(-1,1,1,1,PS_POLYNOMIAL_ORD) != NULL) {
    618             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    619             return 10;
    620         }
    621         // Attempt to allocate with negative order
    622         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    623         if(psDPolynomial4DAlloc(1,-1,1,1,PS_POLYNOMIAL_ORD) != NULL) {
    624             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    625             return 11;
    626         }
    627         // Attempt to allocate with negative order
    628         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    629         if(psDPolynomial4DAlloc(1,1,-1,1,PS_POLYNOMIAL_ORD) != NULL) {
    630             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    631             return 12;
    632         }
    633         // Attempt to allocate with negative order
    634         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error msg for negative terms");
    635         if(psDPolynomial4DAlloc(1,1,1,-1,PS_POLYNOMIAL_ORD) != NULL) {
    636             psError(PS_ERR_UNKNOWN,true,"Returned structure but expected NULL");
    637             return 13;
    638         }
    639     */
    640     return 0;
    641 }
    642 
  • trunk/psLib/test/math/tst_psFunc08.c

    r4547 r4581  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.1 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-13 02:47:00 $
     6*  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-07-20 01:21:13 $
    88*
    99*  XXX: Probably should test single- and multi-dimensional polynomials in
     
    2222
    2323static psS32 testPoly1DEval(void);
    24 static psS32 testDPoly1DEval(void);
    2524static psS32 testPoly1DEvalVector(void);
    26 static psS32 testDPoly1DEvalVector(void);
    2725
    2826testDescription tests[] = {
    2927                              {testPoly1DEval,000,"psPolynomial1DEval",0,false},
    30                               {testDPoly1DEval,000,"psDPolynomial1DEval",0,false},
    3128                              {testPoly1DEvalVector,000,"psPolynomial1DEvalVector",0,false},
    32                               {testDPoly1DEvalVector,000,"psDPolynomial1DEvalVector",0,false},
    3329                              {NULL}
    3430                          };
     
    5854psS32 testPoly1DEval(void)
    5955{
    60     psF32  result;
    61     psF32  resultCheb;
     56    psF64  result;
     57    psF64  resultCheb;
    6258
    6359    // Allocate polynomial structure
     
    10399}
    104100
    105 // This test will verify operation of 1D polynomial evaluation
    106 psS32 testDPoly1DEval(void)
    107 {
    108     psF64  result;
    109     psF64  resultCheb;
    110 
    111     // Allocate polynomial structure
    112     psDPolynomial1D*  polyOrd = psDPolynomial1DAlloc(TERMS, PS_POLYNOMIAL_ORD);
    113     psDPolynomial1D*  polyCheb = psDPolynomial1DAlloc(TERMS, PS_POLYNOMIAL_CHEB);
    114     // Set polynomial members
    115     for(psS32 i = 0; i < TERMS; i++) {
    116         polyOrd->coeff[i] = Dpoly1DCoeff[i];
    117         polyOrd->mask[i]  = poly1DMask[i];
    118         polyCheb->coeff[i] = 1.0;
    119         polyCheb->mask[i]  = poly1DMask[i];
    120     }
    121     // Evaluate test points and verify results
    122     for(psS32 i = 0; i < TESTPOINTS; i++) {
    123         result = psDPolynomial1DEval(polyOrd,Dpoly1DXValue[i]);
    124         if(fabs(Dpoly1DXResult[i]-result) > ERROR_TOL ) {
    125             psError(PS_ERR_UNKNOWN,true,"Evaluated value %lg not as expected %lg",
    126                     result, Dpoly1DXResult[i]);
    127             return i;
    128         }
    129         resultCheb = psDPolynomial1DEval(polyCheb,Dpoly1DXChebValue[i]);
    130         if(fabs(Dpoly1DXChebResult[i]-resultCheb) > ERROR_TOL ) {
    131             psError(PS_ERR_UNKNOWN,true,"Evaluated Chebyshev value %lg not as expected %lg",
    132                     resultCheb, Dpoly1DXChebResult[i]);
    133             return 5*i;
    134         }
    135     }
    136     psFree(polyOrd);
    137     psFree(polyCheb);
    138 
    139     // Allocate polynomial with invalid type
    140     polyOrd = psDPolynomial1DAlloc(TERMS, 99);
    141     // Attempt to evaluation invalid polynomial type
    142     psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type");
    143     result = psDPolynomial1DEval(polyOrd,0.0);
    144     if ( !isnan(result) ) {
    145         psError(PS_ERR_UNKNOWN,true,"Did not return NAN for invalid polynomial type");
    146         return 20;
    147     }
    148     psFree(polyOrd);
    149 
    150     return 0;
    151 }
    152101
    153102psS32 testPoly1DEvalVector(void)
     
    156105    psPolynomial1D* polyOrd = psPolynomial1DAlloc(TERMS,PS_POLYNOMIAL_ORD);
    157106    psPolynomial1D* polyCheb = psPolynomial1DAlloc(TERMS,PS_POLYNOMIAL_CHEB);
    158 
    159     // Set polynomial members
    160     for(psS32 i = 0; i < TERMS; i++) {
    161         polyOrd->coeff[i] = poly1DCoeff[i];
    162         polyOrd->mask[i]  = poly1DMask[i];
    163         polyCheb->coeff[i] = 1.0;
    164         polyCheb->mask[i]  = poly1DMask[i];
    165     }
    166 
    167     // Create input vectors
    168     psVector* inputOrd = psVectorAlloc(TESTPOINTS, PS_TYPE_F32);
    169     psVector* inputCheb = psVectorAlloc(TESTPOINTS, PS_TYPE_F32);
    170     for(psS32 i = 0; i < TESTPOINTS; i++) {
    171         inputOrd->data.F32[i] = poly1DXValue[i];
    172         inputCheb->data.F32[i] = poly1DXChebValue[i];
    173     }
    174 
    175     // Evaluate the vectors
    176     psVector* outputOrd = psPolynomial1DEvalVector(polyOrd, inputOrd);
    177     if(outputOrd == NULL) {
    178         psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
    179         return 1;
    180     }
    181     if(outputOrd->type.type != PS_TYPE_F32) {
    182         psError(PS_ERR_UNKNOWN,true,"Output vector of type %d expected %d",
    183                 outputOrd->type.type, PS_TYPE_F32);
    184         return 2;
    185     }
    186     psVector* outputCheb = psPolynomial1DEvalVector(polyCheb, inputCheb);
    187     if(outputCheb == NULL) {
    188         psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
    189         return 1;
    190     }
    191     if(outputCheb->type.type != PS_TYPE_F32) {
    192         psError(PS_ERR_UNKNOWN,true,"Output vector of type %d expected %d",
    193                 outputCheb->type.type, PS_TYPE_F32);
    194         return 2;
    195     }
    196 
    197     // Verify the results
    198     for(psS32 i = 0; i < TESTPOINTS; i++) {
    199         if(fabs(poly1DXResult[i]-outputOrd->data.F32[i]) > ERROR_TOL) {
    200             psError(PS_ERR_UNKNOWN,true,"Result[%d] %g not equal to expected %g",
    201                     i, outputOrd->data.F32[i], poly1DXResult[i]);
    202             return i*5;
    203         }
    204         if(fabs(poly1DXChebResult[i]-outputCheb->data.F32[i]) > ERROR_TOL) {
    205             psError(PS_ERR_UNKNOWN,true,"ResultCheb[%d] %g not equal to expected %g",
    206                     i, outputCheb->data.F32[i], poly1DXChebResult[i]);
    207             return i*10;
    208         }
    209     }
    210 
    211     // Attempt to invoke function with null polynomial
    212     psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
    213     if(psPolynomial1DEvalVector(NULL, inputOrd) != NULL) {
    214         psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL polynomial");
    215         return 60;
    216     }
    217 
    218     // Attempt to invoke function with null input vector
    219     psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    220     if(psPolynomial1DEvalVector(polyOrd,NULL) != NULL) {
    221         psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    222         return 61;
    223     }
    224 
    225     // Attempt to invoke function with a non F32 type input vector
    226     psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    227     inputOrd->type.type = PS_TYPE_U8;
    228     if(psPolynomial1DEvalVector(polyOrd,inputOrd) != NULL) {
    229         psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F32 input vector");
    230         return 62;
    231     }
    232     inputOrd->type.type = PS_TYPE_F32;
    233 
    234     psFree(inputOrd);
    235     psFree(inputCheb);
    236     psFree(outputOrd);
    237     psFree(outputCheb);
    238     psFree(polyOrd);
    239     psFree(polyCheb);
    240 
    241     return 0;
    242 }
    243 
    244 psS32 testDPoly1DEvalVector(void)
    245 {
    246     // Allocate polynomial
    247     psDPolynomial1D* polyOrd = psDPolynomial1DAlloc(TERMS,PS_POLYNOMIAL_ORD);
    248     psDPolynomial1D* polyCheb = psDPolynomial1DAlloc(TERMS,PS_POLYNOMIAL_CHEB);
    249107
    250108    // Set polynomial members
     
    265123
    266124    // Evaluate the vectors
    267     psVector* outputOrd = psDPolynomial1DEvalVector(polyOrd, inputOrd);
     125    psVector* outputOrd = psPolynomial1DEvalVector(polyOrd, inputOrd);
    268126    if(outputOrd == NULL) {
    269127        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    275133        return 2;
    276134    }
    277     psVector* outputCheb = psDPolynomial1DEvalVector(polyCheb, inputCheb);
     135    psVector* outputCheb = psPolynomial1DEvalVector(polyCheb, inputCheb);
    278136    if(outputCheb == NULL) {
    279137        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    302160    // Attempt to invoke function with null polynomial
    303161    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
    304     if(psDPolynomial1DEvalVector(NULL, inputOrd) != NULL) {
     162    if(psPolynomial1DEvalVector(NULL, inputOrd) != NULL) {
    305163        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL polynomial");
    306164        return 60;
     
    309167    // Attempt to invoke function with null input vector
    310168    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    311     if(psDPolynomial1DEvalVector(polyOrd,NULL) != NULL) {
     169    if(psPolynomial1DEvalVector(polyOrd,NULL) != NULL) {
    312170        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    313171        return 61;
     
    317175    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    318176    inputOrd->type.type = PS_TYPE_U8;
    319     if(psDPolynomial1DEvalVector(polyOrd,inputOrd) != NULL) {
     177    if(psPolynomial1DEvalVector(polyOrd,inputOrd) != NULL) {
    320178        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    321179        return 62;
  • trunk/psLib/test/math/tst_psFunc09.c

    r4547 r4581  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.1 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-13 02:47:00 $
     6*  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-07-20 01:21:13 $
    88*
    99* Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
     
    1919
    2020static psS32 testPoly2DEval(void);
    21 static psS32 testDPoly2DEval(void);
    2221static psS32 testPoly2DEvalVector(void);
    23 static psS32 testDPoly2DEvalVector(void);
    2422
    2523testDescription tests[] = {
    2624                              {testPoly2DEval,583,"psPolynomial2DEval",0,false},
    27                               {testDPoly2DEval,582,"psDPolynomial2DEval",0,false},
    2825                              {testPoly2DEvalVector,000,"psPolynomial2DEvalVector",0,false},
    29                               {testDPoly2DEvalVector,000,"psDPolynomial2DEvalVector",0,false},
    3026                              {NULL}
    3127                          };
     
    8581
    8682// This test will verify operation of 1D polynomial evaluation
    87 psS32 testPoly2DEval(void)
     83/*psS32 testPoly2DEval(void)
    8884{
    8985    psF32  result;
    9086    psF32  resultCheb;
    91 
     87 
    9288    // Allocate polynomial structure
    9389    psPolynomial2D*  polyOrd = psPolynomial2DAlloc(TERMS, TERMS, PS_POLYNOMIAL_ORD);
     
    119115    psFree(polyOrd);
    120116    psFree(polyCheb);
    121 
     117 
    122118    // Allocate polynomial with invalid type
    123119    polyOrd = psPolynomial2DAlloc(TERMS, TERMS, 99);
     
    130126    }
    131127    psFree(polyOrd);
    132 
     128 
    133129    return 0;
    134130}
    135 
     131*/
    136132// This test will verify operation of 1D polynomial evaluation
    137 psS32 testDPoly2DEval(void)
     133psS32 testPoly2DEval(void)
    138134{
    139135    psF64  result;
     
    141137
    142138    // Allocate polynomial structure
    143     psDPolynomial2D*  polyOrd = psDPolynomial2DAlloc(TERMS, TERMS, PS_POLYNOMIAL_ORD);
    144     psDPolynomial2D*  polyCheb = psDPolynomial2DAlloc(TERMS, TERMS, PS_POLYNOMIAL_CHEB);
     139    psPolynomial2D*  polyOrd = psPolynomial2DAlloc(TERMS, TERMS, PS_POLYNOMIAL_ORD);
     140    psPolynomial2D*  polyCheb = psPolynomial2DAlloc(TERMS, TERMS, PS_POLYNOMIAL_CHEB);
    145141    // Set polynomial members
    146142    for(psS32 i = 0; i < TERMS; i++) {
     
    154150    // Evaluate test points and verify results
    155151    for(psS32 i = 0; i < TESTPOINTS; i++) {
    156         result = psDPolynomial2DEval(polyOrd,Dpoly2DXYValue[i][0],Dpoly2DXYValue[i][1]);
     152        result = psPolynomial2DEval(polyOrd,Dpoly2DXYValue[i][0],Dpoly2DXYValue[i][1]);
    157153        if(fabs(Dpoly2DResult[i]-result) > ERROR_TOL ) {
    158154            psError(PS_ERR_UNKNOWN,true,"Evaluated value %lg not as expected %lg",
     
    160156            return i;
    161157        }
    162         resultCheb = psDPolynomial2DEval(polyCheb,Dpoly2DXYChebValue[i][0],Dpoly2DXYChebValue[i][1]);
     158        resultCheb = psPolynomial2DEval(polyCheb,Dpoly2DXYChebValue[i][0],Dpoly2DXYChebValue[i][1]);
    163159        if(fabs(Dpoly2DChebResult[i]-resultCheb) > ERROR_TOL ) {
    164160            psError(PS_ERR_UNKNOWN,true,"Evaluated Chebyshev value %lg not as expected %lg",
     
    171167
    172168    // Allocate polynomial with invalid type
    173     polyOrd = psDPolynomial2DAlloc(TERMS, TERMS, 99);
     169    polyOrd = psPolynomial2DAlloc(TERMS, TERMS, 99);
    174170    // Attempt to evaluation invalid polynomial type
    175171    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type");
    176     result = psDPolynomial2DEval(polyOrd,0.0, 0.0);
     172    result = psPolynomial2DEval(polyOrd,0.0, 0.0);
    177173    if ( !isnan(result) ) {
    178174        psError(PS_ERR_UNKNOWN,true,"Did not return NAN for invalid polynomial type");
     
    184180}
    185181
    186 psS32 testPoly2DEvalVector(void)
     182/*psS32 testPoly2DEvalVector(void)
    187183{
    188184    // Allocate polynomial
    189185    psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS,TERMS,PS_POLYNOMIAL_ORD);
    190186    psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    191 
     187 
    192188    // Set polynomial members
    193189    for(psS32 i = 0; i < TERMS; i++) {
     
    199195        }
    200196    }
    201 
     197 
    202198    // Create input vectors
    203199    psVector* inputOrdX  = psVectorAlloc(TESTPOINTS, PS_TYPE_F32);
     
    211207        inputChebY->data.F32[i] = poly2DXYChebValue[i][1];
    212208    }
    213 
     209 
    214210    // Evaluate the vectors
    215211    psVector* outputOrd = psPolynomial2DEvalVector(polyOrd, inputOrdX, inputOrdY);
     
    233229        return 2;
    234230    }
    235 
     231 
    236232    // Verify the results
    237233    for(psS32 i = 0; i < TESTPOINTS; i++) {
     
    247243        }
    248244    }
    249 
     245 
    250246    // Attempt to invoke function with null polynomial
    251247    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
     
    254250        return 60;
    255251    }
    256 
     252 
    257253    // Attempt to invoke function with null input vector
    258254    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
     
    267263        return 62;
    268264    }
    269 
     265 
    270266    // Attempt to invoke function with a non F32 type input vector
    271267    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
     
    284280    }
    285281    inputOrdY->type.type = PS_TYPE_F32;
    286 
     282 
    287283    psFree(inputOrdX);
    288284    psFree(inputOrdY);
     
    293289    psFree(polyOrd);
    294290    psFree(polyCheb);
    295 
     291 
    296292    return 0;
    297293}
    298 
    299 psS32 testDPoly2DEvalVector(void)
     294*/
     295psS32 testPoly2DEvalVector(void)
    300296{
    301297    // Allocate polynomial
    302     psDPolynomial2D* polyOrd = psDPolynomial2DAlloc(TERMS,TERMS,PS_POLYNOMIAL_ORD);
    303     psDPolynomial2D* polyCheb = psDPolynomial2DAlloc(TERMS,TERMS,PS_POLYNOMIAL_CHEB);
     298    psPolynomial2D* polyOrd = psPolynomial2DAlloc(TERMS,TERMS,PS_POLYNOMIAL_ORD);
     299    psPolynomial2D* polyCheb = psPolynomial2DAlloc(TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    304300
    305301    // Set polynomial members
     
    326322
    327323    // Evaluate the vectors
    328     psVector* outputOrd = psDPolynomial2DEvalVector(polyOrd, inputOrdX, inputOrdY);
     324    psVector* outputOrd = psPolynomial2DEvalVector(polyOrd, inputOrdX, inputOrdY);
    329325    if(outputOrd == NULL) {
    330326        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    336332        return 2;
    337333    }
    338     psVector* outputCheb = psDPolynomial2DEvalVector(polyCheb, inputChebX, inputChebY);
     334    psVector* outputCheb = psPolynomial2DEvalVector(polyCheb, inputChebX, inputChebY);
    339335    if(outputCheb == NULL) {
    340336        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    363359    // Attempt to invoke function with null polynomial
    364360    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
    365     if(psDPolynomial2DEvalVector(NULL, inputOrdX, inputOrdY) != NULL) {
     361    if(psPolynomial2DEvalVector(NULL, inputOrdX, inputOrdY) != NULL) {
    366362        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL polynomial");
    367363        return 60;
     
    370366    // Attempt to invoke function with null input vector
    371367    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    372     if(psDPolynomial2DEvalVector(polyOrd,NULL,inputOrdY) != NULL) {
     368    if(psPolynomial2DEvalVector(polyOrd,NULL,inputOrdY) != NULL) {
    373369        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    374370        return 61;
     
    376372    // Attempt to invoke function with null input vector
    377373    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    378     if(psDPolynomial2DEvalVector(polyOrd,inputOrdX,NULL) != NULL) {
     374    if(psPolynomial2DEvalVector(polyOrd,inputOrdX,NULL) != NULL) {
    379375        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    380376        return 62;
     
    384380    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    385381    inputOrdX->type.type = PS_TYPE_U8;
    386     if(psDPolynomial2DEvalVector(polyOrd,inputOrdX, inputOrdY) != NULL) {
     382    if(psPolynomial2DEvalVector(polyOrd,inputOrdX, inputOrdY) != NULL) {
    387383        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    388384        return 63;
     
    392388    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    393389    inputOrdY->type.type = PS_TYPE_U8;
    394     if(psDPolynomial2DEvalVector(polyOrd,inputOrdX, inputOrdY) != NULL) {
     390    if(psPolynomial2DEvalVector(polyOrd,inputOrdX, inputOrdY) != NULL) {
    395391        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    396392        return 64;
  • trunk/psLib/test/math/tst_psFunc10.c

    r4547 r4581  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.1 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-13 02:47:00 $
     6*  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-07-20 01:21:13 $
    88*
    99* Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
     
    1919
    2020static psS32 testPoly3DEval(void);
    21 static psS32 testDPoly3DEval(void);
    2221static psS32 testPoly3DEvalVector(void);
    23 static psS32 testDPoly3DEvalVector(void);
    2422
    2523testDescription tests[] = {
    2624                              {testPoly3DEval,583,"psPolynomial3DEval",0,false},
    27                               {testDPoly3DEval,582,"psDPolynomial3DEval",0,false},
    2825                              {testPoly3DEvalVector,000,"psPolynomial3DEvalVector",0,false},
    29                               {testDPoly3DEvalVector,000,"psDPolynomial3DEvalVector",0,false},
    3026                              {NULL}
    3127                          };
     
    136132
    137133// This test will verify operation of 1D polynomial evaluation
    138 psS32 testPoly3DEval(void)
     134/*psS32 testPoly3DEval(void)
    139135{
    140136    psF32  result;
    141137    psF32  resultCheb;
    142 
     138 
    143139    // Allocate polynomial structure
    144140    psPolynomial3D*  polyOrd = psPolynomial3DAlloc(TERMS, TERMS, TERMS, PS_POLYNOMIAL_ORD);
     
    174170    psFree(polyOrd);
    175171    psFree(polyCheb);
    176 
     172 
    177173    // Allocate polynomial with invalid type
    178174    polyOrd = psPolynomial3DAlloc(TERMS, TERMS, TERMS, 99);
     
    185181    }
    186182    psFree(polyOrd);
    187 
     183 
    188184    return 0;
    189185}
    190 
     186*/
    191187// This test will verify operation of 1D polynomial evaluation
    192 psS32 testDPoly3DEval(void)
     188psS32 testPoly3DEval(void)
    193189{
    194190    psF64  result;
     
    196192
    197193    // Allocate polynomial structure
    198     psDPolynomial3D*  polyOrd = psDPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
    199     psDPolynomial3D*  polyCheb = psDPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
     194    psPolynomial3D*  polyOrd = psPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
     195    psPolynomial3D*  polyCheb = psPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    200196    // Set polynomial members
    201197    for(psS32 i = 0; i < TERMS; i++) {
     
    211207    // Evaluate test points and verify results
    212208    for(psS32 i = 0; i < TESTPOINTS; i++) {
    213         result = psDPolynomial3DEval(polyOrd,Dpoly3DXYZValue[i][0],Dpoly3DXYZValue[i][1],
    214                                      Dpoly3DXYZValue[i][2]);
     209        result = psPolynomial3DEval(polyOrd,Dpoly3DXYZValue[i][0],Dpoly3DXYZValue[i][1],
     210                                    Dpoly3DXYZValue[i][2]);
    215211        if(fabs(Dpoly3DResult[i]-result) > ERROR_TOL ) {
    216212            psError(PS_ERR_UNKNOWN,true,"Evaluated value %lg not as expected %lg",
     
    218214            return i;
    219215        }
    220         resultCheb = psDPolynomial3DEval(polyCheb,Dpoly3DXYZChebValue[i][0],Dpoly3DXYZChebValue[i][1],
    221                                          Dpoly3DXYZChebValue[i][2]);
     216        resultCheb = psPolynomial3DEval(polyCheb,Dpoly3DXYZChebValue[i][0],Dpoly3DXYZChebValue[i][1],
     217                                        Dpoly3DXYZChebValue[i][2]);
    222218        if(fabs(Dpoly3DChebResult[i]-resultCheb) > ERROR_TOL ) {
    223219            psError(PS_ERR_UNKNOWN,true,"Evaluated Chebyshev value %lg not as expected %lg",
     
    230226
    231227    // Allocate polynomial with invalid type
    232     polyOrd = psDPolynomial3DAlloc(TERMS, TERMS, TERMS, 99);
     228    polyOrd = psPolynomial3DAlloc(TERMS, TERMS, TERMS, 99);
    233229    // Attempt to evaluation invalid polynomial type
    234230    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type");
    235     result = psDPolynomial3DEval(polyOrd,0.0, 0.0, 0.0);
     231    result = psPolynomial3DEval(polyOrd,0.0, 0.0, 0.0);
    236232    if ( !isnan(result) ) {
    237233        psError(PS_ERR_UNKNOWN,true,"Did not return NAN for invalid polynomial type");
     
    243239}
    244240
    245 psS32 testPoly3DEvalVector(void)
     241/*psS32 testPoly3DEvalVector(void)
    246242{
    247243    // Allocate polynomial
    248244    psPolynomial3D* polyOrd  = psPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
    249245    psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    250 
     246 
    251247    // Set polynomial members
    252248    for(psS32 i = 0; i < TERMS; i++) {
     
    260256        }
    261257    }
    262 
     258 
    263259    // Create input vectors
    264260    psVector* inputOrdX  = psVectorAlloc(TESTPOINTS, PS_TYPE_F32);
     
    276272        inputChebZ->data.F32[i] = poly3DXYZChebValue[i][2];
    277273    }
    278 
     274 
    279275    // Evaluate the vectors
    280276    psVector* outputOrd = psPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ);
     
    298294        return 2;
    299295    }
    300 
     296 
    301297    // Verify the results
    302298    for(psS32 i = 0; i < TESTPOINTS; i++) {
     
    312308        }
    313309    }
    314 
     310 
    315311    // Attempt to invoke function with null polynomial
    316312    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
     
    319315        return 60;
    320316    }
    321 
     317 
    322318    // Attempt to invoke function with null input vector
    323319    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
     
    338334        return 63;
    339335    }
    340 
     336 
    341337    // Attempt to invoke function with a non F32 type input vector
    342338    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
     
    363359    }
    364360    inputOrdZ->type.type = PS_TYPE_F32;
    365 
     361 
    366362    psFree(inputOrdX);
    367363    psFree(inputOrdY);
     
    374370    psFree(polyOrd);
    375371    psFree(polyCheb);
    376 
     372 
    377373    return 0;
    378374}
    379 
    380 psS32 testDPoly3DEvalVector(void)
     375*/
     376psS32 testPoly3DEvalVector(void)
    381377{
    382378    // Allocate polynomial
    383     psDPolynomial3D* polyOrd = psDPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
    384     psDPolynomial3D* polyCheb = psDPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
     379    psPolynomial3D* polyOrd = psPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
     380    psPolynomial3D* polyCheb = psPolynomial3DAlloc(TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    385381
    386382    // Set polynomial members
     
    413409
    414410    // Evaluate the vectors
    415     psVector* outputOrd = psDPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ);
     411    psVector* outputOrd = psPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ);
    416412    if(outputOrd == NULL) {
    417413        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    423419        return 2;
    424420    }
    425     psVector* outputCheb = psDPolynomial3DEvalVector(polyCheb,inputChebX,inputChebY,inputChebZ);
     421    psVector* outputCheb = psPolynomial3DEvalVector(polyCheb,inputChebX,inputChebY,inputChebZ);
    426422    if(outputCheb == NULL) {
    427423        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    450446    // Attempt to invoke function with null polynomial
    451447    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
    452     if(psDPolynomial3DEvalVector(NULL,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     448    if(psPolynomial3DEvalVector(NULL,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    453449        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL polynomial");
    454450        return 60;
     
    457453    // Attempt to invoke function with null input vector
    458454    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    459     if(psDPolynomial3DEvalVector(polyOrd,NULL,inputOrdY,inputOrdZ) != NULL) {
     455    if(psPolynomial3DEvalVector(polyOrd,NULL,inputOrdY,inputOrdZ) != NULL) {
    460456        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    461457        return 61;
     
    463459    // Attempt to invoke function with null input vector
    464460    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    465     if(psDPolynomial3DEvalVector(polyOrd,inputOrdX,NULL,inputOrdZ) != NULL) {
     461    if(psPolynomial3DEvalVector(polyOrd,inputOrdX,NULL,inputOrdZ) != NULL) {
    466462        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    467463        return 62;
     
    469465    // Attempt to invoke function with null input vector
    470466    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    471     if(psDPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,NULL) != NULL) {
     467    if(psPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,NULL) != NULL) {
    472468        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    473469        return 63;
     
    477473    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    478474    inputOrdX->type.type = PS_TYPE_U8;
    479     if(psDPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     475    if(psPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    480476        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    481477        return 64;
     
    485481    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    486482    inputOrdY->type.type = PS_TYPE_U8;
    487     if(psDPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     483    if(psPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    488484        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    489485        return 65;
     
    493489    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    494490    inputOrdZ->type.type = PS_TYPE_U8;
    495     if(psDPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     491    if(psPolynomial3DEvalVector(polyOrd,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    496492        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    497493        return 66;
  • trunk/psLib/test/math/tst_psFunc11.c

    r4547 r4581  
    44*  ORD and CHEB type polynomials.
    55*
    6 *  @version  $Revision: 1.1 $  $Name: not supported by cvs2svn $
    7 *  @date  $Date: 2005-07-13 02:47:00 $
     6*  @version  $Revision: 1.2 $  $Name: not supported by cvs2svn $
     7*  @date  $Date: 2005-07-20 01:21:13 $
    88*
    99* Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
     
    1919
    2020static psS32 testPoly4DEval(void);
    21 static psS32 testDPoly4DEval(void);
    2221static psS32 testPoly4DEvalVector(void);
    23 static psS32 testDPoly4DEvalVector(void);
    2422
    2523testDescription tests[] = {
    2624                              {testPoly4DEval,583,"psPolynomial4DEval",0,false},
    27                               {testDPoly4DEval,582,"psDPolynomial4DEval",0,false},
    2825                              {testPoly4DEvalVector,000,"psPolynomial4DEvalVector",0,false},
    29                               {testDPoly4DEvalVector,000,"psDPolynomial4DEvalVector",0,false},
    3026                              {NULL}
    3127                          };
     
    378374
    379375// This test will verify operation of 1D polynomial evaluation
    380 psS32 testPoly4DEval(void)
     376/*psS32 testPoly4DEval(void)
    381377{
    382378    psF32  result;
    383379    psF32  resultCheb;
    384 
     380 
    385381    // Allocate polynomial structure
    386382    psPolynomial4D*  polyOrd  = psPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
     
    418414    psFree(polyOrd);
    419415    psFree(polyCheb);
    420 
     416 
    421417    // Allocate polynomial with invalid type
    422418    polyOrd = psPolynomial4DAlloc(TERMS, TERMS, TERMS, TERMS, 99);
     
    429425    }
    430426    psFree(polyOrd);
    431 
     427 
    432428    return 0;
    433429}
    434 
     430*/
    435431// This test will verify operation of 1D polynomial evaluation
    436 psS32 testDPoly4DEval(void)
     432psS32 testPoly4DEval(void)
    437433{
    438434    psF64  result;
     
    440436
    441437    // Allocate polynomial structure
    442     psDPolynomial4D*  polyOrd = psDPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
    443     psDPolynomial4D*  polyCheb = psDPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
     438    psPolynomial4D*  polyOrd = psPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
     439    psPolynomial4D*  polyCheb = psPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    444440    // Set polynomial members
    445441    for(psS32 i = 0; i < TERMS; i++) {
     
    457453    // Evaluate test points and verify results
    458454    for(psS32 i = 0; i < TESTPOINTS; i++) {
    459         result = psDPolynomial4DEval(polyOrd,Dpoly4DWXYZValue[i][0],Dpoly4DWXYZValue[i][1],
    460                                      Dpoly4DWXYZValue[i][2],Dpoly4DWXYZValue[i][3]);
     455        result = psPolynomial4DEval(polyOrd,Dpoly4DWXYZValue[i][0],Dpoly4DWXYZValue[i][1],
     456                                    Dpoly4DWXYZValue[i][2],Dpoly4DWXYZValue[i][3]);
    461457        if(fabs(Dpoly4DResult[i]-result) > ERROR_TOL ) {
    462458            psError(PS_ERR_UNKNOWN,true,"Evaluated value %lg not as expected %lg",
     
    464460            return i;
    465461        }
    466         resultCheb = psDPolynomial4DEval(polyCheb,Dpoly4DWXYZChebValue[i][0],Dpoly4DWXYZChebValue[i][1],
    467                                          Dpoly4DWXYZChebValue[i][2],Dpoly4DWXYZChebValue[i][3]);
     462        resultCheb = psPolynomial4DEval(polyCheb,Dpoly4DWXYZChebValue[i][0],Dpoly4DWXYZChebValue[i][1],
     463                                        Dpoly4DWXYZChebValue[i][2],Dpoly4DWXYZChebValue[i][3]);
    468464        if(fabs(Dpoly4DChebResult[i]-resultCheb) > ERROR_TOL ) {
    469465            psError(PS_ERR_UNKNOWN,true,"Evaluated Chebyshev value %lg not as expected %lg",
     
    476472
    477473    // Allocate polynomial with invalid type
    478     polyOrd = psDPolynomial4DAlloc(TERMS, TERMS, TERMS, TERMS, 99);
     474    polyOrd = psPolynomial4DAlloc(TERMS, TERMS, TERMS, TERMS, 99);
    479475    // Attempt to evaluation invalid polynomial type
    480476    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message invalid type");
    481     result = psDPolynomial4DEval(polyOrd,0.0, 0.0, 0.0, 0.0);
     477    result = psPolynomial4DEval(polyOrd,0.0, 0.0, 0.0, 0.0);
    482478    if ( !isnan(result) ) {
    483479        psError(PS_ERR_UNKNOWN,true,"Did not return NAN for invalid polynomial type");
     
    489485}
    490486
    491 psS32 testPoly4DEvalVector(void)
     487/*psS32 testPoly4DEvalVector(void)
    492488{
    493489    // Allocate polynomial
    494490    psPolynomial4D* polyOrd  = psPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
    495491    psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    496 
     492 
    497493    // Set polynomial members
    498494    for(psS32 i = 0; i < TERMS; i++) {
     
    508504        }
    509505    }
    510 
     506 
    511507    // Create input vectors
    512508    psVector* inputOrdW  = psVectorAlloc(TESTPOINTS, PS_TYPE_F32);
     
    528524        inputChebZ->data.F32[i] = poly4DWXYZChebValue[i][3];
    529525    }
    530 
     526 
    531527    // Evaluate the vectors
    532528    psVector* outputOrd = psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ);
     
    550546        return 2;
    551547    }
    552 
     548 
    553549    // Verify the results
    554550    for(psS32 i = 0; i < TESTPOINTS; i++) {
     
    564560        }
    565561    }
    566 
     562 
    567563    // Attempt to invoke function with null polynomial
    568564    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
     
    571567        return 60;
    572568    }
    573 
     569 
    574570    // Attempt to invoke function with null input vector
    575571    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
     
    596592        return 64;
    597593    }
    598 
     594 
    599595    // Attempt to invoke function with a non F32 type input vector
    600596    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
     
    629625    }
    630626    inputOrdW->type.type = PS_TYPE_F32;
    631 
     627 
    632628    psFree(inputOrdW);
    633629    psFree(inputOrdX);
     
    642638    psFree(polyOrd);
    643639    psFree(polyCheb);
    644 
     640 
    645641    return 0;
    646642}
    647 
    648 psS32 testDPoly4DEvalVector(void)
     643*/
     644psS32 testPoly4DEvalVector(void)
    649645{
    650646    // Allocate polynomial
    651     psDPolynomial4D* polyOrd = psDPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
    652     psDPolynomial4D* polyCheb = psDPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
     647    psPolynomial4D* polyOrd = psPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_ORD);
     648    psPolynomial4D* polyCheb = psPolynomial4DAlloc(TERMS,TERMS,TERMS,TERMS,PS_POLYNOMIAL_CHEB);
    653649
    654650    // Set polynomial members
     
    687683
    688684    // Evaluate the vectors
    689     psVector* outputOrd = psDPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ);
     685    psVector* outputOrd = psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ);
    690686    if(outputOrd == NULL) {
    691687        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    697693        return 2;
    698694    }
    699     psVector* outputCheb = psDPolynomial4DEvalVector(polyCheb,inputChebW,inputChebX,inputChebY,inputChebZ);
     695    psVector* outputCheb = psPolynomial4DEvalVector(polyCheb,inputChebW,inputChebX,inputChebY,inputChebZ);
    700696    if(outputCheb == NULL) {
    701697        psError(PS_ERR_UNKNOWN,true,"Unexpected return of NULL.");
     
    724720    // Attempt to invoke function with null polynomial
    725721    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL polynomial");
    726     if(psDPolynomial4DEvalVector(NULL,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     722    if(psPolynomial4DEvalVector(NULL,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    727723        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL polynomial");
    728724        return 60;
     
    731727    // Attempt to invoke function with null input vector
    732728    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    733     if(psDPolynomial4DEvalVector(polyOrd,NULL,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     729    if(psPolynomial4DEvalVector(polyOrd,NULL,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    734730        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    735731        return 61;
     
    737733    // Attempt to invoke function with null input vector
    738734    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    739     if(psDPolynomial4DEvalVector(polyOrd,inputOrdW,NULL,inputOrdY,inputOrdZ) != NULL) {
     735    if(psPolynomial4DEvalVector(polyOrd,inputOrdW,NULL,inputOrdY,inputOrdZ) != NULL) {
    740736        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    741737        return 62;
     
    743739    // Attempt to invoke function with null input vector
    744740    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    745     if(psDPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,NULL,inputOrdZ) != NULL) {
     741    if(psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,NULL,inputOrdZ) != NULL) {
    746742        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    747743        return 63;
     
    749745    // Attempt to invoke function with null input vector
    750746    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL input vector");
    751     if(psDPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,NULL) != NULL) {
     747    if(psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,NULL) != NULL) {
    752748        psError(PS_ERR_UNKNOWN,true,"Return of NULL expected for NULL input vector");
    753749        return 64;
     
    757753    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    758754    inputOrdX->type.type = PS_TYPE_U8;
    759     if(psDPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     755    if(psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    760756        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    761757        return 65;
     
    765761    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    766762    inputOrdY->type.type = PS_TYPE_U8;
    767     if(psDPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     763    if(psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    768764        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    769765        return 66;
     
    773769    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    774770    inputOrdZ->type.type = PS_TYPE_U8;
    775     if(psDPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     771    if(psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    776772        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    777773        return 67;
     
    781777    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid input type");
    782778    inputOrdW->type.type = PS_TYPE_U8;
    783     if(psDPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
     779    if(psPolynomial4DEvalVector(polyOrd,inputOrdW,inputOrdX,inputOrdY,inputOrdZ) != NULL) {
    784780        psError(PS_ERR_UNKNOWN,true,"Return NULL expected for non-F64 input vector");
    785781        return 68;
  • trunk/psLib/test/math/verified/tst_psFunc00.stderr

    r4547 r4581  
    3535---> TESTPOINT PASSED (psPolynomialXD{psPolynomial4DAlloc} | tst_psFunc00.c)
    3636
    37 /***************************** TESTPOINT ******************************************\
    38 *             TestFile: tst_psFunc00.c                                             *
    39 *            TestPoint: psPolynomialXD{psDPolynomial1DAlloc}                       *
    40 *             TestType: Positive                                                   *
    41 \**********************************************************************************/
    42 
    43 
    44 ---> TESTPOINT PASSED (psPolynomialXD{psDPolynomial1DAlloc} | tst_psFunc00.c)
    45 
    46 /***************************** TESTPOINT ******************************************\
    47 *             TestFile: tst_psFunc00.c                                             *
    48 *            TestPoint: psPolynomialXD{psDPolynomial2DAlloc}                       *
    49 *             TestType: Positive                                                   *
    50 \**********************************************************************************/
    51 
    52 
    53 ---> TESTPOINT PASSED (psPolynomialXD{psDPolynomial2DAlloc} | tst_psFunc00.c)
    54 
    55 /***************************** TESTPOINT ******************************************\
    56 *             TestFile: tst_psFunc00.c                                             *
    57 *            TestPoint: psPolynomialXD{psDPolynomial3DAlloc}                       *
    58 *             TestType: Positive                                                   *
    59 \**********************************************************************************/
    60 
    61 
    62 ---> TESTPOINT PASSED (psPolynomialXD{psDPolynomial3DAlloc} | tst_psFunc00.c)
    63 
    64 /***************************** TESTPOINT ******************************************\
    65 *             TestFile: tst_psFunc00.c                                             *
    66 *            TestPoint: psPolynomialXD{psDPolynomial4DAlloc}                       *
    67 *             TestType: Positive                                                   *
    68 \**********************************************************************************/
    69 
    70 
    71 ---> TESTPOINT PASSED (psPolynomialXD{psDPolynomial4DAlloc} | tst_psFunc00.c)
    72 
  • trunk/psLib/test/math/verified/tst_psFunc08.stderr

    r4547 r4581  
    1111
    1212---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial1DEval} | tst_psFunc08.c)
    13 
    14 /***************************** TESTPOINT ******************************************\
    15 *             TestFile: tst_psFunc08.c                                             *
    16 *            TestPoint: psPolynomialXDEval{psDPolynomial1DEval}                    *
    17 *             TestType: Positive                                                   *
    18 \**********************************************************************************/
    19 
    20 <DATE><TIME>|<HOST>|I|testDPoly1DEval
    21     Following should generate error message invalid type
    22 <DATE><TIME>|<HOST>|E|psDPolynomial1DEval (FILE:LINENO)
    23     Unknown polynomial type 0x63 found.  Evaluation failed.
    24 
    25 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial1DEval} | tst_psFunc08.c)
    2613
    2714/***************************** TESTPOINT ******************************************\
     
    4633---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial1DEvalVector} | tst_psFunc08.c)
    4734
    48 /***************************** TESTPOINT ******************************************\
    49 *             TestFile: tst_psFunc08.c                                             *
    50 *            TestPoint: psPolynomialXDEval{psDPolynomial1DEvalVector}              *
    51 *             TestType: Positive                                                   *
    52 \**********************************************************************************/
    53 
    54 <DATE><TIME>|<HOST>|I|testDPoly1DEvalVector
    55     Following should generate an error message for NULL polynomial
    56 <DATE><TIME>|<HOST>|E|psDPolynomial1DEvalVector (FILE:LINENO)
    57     Unallowable operation: polynomial poly or its coeffs is NULL.
    58 <DATE><TIME>|<HOST>|I|testDPoly1DEvalVector
    59     Following should generate an error message for NULL input vector
    60 <DATE><TIME>|<HOST>|E|psDPolynomial1DEvalVector (FILE:LINENO)
    61     Unallowable operation: psVector x or its data is NULL.
    62 <DATE><TIME>|<HOST>|I|testDPoly1DEvalVector
    63     Following should generate an error message for invalid input type
    64 <DATE><TIME>|<HOST>|E|psDPolynomial1DEvalVector (FILE:LINENO)
    65     Unallowable operation: psVector x has incorrect type.
    66 
    67 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial1DEvalVector} | tst_psFunc08.c)
    68 
  • trunk/psLib/test/math/verified/tst_psFunc09.stderr

    r4547 r4581  
    1111
    1212---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial2DEval} | tst_psFunc09.c)
    13 
    14 /***************************** TESTPOINT ******************************************\
    15 *             TestFile: tst_psFunc09.c                                             *
    16 *            TestPoint: psPolynomialXDEval{psDPolynomial2DEval}                    *
    17 *             TestType: Positive                                                   *
    18 \**********************************************************************************/
    19 
    20 <DATE><TIME>|<HOST>|I|testDPoly2DEval
    21     Following should generate error message invalid type
    22 <DATE><TIME>|<HOST>|E|psDPolynomial2DEval (FILE:LINENO)
    23     Unknown polynomial type 0x63 found.  Evaluation failed.
    24 
    25 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial2DEval} | tst_psFunc09.c)
    2613
    2714/***************************** TESTPOINT ******************************************\
     
    5441---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial2DEvalVector} | tst_psFunc09.c)
    5542
    56 /***************************** TESTPOINT ******************************************\
    57 *             TestFile: tst_psFunc09.c                                             *
    58 *            TestPoint: psPolynomialXDEval{psDPolynomial2DEvalVector}              *
    59 *             TestType: Positive                                                   *
    60 \**********************************************************************************/
    61 
    62 <DATE><TIME>|<HOST>|I|testDPoly2DEvalVector
    63     Following should generate an error message for NULL polynomial
    64 <DATE><TIME>|<HOST>|E|psDPolynomial2DEvalVector (FILE:LINENO)
    65     Unallowable operation: polynomial poly or its coeffs is NULL.
    66 <DATE><TIME>|<HOST>|I|testDPoly2DEvalVector
    67     Following should generate an error message for NULL input vector
    68 <DATE><TIME>|<HOST>|E|psDPolynomial2DEvalVector (FILE:LINENO)
    69     Unallowable operation: psVector x or its data is NULL.
    70 <DATE><TIME>|<HOST>|I|testDPoly2DEvalVector
    71     Following should generate an error message for NULL input vector
    72 <DATE><TIME>|<HOST>|E|psDPolynomial2DEvalVector (FILE:LINENO)
    73     Unallowable operation: psVector y or its data is NULL.
    74 <DATE><TIME>|<HOST>|I|testDPoly2DEvalVector
    75     Following should generate an error message for invalid input type
    76 <DATE><TIME>|<HOST>|E|psDPolynomial2DEvalVector (FILE:LINENO)
    77     Unallowable operation: psVector x has incorrect type.
    78 <DATE><TIME>|<HOST>|I|testDPoly2DEvalVector
    79     Following should generate an error message for invalid input type
    80 <DATE><TIME>|<HOST>|E|psDPolynomial2DEvalVector (FILE:LINENO)
    81     Unallowable operation: psVector y has incorrect type.
    82 
    83 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial2DEvalVector} | tst_psFunc09.c)
    84 
  • trunk/psLib/test/math/verified/tst_psFunc10.stderr

    r4547 r4581  
    1111
    1212---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial3DEval} | tst_psFunc10.c)
    13 
    14 /***************************** TESTPOINT ******************************************\
    15 *             TestFile: tst_psFunc10.c                                             *
    16 *            TestPoint: psPolynomialXDEval{psDPolynomial3DEval}                    *
    17 *             TestType: Positive                                                   *
    18 \**********************************************************************************/
    19 
    20 <DATE><TIME>|<HOST>|I|testDPoly3DEval
    21     Following should generate error message invalid type
    22 <DATE><TIME>|<HOST>|E|psDPolynomial3DEval (FILE:LINENO)
    23     Unknown polynomial type 0x63 found.  Evaluation failed.
    24 
    25 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial3DEval} | tst_psFunc10.c)
    2613
    2714/***************************** TESTPOINT ******************************************\
     
    6249---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial3DEvalVector} | tst_psFunc10.c)
    6350
    64 /***************************** TESTPOINT ******************************************\
    65 *             TestFile: tst_psFunc10.c                                             *
    66 *            TestPoint: psPolynomialXDEval{psDPolynomial3DEvalVector}              *
    67 *             TestType: Positive                                                   *
    68 \**********************************************************************************/
    69 
    70 <DATE><TIME>|<HOST>|I|testDPoly3DEvalVector
    71     Following should generate an error message for NULL polynomial
    72 <DATE><TIME>|<HOST>|E|psDPolynomial3DEvalVector (FILE:LINENO)
    73     Unallowable operation: polynomial poly or its coeffs is NULL.
    74 <DATE><TIME>|<HOST>|I|testDPoly3DEvalVector
    75     Following should generate an error message for NULL input vector
    76 <DATE><TIME>|<HOST>|E|psDPolynomial3DEvalVector (FILE:LINENO)
    77     Unallowable operation: psVector x or its data is NULL.
    78 <DATE><TIME>|<HOST>|I|testDPoly3DEvalVector
    79     Following should generate an error message for NULL input vector
    80 <DATE><TIME>|<HOST>|E|psDPolynomial3DEvalVector (FILE:LINENO)
    81     Unallowable operation: psVector y or its data is NULL.
    82 <DATE><TIME>|<HOST>|I|testDPoly3DEvalVector
    83     Following should generate an error message for NULL input vector
    84 <DATE><TIME>|<HOST>|E|psDPolynomial3DEvalVector (FILE:LINENO)
    85     Unallowable operation: psVector z or its data is NULL.
    86 <DATE><TIME>|<HOST>|I|testDPoly3DEvalVector
    87     Following should generate an error message for invalid input type
    88 <DATE><TIME>|<HOST>|E|psDPolynomial3DEvalVector (FILE:LINENO)
    89     Unallowable operation: psVector x has incorrect type.
    90 <DATE><TIME>|<HOST>|I|testDPoly3DEvalVector
    91     Following should generate an error message for invalid input type
    92 <DATE><TIME>|<HOST>|E|psDPolynomial3DEvalVector (FILE:LINENO)
    93     Unallowable operation: psVector y has incorrect type.
    94 <DATE><TIME>|<HOST>|I|testDPoly3DEvalVector
    95     Following should generate an error message for invalid input type
    96 <DATE><TIME>|<HOST>|E|psDPolynomial3DEvalVector (FILE:LINENO)
    97     Unallowable operation: psVector z has incorrect type.
    98 
    99 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial3DEvalVector} | tst_psFunc10.c)
    100 
  • trunk/psLib/test/math/verified/tst_psFunc11.stderr

    r4547 r4581  
    1111
    1212---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial4DEval} | tst_psFunc11.c)
    13 
    14 /***************************** TESTPOINT ******************************************\
    15 *             TestFile: tst_psFunc11.c                                             *
    16 *            TestPoint: psPolynomialXDEval{psDPolynomial4DEval}                    *
    17 *             TestType: Positive                                                   *
    18 \**********************************************************************************/
    19 
    20 <DATE><TIME>|<HOST>|I|testDPoly4DEval
    21     Following should generate error message invalid type
    22 <DATE><TIME>|<HOST>|E|psDPolynomial4DEval (FILE:LINENO)
    23     Unknown polynomial type 0x63 found.  Evaluation failed.
    24 
    25 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial4DEval} | tst_psFunc11.c)
    2613
    2714/***************************** TESTPOINT ******************************************\
     
    7057---> TESTPOINT PASSED (psPolynomialXDEval{psPolynomial4DEvalVector} | tst_psFunc11.c)
    7158
    72 /***************************** TESTPOINT ******************************************\
    73 *             TestFile: tst_psFunc11.c                                             *
    74 *            TestPoint: psPolynomialXDEval{psDPolynomial4DEvalVector}              *
    75 *             TestType: Positive                                                   *
    76 \**********************************************************************************/
    77 
    78 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    79     Following should generate an error message for NULL polynomial
    80 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    81     Unallowable operation: polynomial poly or its coeffs is NULL.
    82 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    83     Following should generate an error message for NULL input vector
    84 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    85     Unallowable operation: psVector x or its data is NULL.
    86 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    87     Following should generate an error message for NULL input vector
    88 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    89     Unallowable operation: psVector y or its data is NULL.
    90 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    91     Following should generate an error message for NULL input vector
    92 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    93     Unallowable operation: psVector z or its data is NULL.
    94 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    95     Following should generate an error message for NULL input vector
    96 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    97     Unallowable operation: psVector t or its data is NULL.
    98 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    99     Following should generate an error message for invalid input type
    100 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    101     Unallowable operation: psVector y has incorrect type.
    102 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    103     Following should generate an error message for invalid input type
    104 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    105     Unallowable operation: psVector z has incorrect type.
    106 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    107     Following should generate an error message for invalid input type
    108 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    109     Unallowable operation: psVector t has incorrect type.
    110 <DATE><TIME>|<HOST>|I|testDPoly4DEvalVector
    111     Following should generate an error message for invalid input type
    112 <DATE><TIME>|<HOST>|E|psDPolynomial4DEvalVector (FILE:LINENO)
    113     Unallowable operation: psVector x has incorrect type.
    114 
    115 ---> TESTPOINT PASSED (psPolynomialXDEval{psDPolynomial4DEvalVector} | tst_psFunc11.c)
    116 
Note: See TracChangeset for help on using the changeset viewer.