IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2433


Ignore:
Timestamp:
Nov 24, 2004, 11:59:43 AM (22 years ago)
Author:
gusciora
Message:

Changed the order of the arguments for the polynomial eval functions.

Location:
trunk/psLib/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/dataManip/psDataManipErrors.dat

    r2425 r2433  
    3838psFunctions_NOT_ENOUGH_DATAPOINTS      Given vector does not have enough data points for %d-order interpolation.
    3939#
     40psRandom_UNKNOWN_RANDFOM_NUMBER_GENERATOR_TYPE Unknown Random Number Generator Type
     41#
    4042psMatrix_COUNT_DIFFERS                 Number of elements inconsistent, %d vs %d.  Number of elements must match.
    4143psMatrix_IMAGE_SIZE_DIFFERS            Specified psImage dimensions differed, %dx%d vs %dx%d.
  • trunk/psLib/src/dataManip/psDataManipErrors.h

    r2411 r2433  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-11-24 00:05:54 $
     9 *  @version $Revision: 1.9 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-11-24 21:59:43 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    5454#define PS_ERRORTEXT_psFunctions_TYPE_NOT_SUPPORTED "Input psVector type, %s, is not supported."
    5555#define PS_ERRORTEXT_psFunctions_NOT_ENOUGH_DATAPOINTS "Given vector does not have enough data points for %d-order interpolation."
     56#define PS_ERRORTEXT_psRandom_UNKNOWN_RANDFOM_NUMBER_GENERATOR_TYPE "Unknown Random Number Generator Type"
    5657#define PS_ERRORTEXT_psMatrix_COUNT_DIFFERS "Number of elements inconsistent, %d vs %d.  Number of elements must match."
    5758#define PS_ERRORTEXT_psMatrix_IMAGE_SIZE_DIFFERS "Specified psImage dimensions differed, %dx%d vs %dx%d."
  • trunk/psLib/src/dataManip/psFunctions.c

    r2431 r2433  
    77 *  polynomials.  It also contains a Gaussian functions.
    88 *
    9  *  @version $Revision: 1.68 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-11-24 20:34:13 $
     9 *  @version $Revision: 1.69 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-11-24 21:59:43 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    399399            if (myPoly->mask[loop_x][loop_y] == 0) {
    400400                polySum += myPoly->coeff[loop_x][loop_y] *
    401                            psPolynomial1DEval(x, chebPolys[loop_x]) *
    402                            psPolynomial1DEval(y, chebPolys[loop_y]);
     401                           psPolynomial1DEval(chebPolys[loop_x], x) *
     402                           psPolynomial1DEval(chebPolys[loop_y], y);
    403403            }
    404404        }
     
    465465                if (myPoly->mask[loop_x][loop_y][loop_z] == 0) {
    466466                    polySum += myPoly->coeff[loop_x][loop_y][loop_z] *
    467                                psPolynomial1DEval(x, chebPolys[loop_x]) *
    468                                psPolynomial1DEval(y, chebPolys[loop_y]) *
    469                                psPolynomial1DEval(z, chebPolys[loop_z]);
     467                               psPolynomial1DEval(chebPolys[loop_x], x) *
     468                               psPolynomial1DEval(chebPolys[loop_y], y) *
     469                               psPolynomial1DEval(chebPolys[loop_z], z);
    470470                }
    471471            }
     
    545545                    if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) {
    546546                        polySum += myPoly->coeff[loop_w][loop_x][loop_y][loop_z] *
    547                                    psPolynomial1DEval(w, chebPolys[loop_w]) *
    548                                    psPolynomial1DEval(x, chebPolys[loop_x]) *
    549                                    psPolynomial1DEval(y, chebPolys[loop_y]) *
    550                                    psPolynomial1DEval(z, chebPolys[loop_z]);
     547                                   psPolynomial1DEval(chebPolys[loop_w], w) *
     548                                   psPolynomial1DEval(chebPolys[loop_x], x) *
     549                                   psPolynomial1DEval(chebPolys[loop_y], y) *
     550                                   psPolynomial1DEval(chebPolys[loop_z], z);
    551551                    }
    552552                }
     
    651651            if (myPoly->mask[loop_x][loop_y] == 0) {
    652652                polySum += myPoly->coeff[loop_x][loop_y] *
    653                            psPolynomial1DEval(x, chebPolys[loop_x]) *
    654                            psPolynomial1DEval(y, chebPolys[loop_y]);
     653                           psPolynomial1DEval(chebPolys[loop_x], x) *
     654                           psPolynomial1DEval(chebPolys[loop_y], y);
    655655            }
    656656        }
     
    718718                if (myPoly->mask[loop_x][loop_y][loop_z] == 0) {
    719719                    polySum += myPoly->coeff[loop_x][loop_y][loop_z] *
    720                                psPolynomial1DEval(x, chebPolys[loop_x]) *
    721                                psPolynomial1DEval(y, chebPolys[loop_y]) *
    722                                psPolynomial1DEval(z, chebPolys[loop_z]);
     720                               psPolynomial1DEval(chebPolys[loop_x], x) *
     721                               psPolynomial1DEval(chebPolys[loop_y], y) *
     722                               psPolynomial1DEval(chebPolys[loop_z], z);
    723723                }
    724724            }
     
    798798                    if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) {
    799799                        polySum += myPoly->coeff[loop_w][loop_x][loop_y][loop_z] *
    800                                    psPolynomial1DEval(w, chebPolys[loop_w]) *
    801                                    psPolynomial1DEval(x, chebPolys[loop_x]) *
    802                                    psPolynomial1DEval(y, chebPolys[loop_y]) *
    803                                    psPolynomial1DEval(z, chebPolys[loop_z]);
     800                                   psPolynomial1DEval(chebPolys[loop_w], w) *
     801                                   psPolynomial1DEval(chebPolys[loop_x], x) *
     802                                   psPolynomial1DEval(chebPolys[loop_y], y) *
     803                                   psPolynomial1DEval(chebPolys[loop_z], z);
    804804                    }
    805805                }
     
    11601160}
    11611161
    1162 float psPolynomial1DEval(float x, const psPolynomial1D* myPoly)
     1162float psPolynomial1DEval(const psPolynomial1D* myPoly, float x)
    11631163{
    11641164    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    11761176}
    11771177
    1178 psVector *psPolynomial1DEvalVector(const psVector *x,
    1179                                    const psPolynomial1D *myPoly)
     1178psVector *psPolynomial1DEvalVector(const psPolynomial1D *myPoly,
     1179                                   const psVector *x)
    11801180{
    11811181    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    11891189    tmp = psVectorAlloc(x->n, PS_TYPE_F32);
    11901190    for (i=0;i<x->n;i++) {
    1191         tmp->data.F32[i] = psPolynomial1DEval(x->data.F32[i], myPoly);
     1191        tmp->data.F32[i] = psPolynomial1DEval(myPoly, x->data.F32[i]);
    11921192    }
    11931193
     
    11981198}
    11991199
    1200 float psPolynomial2DEval(float x, float y, const psPolynomial2D* myPoly)
     1200float psPolynomial2DEval(const psPolynomial2D* myPoly, float x, float y)
    12011201{
    12021202    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    12141214}
    12151215
    1216 psVector *psPolynomial2DEvalVector(const psVector *x,
    1217                                    const psVector *y,
    1218                                    const psPolynomial2D *myPoly)
     1216psVector *psPolynomial2DEvalVector(const psPolynomial2D *myPoly,
     1217                                   const psVector *x,
     1218                                   const psVector *y)
     1219
    12191220{
    12201221    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    12371238    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    12381239    for (i=0;i<vecLen;i++) {
    1239         tmp->data.F32[i] = psPolynomial2DEval(myX->data.F32[i],
    1240                                               myY->data.F32[i],
    1241                                               myPoly);
     1240        tmp->data.F32[i] = psPolynomial2DEval(myPoly,
     1241                                              myX->data.F32[i],
     1242                                              myY->data.F32[i]);
     1243
    12421244    }
    12431245
     
    12511253}
    12521254
    1253 float psPolynomial3DEval(float x, float y, float z, const psPolynomial3D* myPoly)
     1255float psPolynomial3DEval(const psPolynomial3D* myPoly, float x, float y, float z)
    12541256{
    12551257    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    12671269}
    12681270
    1269 psVector *psPolynomial3DEvalVector(const psVector *x,
     1271psVector *psPolynomial3DEvalVector(const psPolynomial3D *myPoly,
     1272                                   const psVector *x,
    12701273                                   const psVector *y,
    1271                                    const psVector *z,
    1272                                    const psPolynomial3D *myPoly)
     1274                                   const psVector *z)
     1275
    12731276{
    12741277    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    12971300    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    12981301    for (i=0;i<vecLen;i++) {
    1299         tmp->data.F32[i] = psPolynomial3DEval(myX->data.F32[i],
     1302        tmp->data.F32[i] = psPolynomial3DEval(myPoly,
     1303                                              myX->data.F32[i],
    13001304                                              myY->data.F32[i],
    1301                                               myZ->data.F32[i],
    1302                                               myPoly);
     1305                                              myZ->data.F32[i]);
     1306
    13031307    }
    13041308
     
    13151319}
    13161320
    1317 float psPolynomial4DEval(float w, float x, float y, float z, const psPolynomial4D* myPoly)
     1321float psPolynomial4DEval(const psPolynomial4D* myPoly, float w, float x, float y, float z)
    13181322{
    13191323    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    13311335}
    13321336
    1333 psVector *psPolynomial4DEvalVector(const psVector *w,
     1337psVector *psPolynomial4DEvalVector(const psPolynomial4D *myPoly,
     1338                                   const psVector *w,
    13341339                                   const psVector *x,
    13351340                                   const psVector *y,
    1336                                    const psVector *z,
    1337                                    const psPolynomial4D *myPoly)
     1341                                   const psVector *z)
    13381342{
    13391343    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    13681372    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    13691373    for (i=0;i<vecLen;i++) {
    1370         tmp->data.F32[i] = psPolynomial4DEval(myW->data.F32[i],
     1374        tmp->data.F32[i] = psPolynomial4DEval(myPoly,
     1375                                              myW->data.F32[i],
    13711376                                              myX->data.F32[i],
    13721377                                              myY->data.F32[i],
    1373                                               myZ->data.F32[i],
    1374                                               myPoly);
     1378                                              myZ->data.F32[i]);
     1379
    13751380    }
    13761381
     
    15551560
    15561561
    1557 double psDPolynomial1DEval(double x, const psDPolynomial1D* myPoly)
     1562double psDPolynomial1DEval(const psDPolynomial1D* myPoly, double x)
    15581563{
    15591564    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    15711576}
    15721577
    1573 psVector *psDPolynomial1DEvalVector(const psVector *x,
    1574                                     const psDPolynomial1D *myPoly)
     1578psVector *psDPolynomial1DEvalVector(const psDPolynomial1D *myPoly,
     1579                                    const psVector *x)
     1580
    15751581{
    15761582    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    15841590    tmp = psVectorAlloc(x->n, PS_TYPE_F64);
    15851591    for (i=0;i<x->n;i++) {
    1586         tmp->data.F64[i] = psDPolynomial1DEval(x->data.F64[i], myPoly);
     1592        tmp->data.F64[i] = psDPolynomial1DEval(myPoly,
     1593                                               x->data.F64[i]);
    15871594    }
    15881595
     
    15941601
    15951602
    1596 double psDPolynomial2DEval(double x, double y, const psDPolynomial2D* myPoly)
     1603double psDPolynomial2DEval(const psDPolynomial2D* myPoly,
     1604                           double x,
     1605                           double y)
    15971606{
    15981607    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    16101619}
    16111620
    1612 psVector *psDPolynomial2DEvalVector(const psVector *x,
    1613                                     const psVector *y,
    1614                                     const psDPolynomial2D *myPoly)
     1621psVector *psDPolynomial2DEvalVector(const psDPolynomial2D *myPoly,
     1622                                    const psVector *x,
     1623                                    const psVector *y)
    16151624{
    16161625    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    16331642    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    16341643    for (i=0;i<vecLen;i++) {
    1635         tmp->data.F64[i] = psDPolynomial2DEval(myX->data.F64[i],
    1636                                                myY->data.F64[i],
    1637                                                myPoly);
     1644        tmp->data.F64[i] = psDPolynomial2DEval(myPoly,
     1645                                               myX->data.F64[i],
     1646                                               myY->data.F64[i]);
     1647
    16381648    }
    16391649
     
    16481658
    16491659
    1650 double psDPolynomial3DEval(double x, double y, double z, const psDPolynomial3D* myPoly)
     1660double psDPolynomial3DEval(const psDPolynomial3D* myPoly,
     1661                           double x,
     1662                           double y,
     1663                           double z)
    16511664{
    16521665    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    16641677}
    16651678
    1666 psVector *psDPolynomial3DEvalVector(const psVector *x,
     1679psVector *psDPolynomial3DEvalVector(const psDPolynomial3D *myPoly,
     1680                                    const psVector *x,
    16671681                                    const psVector *y,
    1668                                     const psVector *z,
    1669                                     const psDPolynomial3D *myPoly)
     1682                                    const psVector *z)
     1683
    16701684{
    16711685    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    16941708    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    16951709    for (i=0;i<vecLen;i++) {
    1696         tmp->data.F64[i] = psDPolynomial3DEval(myX->data.F64[i],
     1710        tmp->data.F64[i] = psDPolynomial3DEval(myPoly,
     1711                                               myX->data.F64[i],
    16971712                                               myY->data.F64[i],
    1698                                                myZ->data.F64[i],
    1699                                                myPoly);
     1713                                               myZ->data.F64[i]);
     1714
    17001715    }
    17011716
     
    17121727}
    17131728
    1714 double psDPolynomial4DEval(double w, double x, double y, double z, const psDPolynomial4D* myPoly)
     1729double psDPolynomial4DEval(const psDPolynomial4D* myPoly,
     1730                           double w,
     1731                           double x,
     1732                           double y,
     1733                           double z)
    17151734{
    17161735    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    17281747}
    17291748
    1730 psVector *psDPolynomial4DEvalVector(const psVector *w,
     1749psVector *psDPolynomial4DEvalVector(const psDPolynomial4D *myPoly,
     1750                                    const psVector *w,
    17311751                                    const psVector *x,
    17321752                                    const psVector *y,
    1733                                     const psVector *z,
    1734                                     const psDPolynomial4D *myPoly)
     1753                                    const psVector *z)
    17351754{
    17361755    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    17651784    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    17661785    for (i=0;i<vecLen;i++) {
    1767         tmp->data.F64[i] = psDPolynomial4DEval(myW->data.F64[i],
     1786        tmp->data.F64[i] = psDPolynomial4DEval(myPoly,
     1787                                               myW->data.F64[i],
    17681788                                               myX->data.F64[i],
    17691789                                               myY->data.F64[i],
    1770                                                myZ->data.F64[i],
    1771                                                myPoly);
     1790                                               myZ->data.F64[i]);
     1791
    17721792    }
    17731793
     
    21102130
    21112131        if (x < (spline->domains)[0]) {
    2112             return(psPolynomial1DEval(x, spline->spline[0]));
     2132            return(psPolynomial1DEval(spline->spline[0],
     2133                                      x));
    21132134        } else if (x > (spline->domains)[n-1]) {
    2114             return(psPolynomial1DEval(x, spline->spline[n-1]));
    2115         }
    2116     }
    2117 
    2118     return(psPolynomial1DEval(x, spline->spline[binNum]));
     2135            return(psPolynomial1DEval(spline->spline[n-1],
     2136                                      x));
     2137        }
     2138    }
     2139
     2140    return(psPolynomial1DEval(spline->spline[binNum],
     2141                              x));
    21192142}
    21202143
  • trunk/psLib/src/dataManip/psFunctions.h

    r2431 r2433  
    1212*  @author George Gusciora, MHPCC
    1313*
    14 *  @version $Revision: 1.34 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2004-11-24 20:34:13 $
     14*  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2004-11-24 21:59:43 $
    1616*
    1717*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    163163 */
    164164float psPolynomial1DEval(
    165     float x,                           ///< location at which to evaluate
    166     const psPolynomial1D* myPoly       ///< Coefficients for the polynomial
     165    const psPolynomial1D* myPoly,       ///< Coefficients for the polynomial
     166    float x                           ///< location at which to evaluate
    167167);
    168168
     
    172172 */
    173173float psPolynomial2DEval(
     174    const psPolynomial2D* myPoly,       ///< Coefficients for the polynomial
     175    float x,                           ///< x location at which to evaluate
     176    float y                           ///< y location at which to evaluate
     177);
     178
     179/** Evaluates a 3-D polynomial at specific coordinates.
     180 *
     181 *  @return float    result of polynomial at given location
     182 */
     183float psPolynomial3DEval(
     184    const psPolynomial3D* myPoly,       ///< Coefficients for the polynomial
    174185    float x,                           ///< x location at which to evaluate
    175186    float y,                           ///< y location at which to evaluate
    176     const psPolynomial2D* myPoly       ///< Coefficients for the polynomial
    177 );
    178 
    179 /** Evaluates a 3-D polynomial at specific coordinates.
    180  *
    181  *  @return float    result of polynomial at given location
    182  */
    183 float psPolynomial3DEval(
    184     float x,                           ///< x location at which to evaluate
    185     float y,                           ///< y location at which to evaluate
    186     float z,                           ///< z location at which to evaluate
    187     const psPolynomial3D* myPoly       ///< Coefficients for the polynomial
     187    float z                           ///< z location at which to evaluate
    188188);
    189189
     
    193193 */
    194194float psPolynomial4DEval(
     195    const psPolynomial4D* myPoly,       ///< Coefficients for the polynomial
    195196    float w,                           ///< w location at which to evaluate
    196197    float x,                           ///< x location at which to evaluate
    197198    float y,                           ///< y location at which to evaluate
    198     float z,                           ///< z location at which to evaluate
    199     const psPolynomial4D* myPoly       ///< Coefficients for the polynomial
    200 );
    201 
    202 psVector *psPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    203                                    const psPolynomial1D *myPoly   ///< Coefficients for the polynomial
    204                                   );
    205 
    206 psVector *psPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    207                                    const psVector *y,             ///< y locations at which to evaluate
    208                                    const psPolynomial2D *myPoly   ///< Coefficients for the polynomial
    209                                   );
    210 
    211 psVector *psPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    212                                    const psVector *y,             ///< y locations at which to evaluate
    213                                    const psVector *z,             ///< z locations at which to evaluate
    214                                    const psPolynomial3D *myPoly   ///< Coefficients for the polynomial
    215                                   );
    216 
    217 psVector *psPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
    218                                    const psVector *x,             ///< x locations at which to evaluate
    219                                    const psVector *y,             ///< y locations at which to evaluate
    220                                    const psVector *z,             ///< z locations at which to evaluate
    221                                    const psPolynomial4D *myPoly   ///< Coefficients for the polynomial
    222                                   );
     199    float z                           ///< z location at which to evaluate
     200);
     201
     202psVector *psPolynomial1DEvalVector(
     203    const psPolynomial1D *myPoly,   ///< Coefficients for the polynomial
     204    const psVector *x             ///< x locations at which to evaluate
     205);
     206
     207psVector *psPolynomial2DEvalVector(
     208    const psPolynomial2D *myPoly,   ///< Coefficients for the polynomial
     209    const psVector *x,             ///< x locations at which to evaluate
     210    const psVector *y             ///< y locations at which to evaluate
     211);
     212
     213psVector *psPolynomial3DEvalVector(
     214    const psPolynomial3D *myPoly,   ///< Coefficients for the polynomial
     215    const psVector *x,             ///< x locations at which to evaluate
     216    const psVector *y,             ///< y locations at which to evaluate
     217    const psVector *z             ///< z locations at which to evaluate
     218);
     219
     220psVector *psPolynomial4DEvalVector(
     221    const psPolynomial4D *myPoly,   ///< Coefficients for the polynomial
     222    const psVector *w,             ///< w locations at which to evaluate
     223    const psVector *x,             ///< x locations at which to evaluate
     224    const psVector *y,             ///< y locations at which to evaluate
     225    const psVector *z             ///< z locations at which to evaluate
     226);
    223227
    224228/*****************************************************************************/
     
    323327 */
    324328double psDPolynomial1DEval(
    325     double x,                          ///< Value at which to evaluate
    326     const psDPolynomial1D* myPoly      ///< Coefficients for the polynomial
     329    const psDPolynomial1D* myPoly,      ///< Coefficients for the polynomial
     330    double x                          ///< Value at which to evaluate
    327331);
    328332
     
    332336 */
    333337double psDPolynomial2DEval(
     338    const psDPolynomial2D* myPoly,       ///< Coefficients for the polynomial
    334339    double x,                           ///< Value x at which to evaluate
    335     double y,                           ///< Value y at which to evaluate
    336     const psDPolynomial2D* myPoly       ///< Coefficients for the polynomial
     340    double y            ///< Value y at which to evaluate
    337341);
    338342
     
    342346 */
    343347double psDPolynomial3DEval(
     348    const psDPolynomial3D* myPoly,      ///< Coefficients for the polynomial
    344349    double x,                          ///< Value x at which to evaluate
    345350    double y,                          ///< Value y at which to evaluate
    346     double z,                          ///< Value z at which to evaluate
    347     const psDPolynomial3D* myPoly      ///< Coefficients for the polynomial
     351    double z     ///< Value z at which to evaluate
    348352);
    349353
     
    353357 */
    354358double psDPolynomial4DEval(
     359    const psDPolynomial4D* myPoly,      ///< Coefficients for the polynomial
    355360    double w,                          ///< Value w at which to evaluate
    356361    double x,                          ///< Value x at which to evaluate
    357362    double y,                          ///< Value y at which to evaluate
    358     double z,                          ///< Value z at which to evaluate
    359     const psDPolynomial4D* myPoly      ///< Coefficients for the polynomial
    360 );
    361 
    362 psVector *psDPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    363                                     const psDPolynomial1D *myPoly  ///< Coefficients for the polynomial
    364                                    );
    365 
    366 psVector *psDPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    367                                     const psVector *y,             ///< y locations at which to evaluate
    368                                     const psDPolynomial2D *myPoly  ///< Coefficients for the polynomial
    369                                    );
    370 
    371 psVector *psDPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    372                                     const psVector *y,             ///< y locations at which to evaluate
    373                                     const psVector *z,             ///< z locations at which to evaluate
    374                                     const psDPolynomial3D *myPoly  ///< Coefficients for the polynomial
    375                                    );
    376 
    377 psVector *psDPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
    378                                     const psVector *x,             ///< x locations at which to evaluate
    379                                     const psVector *y,             ///< y locations at which to evaluate
    380                                     const psVector *z,             ///< z locations at which to evaluate
    381                                     const psDPolynomial4D *myPoly  ///< Coefficients for the polynomial
    382                                    );
     363    double z     ///< Value z at which to evaluate
     364);
     365
     366psVector *psDPolynomial1DEvalVector(
     367    const psDPolynomial1D *myPoly, ///< Coefficients for the polynomial
     368    const psVector *x             ///< x locations at which to evaluate
     369);
     370
     371psVector *psDPolynomial2DEvalVector(
     372    const psDPolynomial2D *myPoly,  ///< Coefficients for the polynomial
     373    const psVector *x,             ///< x locations at which to evaluate
     374    const psVector *y             ///< y locations at which to evaluate
     375);
     376
     377psVector *psDPolynomial3DEvalVector(
     378    const psDPolynomial3D *myPoly,  ///< Coefficients for the polynomial
     379    const psVector *x,             ///< x locations at which to evaluate
     380    const psVector *y,             ///< y locations at which to evaluate
     381    const psVector *z             ///< z locations at which to evaluate
     382);
     383
     384psVector *psDPolynomial4DEvalVector(
     385    const psDPolynomial4D *myPoly,  ///< Coefficients for the polynomial
     386    const psVector *w,             ///< w locations at which to evaluate
     387    const psVector *x,             ///< x locations at which to evaluate
     388    const psVector *y,             ///< y locations at which to evaluate
     389    const psVector *z             ///< z locations at which to evaluate
     390);
    383391
    384392
  • trunk/psLib/src/dataManip/psRandom.c

    r2432 r2433  
    1010*  @author GLG, MHPCC
    1111*
    12 *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2004-11-24 20:55:01 $
     12*  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2004-11-24 21:59:43 $
    1414*
    1515*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    2020#include <float.h>
    2121#include <math.h>
     22#include <gsl/gsl_rng.h>
     23#include <gsl/gsl_randist.h>
    2224
     25#include "psMemory.h"
    2326#include "psRandom.h"
    2427#include "psScalar.h"
     28#include "psError.h"
     29#include "psTrace.h"
     30#include "psLogMsg.h"
     31#include "psConstants.h"
     32#include "psDataManipErrors.h"
    2533
    2634/*
     
    3947                        psU64 seed)
    4048{
     49    gsl_rng *r = NULL;
     50    psRandom *myRNG = (psRandom *) psAlloc(sizeof(psRandom));
     51
     52    switch (type) {
     53    case PS_RANDOM_TAUS:
     54        r = gsl_rng_alloc(gsl_rng_taus);
     55        myRNG->gsl = r;
     56        return(myRNG);
     57
     58    default:
     59        psError(PS_ERR_UNEXPECTED_NULL,
     60                true,
     61                PS_ERRORTEXT_psRandom_UNKNOWN_RANDFOM_NUMBER_GENERATOR_TYPE);
     62    }
    4163    return(NULL);
    4264}
     
    4466void psRandomReset(psRandom *rand,
    4567                   psU64 seed)
    46 {}
     68{
     69    gsl_rng_set(rand->gsl, seed);
     70}
    4771
    4872psF64 psRandomUniform(const psRandom *r)
    4973{
    50     return(0.0);
     74    return(gsl_rng_uniform(r->gsl));
    5175}
    5276
    5377psF64 psRandomGaussian(const psRandom *r)
    5478{
    55     return(0.0);
     79    // XXX: What should sigma be?
     80    return(gsl_ran_gaussian(r->gsl, 1.0));
    5681}
    5782
    5883psF64 psRandomPoisson(const psRandom *r, psF64 mean)
    5984{
    60     return(0.0);
     85    return((psF64) gsl_ran_poisson(r->gsl, mean));
    6186}
  • trunk/psLib/src/math/psPolynomial.c

    r2431 r2433  
    77 *  polynomials.  It also contains a Gaussian functions.
    88 *
    9  *  @version $Revision: 1.68 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-11-24 20:34:13 $
     9 *  @version $Revision: 1.69 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-11-24 21:59:43 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    399399            if (myPoly->mask[loop_x][loop_y] == 0) {
    400400                polySum += myPoly->coeff[loop_x][loop_y] *
    401                            psPolynomial1DEval(x, chebPolys[loop_x]) *
    402                            psPolynomial1DEval(y, chebPolys[loop_y]);
     401                           psPolynomial1DEval(chebPolys[loop_x], x) *
     402                           psPolynomial1DEval(chebPolys[loop_y], y);
    403403            }
    404404        }
     
    465465                if (myPoly->mask[loop_x][loop_y][loop_z] == 0) {
    466466                    polySum += myPoly->coeff[loop_x][loop_y][loop_z] *
    467                                psPolynomial1DEval(x, chebPolys[loop_x]) *
    468                                psPolynomial1DEval(y, chebPolys[loop_y]) *
    469                                psPolynomial1DEval(z, chebPolys[loop_z]);
     467                               psPolynomial1DEval(chebPolys[loop_x], x) *
     468                               psPolynomial1DEval(chebPolys[loop_y], y) *
     469                               psPolynomial1DEval(chebPolys[loop_z], z);
    470470                }
    471471            }
     
    545545                    if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) {
    546546                        polySum += myPoly->coeff[loop_w][loop_x][loop_y][loop_z] *
    547                                    psPolynomial1DEval(w, chebPolys[loop_w]) *
    548                                    psPolynomial1DEval(x, chebPolys[loop_x]) *
    549                                    psPolynomial1DEval(y, chebPolys[loop_y]) *
    550                                    psPolynomial1DEval(z, chebPolys[loop_z]);
     547                                   psPolynomial1DEval(chebPolys[loop_w], w) *
     548                                   psPolynomial1DEval(chebPolys[loop_x], x) *
     549                                   psPolynomial1DEval(chebPolys[loop_y], y) *
     550                                   psPolynomial1DEval(chebPolys[loop_z], z);
    551551                    }
    552552                }
     
    651651            if (myPoly->mask[loop_x][loop_y] == 0) {
    652652                polySum += myPoly->coeff[loop_x][loop_y] *
    653                            psPolynomial1DEval(x, chebPolys[loop_x]) *
    654                            psPolynomial1DEval(y, chebPolys[loop_y]);
     653                           psPolynomial1DEval(chebPolys[loop_x], x) *
     654                           psPolynomial1DEval(chebPolys[loop_y], y);
    655655            }
    656656        }
     
    718718                if (myPoly->mask[loop_x][loop_y][loop_z] == 0) {
    719719                    polySum += myPoly->coeff[loop_x][loop_y][loop_z] *
    720                                psPolynomial1DEval(x, chebPolys[loop_x]) *
    721                                psPolynomial1DEval(y, chebPolys[loop_y]) *
    722                                psPolynomial1DEval(z, chebPolys[loop_z]);
     720                               psPolynomial1DEval(chebPolys[loop_x], x) *
     721                               psPolynomial1DEval(chebPolys[loop_y], y) *
     722                               psPolynomial1DEval(chebPolys[loop_z], z);
    723723                }
    724724            }
     
    798798                    if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) {
    799799                        polySum += myPoly->coeff[loop_w][loop_x][loop_y][loop_z] *
    800                                    psPolynomial1DEval(w, chebPolys[loop_w]) *
    801                                    psPolynomial1DEval(x, chebPolys[loop_x]) *
    802                                    psPolynomial1DEval(y, chebPolys[loop_y]) *
    803                                    psPolynomial1DEval(z, chebPolys[loop_z]);
     800                                   psPolynomial1DEval(chebPolys[loop_w], w) *
     801                                   psPolynomial1DEval(chebPolys[loop_x], x) *
     802                                   psPolynomial1DEval(chebPolys[loop_y], y) *
     803                                   psPolynomial1DEval(chebPolys[loop_z], z);
    804804                    }
    805805                }
     
    11601160}
    11611161
    1162 float psPolynomial1DEval(float x, const psPolynomial1D* myPoly)
     1162float psPolynomial1DEval(const psPolynomial1D* myPoly, float x)
    11631163{
    11641164    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    11761176}
    11771177
    1178 psVector *psPolynomial1DEvalVector(const psVector *x,
    1179                                    const psPolynomial1D *myPoly)
     1178psVector *psPolynomial1DEvalVector(const psPolynomial1D *myPoly,
     1179                                   const psVector *x)
    11801180{
    11811181    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    11891189    tmp = psVectorAlloc(x->n, PS_TYPE_F32);
    11901190    for (i=0;i<x->n;i++) {
    1191         tmp->data.F32[i] = psPolynomial1DEval(x->data.F32[i], myPoly);
     1191        tmp->data.F32[i] = psPolynomial1DEval(myPoly, x->data.F32[i]);
    11921192    }
    11931193
     
    11981198}
    11991199
    1200 float psPolynomial2DEval(float x, float y, const psPolynomial2D* myPoly)
     1200float psPolynomial2DEval(const psPolynomial2D* myPoly, float x, float y)
    12011201{
    12021202    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    12141214}
    12151215
    1216 psVector *psPolynomial2DEvalVector(const psVector *x,
    1217                                    const psVector *y,
    1218                                    const psPolynomial2D *myPoly)
     1216psVector *psPolynomial2DEvalVector(const psPolynomial2D *myPoly,
     1217                                   const psVector *x,
     1218                                   const psVector *y)
     1219
    12191220{
    12201221    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    12371238    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    12381239    for (i=0;i<vecLen;i++) {
    1239         tmp->data.F32[i] = psPolynomial2DEval(myX->data.F32[i],
    1240                                               myY->data.F32[i],
    1241                                               myPoly);
     1240        tmp->data.F32[i] = psPolynomial2DEval(myPoly,
     1241                                              myX->data.F32[i],
     1242                                              myY->data.F32[i]);
     1243
    12421244    }
    12431245
     
    12511253}
    12521254
    1253 float psPolynomial3DEval(float x, float y, float z, const psPolynomial3D* myPoly)
     1255float psPolynomial3DEval(const psPolynomial3D* myPoly, float x, float y, float z)
    12541256{
    12551257    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    12671269}
    12681270
    1269 psVector *psPolynomial3DEvalVector(const psVector *x,
     1271psVector *psPolynomial3DEvalVector(const psPolynomial3D *myPoly,
     1272                                   const psVector *x,
    12701273                                   const psVector *y,
    1271                                    const psVector *z,
    1272                                    const psPolynomial3D *myPoly)
     1274                                   const psVector *z)
     1275
    12731276{
    12741277    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    12971300    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    12981301    for (i=0;i<vecLen;i++) {
    1299         tmp->data.F32[i] = psPolynomial3DEval(myX->data.F32[i],
     1302        tmp->data.F32[i] = psPolynomial3DEval(myPoly,
     1303                                              myX->data.F32[i],
    13001304                                              myY->data.F32[i],
    1301                                               myZ->data.F32[i],
    1302                                               myPoly);
     1305                                              myZ->data.F32[i]);
     1306
    13031307    }
    13041308
     
    13151319}
    13161320
    1317 float psPolynomial4DEval(float w, float x, float y, float z, const psPolynomial4D* myPoly)
     1321float psPolynomial4DEval(const psPolynomial4D* myPoly, float w, float x, float y, float z)
    13181322{
    13191323    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    13311335}
    13321336
    1333 psVector *psPolynomial4DEvalVector(const psVector *w,
     1337psVector *psPolynomial4DEvalVector(const psPolynomial4D *myPoly,
     1338                                   const psVector *w,
    13341339                                   const psVector *x,
    13351340                                   const psVector *y,
    1336                                    const psVector *z,
    1337                                    const psPolynomial4D *myPoly)
     1341                                   const psVector *z)
    13381342{
    13391343    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    13681372    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    13691373    for (i=0;i<vecLen;i++) {
    1370         tmp->data.F32[i] = psPolynomial4DEval(myW->data.F32[i],
     1374        tmp->data.F32[i] = psPolynomial4DEval(myPoly,
     1375                                              myW->data.F32[i],
    13711376                                              myX->data.F32[i],
    13721377                                              myY->data.F32[i],
    1373                                               myZ->data.F32[i],
    1374                                               myPoly);
     1378                                              myZ->data.F32[i]);
     1379
    13751380    }
    13761381
     
    15551560
    15561561
    1557 double psDPolynomial1DEval(double x, const psDPolynomial1D* myPoly)
     1562double psDPolynomial1DEval(const psDPolynomial1D* myPoly, double x)
    15581563{
    15591564    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    15711576}
    15721577
    1573 psVector *psDPolynomial1DEvalVector(const psVector *x,
    1574                                     const psDPolynomial1D *myPoly)
     1578psVector *psDPolynomial1DEvalVector(const psDPolynomial1D *myPoly,
     1579                                    const psVector *x)
     1580
    15751581{
    15761582    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    15841590    tmp = psVectorAlloc(x->n, PS_TYPE_F64);
    15851591    for (i=0;i<x->n;i++) {
    1586         tmp->data.F64[i] = psDPolynomial1DEval(x->data.F64[i], myPoly);
     1592        tmp->data.F64[i] = psDPolynomial1DEval(myPoly,
     1593                                               x->data.F64[i]);
    15871594    }
    15881595
     
    15941601
    15951602
    1596 double psDPolynomial2DEval(double x, double y, const psDPolynomial2D* myPoly)
     1603double psDPolynomial2DEval(const psDPolynomial2D* myPoly,
     1604                           double x,
     1605                           double y)
    15971606{
    15981607    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    16101619}
    16111620
    1612 psVector *psDPolynomial2DEvalVector(const psVector *x,
    1613                                     const psVector *y,
    1614                                     const psDPolynomial2D *myPoly)
     1621psVector *psDPolynomial2DEvalVector(const psDPolynomial2D *myPoly,
     1622                                    const psVector *x,
     1623                                    const psVector *y)
    16151624{
    16161625    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    16331642    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    16341643    for (i=0;i<vecLen;i++) {
    1635         tmp->data.F64[i] = psDPolynomial2DEval(myX->data.F64[i],
    1636                                                myY->data.F64[i],
    1637                                                myPoly);
     1644        tmp->data.F64[i] = psDPolynomial2DEval(myPoly,
     1645                                               myX->data.F64[i],
     1646                                               myY->data.F64[i]);
     1647
    16381648    }
    16391649
     
    16481658
    16491659
    1650 double psDPolynomial3DEval(double x, double y, double z, const psDPolynomial3D* myPoly)
     1660double psDPolynomial3DEval(const psDPolynomial3D* myPoly,
     1661                           double x,
     1662                           double y,
     1663                           double z)
    16511664{
    16521665    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    16641677}
    16651678
    1666 psVector *psDPolynomial3DEvalVector(const psVector *x,
     1679psVector *psDPolynomial3DEvalVector(const psDPolynomial3D *myPoly,
     1680                                    const psVector *x,
    16671681                                    const psVector *y,
    1668                                     const psVector *z,
    1669                                     const psDPolynomial3D *myPoly)
     1682                                    const psVector *z)
     1683
    16701684{
    16711685    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    16941708    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    16951709    for (i=0;i<vecLen;i++) {
    1696         tmp->data.F64[i] = psDPolynomial3DEval(myX->data.F64[i],
     1710        tmp->data.F64[i] = psDPolynomial3DEval(myPoly,
     1711                                               myX->data.F64[i],
    16971712                                               myY->data.F64[i],
    1698                                                myZ->data.F64[i],
    1699                                                myPoly);
     1713                                               myZ->data.F64[i]);
     1714
    17001715    }
    17011716
     
    17121727}
    17131728
    1714 double psDPolynomial4DEval(double w, double x, double y, double z, const psDPolynomial4D* myPoly)
     1729double psDPolynomial4DEval(const psDPolynomial4D* myPoly,
     1730                           double w,
     1731                           double x,
     1732                           double y,
     1733                           double z)
    17151734{
    17161735    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    17281747}
    17291748
    1730 psVector *psDPolynomial4DEvalVector(const psVector *w,
     1749psVector *psDPolynomial4DEvalVector(const psDPolynomial4D *myPoly,
     1750                                    const psVector *w,
    17311751                                    const psVector *x,
    17321752                                    const psVector *y,
    1733                                     const psVector *z,
    1734                                     const psDPolynomial4D *myPoly)
     1753                                    const psVector *z)
    17351754{
    17361755    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    17651784    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    17661785    for (i=0;i<vecLen;i++) {
    1767         tmp->data.F64[i] = psDPolynomial4DEval(myW->data.F64[i],
     1786        tmp->data.F64[i] = psDPolynomial4DEval(myPoly,
     1787                                               myW->data.F64[i],
    17681788                                               myX->data.F64[i],
    17691789                                               myY->data.F64[i],
    1770                                                myZ->data.F64[i],
    1771                                                myPoly);
     1790                                               myZ->data.F64[i]);
     1791
    17721792    }
    17731793
     
    21102130
    21112131        if (x < (spline->domains)[0]) {
    2112             return(psPolynomial1DEval(x, spline->spline[0]));
     2132            return(psPolynomial1DEval(spline->spline[0],
     2133                                      x));
    21132134        } else if (x > (spline->domains)[n-1]) {
    2114             return(psPolynomial1DEval(x, spline->spline[n-1]));
    2115         }
    2116     }
    2117 
    2118     return(psPolynomial1DEval(x, spline->spline[binNum]));
     2135            return(psPolynomial1DEval(spline->spline[n-1],
     2136                                      x));
     2137        }
     2138    }
     2139
     2140    return(psPolynomial1DEval(spline->spline[binNum],
     2141                              x));
    21192142}
    21202143
  • trunk/psLib/src/math/psPolynomial.h

    r2431 r2433  
    1212*  @author George Gusciora, MHPCC
    1313*
    14 *  @version $Revision: 1.34 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2004-11-24 20:34:13 $
     14*  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2004-11-24 21:59:43 $
    1616*
    1717*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    163163 */
    164164float psPolynomial1DEval(
    165     float x,                           ///< location at which to evaluate
    166     const psPolynomial1D* myPoly       ///< Coefficients for the polynomial
     165    const psPolynomial1D* myPoly,       ///< Coefficients for the polynomial
     166    float x                           ///< location at which to evaluate
    167167);
    168168
     
    172172 */
    173173float psPolynomial2DEval(
     174    const psPolynomial2D* myPoly,       ///< Coefficients for the polynomial
     175    float x,                           ///< x location at which to evaluate
     176    float y                           ///< y location at which to evaluate
     177);
     178
     179/** Evaluates a 3-D polynomial at specific coordinates.
     180 *
     181 *  @return float    result of polynomial at given location
     182 */
     183float psPolynomial3DEval(
     184    const psPolynomial3D* myPoly,       ///< Coefficients for the polynomial
    174185    float x,                           ///< x location at which to evaluate
    175186    float y,                           ///< y location at which to evaluate
    176     const psPolynomial2D* myPoly       ///< Coefficients for the polynomial
    177 );
    178 
    179 /** Evaluates a 3-D polynomial at specific coordinates.
    180  *
    181  *  @return float    result of polynomial at given location
    182  */
    183 float psPolynomial3DEval(
    184     float x,                           ///< x location at which to evaluate
    185     float y,                           ///< y location at which to evaluate
    186     float z,                           ///< z location at which to evaluate
    187     const psPolynomial3D* myPoly       ///< Coefficients for the polynomial
     187    float z                           ///< z location at which to evaluate
    188188);
    189189
     
    193193 */
    194194float psPolynomial4DEval(
     195    const psPolynomial4D* myPoly,       ///< Coefficients for the polynomial
    195196    float w,                           ///< w location at which to evaluate
    196197    float x,                           ///< x location at which to evaluate
    197198    float y,                           ///< y location at which to evaluate
    198     float z,                           ///< z location at which to evaluate
    199     const psPolynomial4D* myPoly       ///< Coefficients for the polynomial
    200 );
    201 
    202 psVector *psPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    203                                    const psPolynomial1D *myPoly   ///< Coefficients for the polynomial
    204                                   );
    205 
    206 psVector *psPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    207                                    const psVector *y,             ///< y locations at which to evaluate
    208                                    const psPolynomial2D *myPoly   ///< Coefficients for the polynomial
    209                                   );
    210 
    211 psVector *psPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    212                                    const psVector *y,             ///< y locations at which to evaluate
    213                                    const psVector *z,             ///< z locations at which to evaluate
    214                                    const psPolynomial3D *myPoly   ///< Coefficients for the polynomial
    215                                   );
    216 
    217 psVector *psPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
    218                                    const psVector *x,             ///< x locations at which to evaluate
    219                                    const psVector *y,             ///< y locations at which to evaluate
    220                                    const psVector *z,             ///< z locations at which to evaluate
    221                                    const psPolynomial4D *myPoly   ///< Coefficients for the polynomial
    222                                   );
     199    float z                           ///< z location at which to evaluate
     200);
     201
     202psVector *psPolynomial1DEvalVector(
     203    const psPolynomial1D *myPoly,   ///< Coefficients for the polynomial
     204    const psVector *x             ///< x locations at which to evaluate
     205);
     206
     207psVector *psPolynomial2DEvalVector(
     208    const psPolynomial2D *myPoly,   ///< Coefficients for the polynomial
     209    const psVector *x,             ///< x locations at which to evaluate
     210    const psVector *y             ///< y locations at which to evaluate
     211);
     212
     213psVector *psPolynomial3DEvalVector(
     214    const psPolynomial3D *myPoly,   ///< Coefficients for the polynomial
     215    const psVector *x,             ///< x locations at which to evaluate
     216    const psVector *y,             ///< y locations at which to evaluate
     217    const psVector *z             ///< z locations at which to evaluate
     218);
     219
     220psVector *psPolynomial4DEvalVector(
     221    const psPolynomial4D *myPoly,   ///< Coefficients for the polynomial
     222    const psVector *w,             ///< w locations at which to evaluate
     223    const psVector *x,             ///< x locations at which to evaluate
     224    const psVector *y,             ///< y locations at which to evaluate
     225    const psVector *z             ///< z locations at which to evaluate
     226);
    223227
    224228/*****************************************************************************/
     
    323327 */
    324328double psDPolynomial1DEval(
    325     double x,                          ///< Value at which to evaluate
    326     const psDPolynomial1D* myPoly      ///< Coefficients for the polynomial
     329    const psDPolynomial1D* myPoly,      ///< Coefficients for the polynomial
     330    double x                          ///< Value at which to evaluate
    327331);
    328332
     
    332336 */
    333337double psDPolynomial2DEval(
     338    const psDPolynomial2D* myPoly,       ///< Coefficients for the polynomial
    334339    double x,                           ///< Value x at which to evaluate
    335     double y,                           ///< Value y at which to evaluate
    336     const psDPolynomial2D* myPoly       ///< Coefficients for the polynomial
     340    double y            ///< Value y at which to evaluate
    337341);
    338342
     
    342346 */
    343347double psDPolynomial3DEval(
     348    const psDPolynomial3D* myPoly,      ///< Coefficients for the polynomial
    344349    double x,                          ///< Value x at which to evaluate
    345350    double y,                          ///< Value y at which to evaluate
    346     double z,                          ///< Value z at which to evaluate
    347     const psDPolynomial3D* myPoly      ///< Coefficients for the polynomial
     351    double z     ///< Value z at which to evaluate
    348352);
    349353
     
    353357 */
    354358double psDPolynomial4DEval(
     359    const psDPolynomial4D* myPoly,      ///< Coefficients for the polynomial
    355360    double w,                          ///< Value w at which to evaluate
    356361    double x,                          ///< Value x at which to evaluate
    357362    double y,                          ///< Value y at which to evaluate
    358     double z,                          ///< Value z at which to evaluate
    359     const psDPolynomial4D* myPoly      ///< Coefficients for the polynomial
    360 );
    361 
    362 psVector *psDPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    363                                     const psDPolynomial1D *myPoly  ///< Coefficients for the polynomial
    364                                    );
    365 
    366 psVector *psDPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    367                                     const psVector *y,             ///< y locations at which to evaluate
    368                                     const psDPolynomial2D *myPoly  ///< Coefficients for the polynomial
    369                                    );
    370 
    371 psVector *psDPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    372                                     const psVector *y,             ///< y locations at which to evaluate
    373                                     const psVector *z,             ///< z locations at which to evaluate
    374                                     const psDPolynomial3D *myPoly  ///< Coefficients for the polynomial
    375                                    );
    376 
    377 psVector *psDPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
    378                                     const psVector *x,             ///< x locations at which to evaluate
    379                                     const psVector *y,             ///< y locations at which to evaluate
    380                                     const psVector *z,             ///< z locations at which to evaluate
    381                                     const psDPolynomial4D *myPoly  ///< Coefficients for the polynomial
    382                                    );
     363    double z     ///< Value z at which to evaluate
     364);
     365
     366psVector *psDPolynomial1DEvalVector(
     367    const psDPolynomial1D *myPoly, ///< Coefficients for the polynomial
     368    const psVector *x             ///< x locations at which to evaluate
     369);
     370
     371psVector *psDPolynomial2DEvalVector(
     372    const psDPolynomial2D *myPoly,  ///< Coefficients for the polynomial
     373    const psVector *x,             ///< x locations at which to evaluate
     374    const psVector *y             ///< y locations at which to evaluate
     375);
     376
     377psVector *psDPolynomial3DEvalVector(
     378    const psDPolynomial3D *myPoly,  ///< Coefficients for the polynomial
     379    const psVector *x,             ///< x locations at which to evaluate
     380    const psVector *y,             ///< y locations at which to evaluate
     381    const psVector *z             ///< z locations at which to evaluate
     382);
     383
     384psVector *psDPolynomial4DEvalVector(
     385    const psDPolynomial4D *myPoly,  ///< Coefficients for the polynomial
     386    const psVector *w,             ///< w locations at which to evaluate
     387    const psVector *x,             ///< x locations at which to evaluate
     388    const psVector *y,             ///< y locations at which to evaluate
     389    const psVector *z             ///< z locations at which to evaluate
     390);
    383391
    384392
  • trunk/psLib/src/math/psRandom.c

    r2432 r2433  
    1010*  @author GLG, MHPCC
    1111*
    12 *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
    13 *  @date $Date: 2004-11-24 20:55:01 $
     12*  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
     13*  @date $Date: 2004-11-24 21:59:43 $
    1414*
    1515*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    2020#include <float.h>
    2121#include <math.h>
     22#include <gsl/gsl_rng.h>
     23#include <gsl/gsl_randist.h>
    2224
     25#include "psMemory.h"
    2326#include "psRandom.h"
    2427#include "psScalar.h"
     28#include "psError.h"
     29#include "psTrace.h"
     30#include "psLogMsg.h"
     31#include "psConstants.h"
     32#include "psDataManipErrors.h"
    2533
    2634/*
     
    3947                        psU64 seed)
    4048{
     49    gsl_rng *r = NULL;
     50    psRandom *myRNG = (psRandom *) psAlloc(sizeof(psRandom));
     51
     52    switch (type) {
     53    case PS_RANDOM_TAUS:
     54        r = gsl_rng_alloc(gsl_rng_taus);
     55        myRNG->gsl = r;
     56        return(myRNG);
     57
     58    default:
     59        psError(PS_ERR_UNEXPECTED_NULL,
     60                true,
     61                PS_ERRORTEXT_psRandom_UNKNOWN_RANDFOM_NUMBER_GENERATOR_TYPE);
     62    }
    4163    return(NULL);
    4264}
     
    4466void psRandomReset(psRandom *rand,
    4567                   psU64 seed)
    46 {}
     68{
     69    gsl_rng_set(rand->gsl, seed);
     70}
    4771
    4872psF64 psRandomUniform(const psRandom *r)
    4973{
    50     return(0.0);
     74    return(gsl_rng_uniform(r->gsl));
    5175}
    5276
    5377psF64 psRandomGaussian(const psRandom *r)
    5478{
    55     return(0.0);
     79    // XXX: What should sigma be?
     80    return(gsl_ran_gaussian(r->gsl, 1.0));
    5681}
    5782
    5883psF64 psRandomPoisson(const psRandom *r, psF64 mean)
    5984{
    60     return(0.0);
     85    return((psF64) gsl_ran_poisson(r->gsl, mean));
    6186}
  • trunk/psLib/src/math/psSpline.c

    r2431 r2433  
    77 *  polynomials.  It also contains a Gaussian functions.
    88 *
    9  *  @version $Revision: 1.68 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2004-11-24 20:34:13 $
     9 *  @version $Revision: 1.69 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2004-11-24 21:59:43 $
    1111 *
    1212 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    399399            if (myPoly->mask[loop_x][loop_y] == 0) {
    400400                polySum += myPoly->coeff[loop_x][loop_y] *
    401                            psPolynomial1DEval(x, chebPolys[loop_x]) *
    402                            psPolynomial1DEval(y, chebPolys[loop_y]);
     401                           psPolynomial1DEval(chebPolys[loop_x], x) *
     402                           psPolynomial1DEval(chebPolys[loop_y], y);
    403403            }
    404404        }
     
    465465                if (myPoly->mask[loop_x][loop_y][loop_z] == 0) {
    466466                    polySum += myPoly->coeff[loop_x][loop_y][loop_z] *
    467                                psPolynomial1DEval(x, chebPolys[loop_x]) *
    468                                psPolynomial1DEval(y, chebPolys[loop_y]) *
    469                                psPolynomial1DEval(z, chebPolys[loop_z]);
     467                               psPolynomial1DEval(chebPolys[loop_x], x) *
     468                               psPolynomial1DEval(chebPolys[loop_y], y) *
     469                               psPolynomial1DEval(chebPolys[loop_z], z);
    470470                }
    471471            }
     
    545545                    if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) {
    546546                        polySum += myPoly->coeff[loop_w][loop_x][loop_y][loop_z] *
    547                                    psPolynomial1DEval(w, chebPolys[loop_w]) *
    548                                    psPolynomial1DEval(x, chebPolys[loop_x]) *
    549                                    psPolynomial1DEval(y, chebPolys[loop_y]) *
    550                                    psPolynomial1DEval(z, chebPolys[loop_z]);
     547                                   psPolynomial1DEval(chebPolys[loop_w], w) *
     548                                   psPolynomial1DEval(chebPolys[loop_x], x) *
     549                                   psPolynomial1DEval(chebPolys[loop_y], y) *
     550                                   psPolynomial1DEval(chebPolys[loop_z], z);
    551551                    }
    552552                }
     
    651651            if (myPoly->mask[loop_x][loop_y] == 0) {
    652652                polySum += myPoly->coeff[loop_x][loop_y] *
    653                            psPolynomial1DEval(x, chebPolys[loop_x]) *
    654                            psPolynomial1DEval(y, chebPolys[loop_y]);
     653                           psPolynomial1DEval(chebPolys[loop_x], x) *
     654                           psPolynomial1DEval(chebPolys[loop_y], y);
    655655            }
    656656        }
     
    718718                if (myPoly->mask[loop_x][loop_y][loop_z] == 0) {
    719719                    polySum += myPoly->coeff[loop_x][loop_y][loop_z] *
    720                                psPolynomial1DEval(x, chebPolys[loop_x]) *
    721                                psPolynomial1DEval(y, chebPolys[loop_y]) *
    722                                psPolynomial1DEval(z, chebPolys[loop_z]);
     720                               psPolynomial1DEval(chebPolys[loop_x], x) *
     721                               psPolynomial1DEval(chebPolys[loop_y], y) *
     722                               psPolynomial1DEval(chebPolys[loop_z], z);
    723723                }
    724724            }
     
    798798                    if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) {
    799799                        polySum += myPoly->coeff[loop_w][loop_x][loop_y][loop_z] *
    800                                    psPolynomial1DEval(w, chebPolys[loop_w]) *
    801                                    psPolynomial1DEval(x, chebPolys[loop_x]) *
    802                                    psPolynomial1DEval(y, chebPolys[loop_y]) *
    803                                    psPolynomial1DEval(z, chebPolys[loop_z]);
     800                                   psPolynomial1DEval(chebPolys[loop_w], w) *
     801                                   psPolynomial1DEval(chebPolys[loop_x], x) *
     802                                   psPolynomial1DEval(chebPolys[loop_y], y) *
     803                                   psPolynomial1DEval(chebPolys[loop_z], z);
    804804                    }
    805805                }
     
    11601160}
    11611161
    1162 float psPolynomial1DEval(float x, const psPolynomial1D* myPoly)
     1162float psPolynomial1DEval(const psPolynomial1D* myPoly, float x)
    11631163{
    11641164    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    11761176}
    11771177
    1178 psVector *psPolynomial1DEvalVector(const psVector *x,
    1179                                    const psPolynomial1D *myPoly)
     1178psVector *psPolynomial1DEvalVector(const psPolynomial1D *myPoly,
     1179                                   const psVector *x)
    11801180{
    11811181    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    11891189    tmp = psVectorAlloc(x->n, PS_TYPE_F32);
    11901190    for (i=0;i<x->n;i++) {
    1191         tmp->data.F32[i] = psPolynomial1DEval(x->data.F32[i], myPoly);
     1191        tmp->data.F32[i] = psPolynomial1DEval(myPoly, x->data.F32[i]);
    11921192    }
    11931193
     
    11981198}
    11991199
    1200 float psPolynomial2DEval(float x, float y, const psPolynomial2D* myPoly)
     1200float psPolynomial2DEval(const psPolynomial2D* myPoly, float x, float y)
    12011201{
    12021202    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    12141214}
    12151215
    1216 psVector *psPolynomial2DEvalVector(const psVector *x,
    1217                                    const psVector *y,
    1218                                    const psPolynomial2D *myPoly)
     1216psVector *psPolynomial2DEvalVector(const psPolynomial2D *myPoly,
     1217                                   const psVector *x,
     1218                                   const psVector *y)
     1219
    12191220{
    12201221    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    12371238    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    12381239    for (i=0;i<vecLen;i++) {
    1239         tmp->data.F32[i] = psPolynomial2DEval(myX->data.F32[i],
    1240                                               myY->data.F32[i],
    1241                                               myPoly);
     1240        tmp->data.F32[i] = psPolynomial2DEval(myPoly,
     1241                                              myX->data.F32[i],
     1242                                              myY->data.F32[i]);
     1243
    12421244    }
    12431245
     
    12511253}
    12521254
    1253 float psPolynomial3DEval(float x, float y, float z, const psPolynomial3D* myPoly)
     1255float psPolynomial3DEval(const psPolynomial3D* myPoly, float x, float y, float z)
    12541256{
    12551257    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    12671269}
    12681270
    1269 psVector *psPolynomial3DEvalVector(const psVector *x,
     1271psVector *psPolynomial3DEvalVector(const psPolynomial3D *myPoly,
     1272                                   const psVector *x,
    12701273                                   const psVector *y,
    1271                                    const psVector *z,
    1272                                    const psPolynomial3D *myPoly)
     1274                                   const psVector *z)
     1275
    12731276{
    12741277    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    12971300    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    12981301    for (i=0;i<vecLen;i++) {
    1299         tmp->data.F32[i] = psPolynomial3DEval(myX->data.F32[i],
     1302        tmp->data.F32[i] = psPolynomial3DEval(myPoly,
     1303                                              myX->data.F32[i],
    13001304                                              myY->data.F32[i],
    1301                                               myZ->data.F32[i],
    1302                                               myPoly);
     1305                                              myZ->data.F32[i]);
     1306
    13031307    }
    13041308
     
    13151319}
    13161320
    1317 float psPolynomial4DEval(float w, float x, float y, float z, const psPolynomial4D* myPoly)
     1321float psPolynomial4DEval(const psPolynomial4D* myPoly, float w, float x, float y, float z)
    13181322{
    13191323    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    13311335}
    13321336
    1333 psVector *psPolynomial4DEvalVector(const psVector *w,
     1337psVector *psPolynomial4DEvalVector(const psPolynomial4D *myPoly,
     1338                                   const psVector *w,
    13341339                                   const psVector *x,
    13351340                                   const psVector *y,
    1336                                    const psVector *z,
    1337                                    const psPolynomial4D *myPoly)
     1341                                   const psVector *z)
    13381342{
    13391343    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    13681372    tmp = psVectorAlloc(vecLen, PS_TYPE_F32);
    13691373    for (i=0;i<vecLen;i++) {
    1370         tmp->data.F32[i] = psPolynomial4DEval(myW->data.F32[i],
     1374        tmp->data.F32[i] = psPolynomial4DEval(myPoly,
     1375                                              myW->data.F32[i],
    13711376                                              myX->data.F32[i],
    13721377                                              myY->data.F32[i],
    1373                                               myZ->data.F32[i],
    1374                                               myPoly);
     1378                                              myZ->data.F32[i]);
     1379
    13751380    }
    13761381
     
    15551560
    15561561
    1557 double psDPolynomial1DEval(double x, const psDPolynomial1D* myPoly)
     1562double psDPolynomial1DEval(const psDPolynomial1D* myPoly, double x)
    15581563{
    15591564    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    15711576}
    15721577
    1573 psVector *psDPolynomial1DEvalVector(const psVector *x,
    1574                                     const psDPolynomial1D *myPoly)
     1578psVector *psDPolynomial1DEvalVector(const psDPolynomial1D *myPoly,
     1579                                    const psVector *x)
     1580
    15751581{
    15761582    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    15841590    tmp = psVectorAlloc(x->n, PS_TYPE_F64);
    15851591    for (i=0;i<x->n;i++) {
    1586         tmp->data.F64[i] = psDPolynomial1DEval(x->data.F64[i], myPoly);
     1592        tmp->data.F64[i] = psDPolynomial1DEval(myPoly,
     1593                                               x->data.F64[i]);
    15871594    }
    15881595
     
    15941601
    15951602
    1596 double psDPolynomial2DEval(double x, double y, const psDPolynomial2D* myPoly)
     1603double psDPolynomial2DEval(const psDPolynomial2D* myPoly,
     1604                           double x,
     1605                           double y)
    15971606{
    15981607    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    16101619}
    16111620
    1612 psVector *psDPolynomial2DEvalVector(const psVector *x,
    1613                                     const psVector *y,
    1614                                     const psDPolynomial2D *myPoly)
     1621psVector *psDPolynomial2DEvalVector(const psDPolynomial2D *myPoly,
     1622                                    const psVector *x,
     1623                                    const psVector *y)
    16151624{
    16161625    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    16331642    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    16341643    for (i=0;i<vecLen;i++) {
    1635         tmp->data.F64[i] = psDPolynomial2DEval(myX->data.F64[i],
    1636                                                myY->data.F64[i],
    1637                                                myPoly);
     1644        tmp->data.F64[i] = psDPolynomial2DEval(myPoly,
     1645                                               myX->data.F64[i],
     1646                                               myY->data.F64[i]);
     1647
    16381648    }
    16391649
     
    16481658
    16491659
    1650 double psDPolynomial3DEval(double x, double y, double z, const psDPolynomial3D* myPoly)
     1660double psDPolynomial3DEval(const psDPolynomial3D* myPoly,
     1661                           double x,
     1662                           double y,
     1663                           double z)
    16511664{
    16521665    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    16641677}
    16651678
    1666 psVector *psDPolynomial3DEvalVector(const psVector *x,
     1679psVector *psDPolynomial3DEvalVector(const psDPolynomial3D *myPoly,
     1680                                    const psVector *x,
    16671681                                    const psVector *y,
    1668                                     const psVector *z,
    1669                                     const psDPolynomial3D *myPoly)
     1682                                    const psVector *z)
     1683
    16701684{
    16711685    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    16941708    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    16951709    for (i=0;i<vecLen;i++) {
    1696         tmp->data.F64[i] = psDPolynomial3DEval(myX->data.F64[i],
     1710        tmp->data.F64[i] = psDPolynomial3DEval(myPoly,
     1711                                               myX->data.F64[i],
    16971712                                               myY->data.F64[i],
    1698                                                myZ->data.F64[i],
    1699                                                myPoly);
     1713                                               myZ->data.F64[i]);
     1714
    17001715    }
    17011716
     
    17121727}
    17131728
    1714 double psDPolynomial4DEval(double w, double x, double y, double z, const psDPolynomial4D* myPoly)
     1729double psDPolynomial4DEval(const psDPolynomial4D* myPoly,
     1730                           double w,
     1731                           double x,
     1732                           double y,
     1733                           double z)
    17151734{
    17161735    PS_POLY_CHECK_NULL(myPoly, NAN);
     
    17281747}
    17291748
    1730 psVector *psDPolynomial4DEvalVector(const psVector *w,
     1749psVector *psDPolynomial4DEvalVector(const psDPolynomial4D *myPoly,
     1750                                    const psVector *w,
    17311751                                    const psVector *x,
    17321752                                    const psVector *y,
    1733                                     const psVector *z,
    1734                                     const psDPolynomial4D *myPoly)
     1753                                    const psVector *z)
    17351754{
    17361755    PS_POLY_CHECK_NULL(myPoly, NULL);
     
    17651784    tmp = psVectorAlloc(vecLen, PS_TYPE_F64);
    17661785    for (i=0;i<vecLen;i++) {
    1767         tmp->data.F64[i] = psDPolynomial4DEval(myW->data.F64[i],
     1786        tmp->data.F64[i] = psDPolynomial4DEval(myPoly,
     1787                                               myW->data.F64[i],
    17681788                                               myX->data.F64[i],
    17691789                                               myY->data.F64[i],
    1770                                                myZ->data.F64[i],
    1771                                                myPoly);
     1790                                               myZ->data.F64[i]);
     1791
    17721792    }
    17731793
     
    21102130
    21112131        if (x < (spline->domains)[0]) {
    2112             return(psPolynomial1DEval(x, spline->spline[0]));
     2132            return(psPolynomial1DEval(spline->spline[0],
     2133                                      x));
    21132134        } else if (x > (spline->domains)[n-1]) {
    2114             return(psPolynomial1DEval(x, spline->spline[n-1]));
    2115         }
    2116     }
    2117 
    2118     return(psPolynomial1DEval(x, spline->spline[binNum]));
     2135            return(psPolynomial1DEval(spline->spline[n-1],
     2136                                      x));
     2137        }
     2138    }
     2139
     2140    return(psPolynomial1DEval(spline->spline[binNum],
     2141                              x));
    21192142}
    21202143
  • trunk/psLib/src/math/psSpline.h

    r2431 r2433  
    1212*  @author George Gusciora, MHPCC
    1313*
    14 *  @version $Revision: 1.34 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2004-11-24 20:34:13 $
     14*  @version $Revision: 1.35 $ $Name: not supported by cvs2svn $
     15*  @date $Date: 2004-11-24 21:59:43 $
    1616*
    1717*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    163163 */
    164164float psPolynomial1DEval(
    165     float x,                           ///< location at which to evaluate
    166     const psPolynomial1D* myPoly       ///< Coefficients for the polynomial
     165    const psPolynomial1D* myPoly,       ///< Coefficients for the polynomial
     166    float x                           ///< location at which to evaluate
    167167);
    168168
     
    172172 */
    173173float psPolynomial2DEval(
     174    const psPolynomial2D* myPoly,       ///< Coefficients for the polynomial
     175    float x,                           ///< x location at which to evaluate
     176    float y                           ///< y location at which to evaluate
     177);
     178
     179/** Evaluates a 3-D polynomial at specific coordinates.
     180 *
     181 *  @return float    result of polynomial at given location
     182 */
     183float psPolynomial3DEval(
     184    const psPolynomial3D* myPoly,       ///< Coefficients for the polynomial
    174185    float x,                           ///< x location at which to evaluate
    175186    float y,                           ///< y location at which to evaluate
    176     const psPolynomial2D* myPoly       ///< Coefficients for the polynomial
    177 );
    178 
    179 /** Evaluates a 3-D polynomial at specific coordinates.
    180  *
    181  *  @return float    result of polynomial at given location
    182  */
    183 float psPolynomial3DEval(
    184     float x,                           ///< x location at which to evaluate
    185     float y,                           ///< y location at which to evaluate
    186     float z,                           ///< z location at which to evaluate
    187     const psPolynomial3D* myPoly       ///< Coefficients for the polynomial
     187    float z                           ///< z location at which to evaluate
    188188);
    189189
     
    193193 */
    194194float psPolynomial4DEval(
     195    const psPolynomial4D* myPoly,       ///< Coefficients for the polynomial
    195196    float w,                           ///< w location at which to evaluate
    196197    float x,                           ///< x location at which to evaluate
    197198    float y,                           ///< y location at which to evaluate
    198     float z,                           ///< z location at which to evaluate
    199     const psPolynomial4D* myPoly       ///< Coefficients for the polynomial
    200 );
    201 
    202 psVector *psPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    203                                    const psPolynomial1D *myPoly   ///< Coefficients for the polynomial
    204                                   );
    205 
    206 psVector *psPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    207                                    const psVector *y,             ///< y locations at which to evaluate
    208                                    const psPolynomial2D *myPoly   ///< Coefficients for the polynomial
    209                                   );
    210 
    211 psVector *psPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    212                                    const psVector *y,             ///< y locations at which to evaluate
    213                                    const psVector *z,             ///< z locations at which to evaluate
    214                                    const psPolynomial3D *myPoly   ///< Coefficients for the polynomial
    215                                   );
    216 
    217 psVector *psPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
    218                                    const psVector *x,             ///< x locations at which to evaluate
    219                                    const psVector *y,             ///< y locations at which to evaluate
    220                                    const psVector *z,             ///< z locations at which to evaluate
    221                                    const psPolynomial4D *myPoly   ///< Coefficients for the polynomial
    222                                   );
     199    float z                           ///< z location at which to evaluate
     200);
     201
     202psVector *psPolynomial1DEvalVector(
     203    const psPolynomial1D *myPoly,   ///< Coefficients for the polynomial
     204    const psVector *x             ///< x locations at which to evaluate
     205);
     206
     207psVector *psPolynomial2DEvalVector(
     208    const psPolynomial2D *myPoly,   ///< Coefficients for the polynomial
     209    const psVector *x,             ///< x locations at which to evaluate
     210    const psVector *y             ///< y locations at which to evaluate
     211);
     212
     213psVector *psPolynomial3DEvalVector(
     214    const psPolynomial3D *myPoly,   ///< Coefficients for the polynomial
     215    const psVector *x,             ///< x locations at which to evaluate
     216    const psVector *y,             ///< y locations at which to evaluate
     217    const psVector *z             ///< z locations at which to evaluate
     218);
     219
     220psVector *psPolynomial4DEvalVector(
     221    const psPolynomial4D *myPoly,   ///< Coefficients for the polynomial
     222    const psVector *w,             ///< w locations at which to evaluate
     223    const psVector *x,             ///< x locations at which to evaluate
     224    const psVector *y,             ///< y locations at which to evaluate
     225    const psVector *z             ///< z locations at which to evaluate
     226);
    223227
    224228/*****************************************************************************/
     
    323327 */
    324328double psDPolynomial1DEval(
    325     double x,                          ///< Value at which to evaluate
    326     const psDPolynomial1D* myPoly      ///< Coefficients for the polynomial
     329    const psDPolynomial1D* myPoly,      ///< Coefficients for the polynomial
     330    double x                          ///< Value at which to evaluate
    327331);
    328332
     
    332336 */
    333337double psDPolynomial2DEval(
     338    const psDPolynomial2D* myPoly,       ///< Coefficients for the polynomial
    334339    double x,                           ///< Value x at which to evaluate
    335     double y,                           ///< Value y at which to evaluate
    336     const psDPolynomial2D* myPoly       ///< Coefficients for the polynomial
     340    double y            ///< Value y at which to evaluate
    337341);
    338342
     
    342346 */
    343347double psDPolynomial3DEval(
     348    const psDPolynomial3D* myPoly,      ///< Coefficients for the polynomial
    344349    double x,                          ///< Value x at which to evaluate
    345350    double y,                          ///< Value y at which to evaluate
    346     double z,                          ///< Value z at which to evaluate
    347     const psDPolynomial3D* myPoly      ///< Coefficients for the polynomial
     351    double z     ///< Value z at which to evaluate
    348352);
    349353
     
    353357 */
    354358double psDPolynomial4DEval(
     359    const psDPolynomial4D* myPoly,      ///< Coefficients for the polynomial
    355360    double w,                          ///< Value w at which to evaluate
    356361    double x,                          ///< Value x at which to evaluate
    357362    double y,                          ///< Value y at which to evaluate
    358     double z,                          ///< Value z at which to evaluate
    359     const psDPolynomial4D* myPoly      ///< Coefficients for the polynomial
    360 );
    361 
    362 psVector *psDPolynomial1DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    363                                     const psDPolynomial1D *myPoly  ///< Coefficients for the polynomial
    364                                    );
    365 
    366 psVector *psDPolynomial2DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    367                                     const psVector *y,             ///< y locations at which to evaluate
    368                                     const psDPolynomial2D *myPoly  ///< Coefficients for the polynomial
    369                                    );
    370 
    371 psVector *psDPolynomial3DEvalVector(const psVector *x,             ///< x locations at which to evaluate
    372                                     const psVector *y,             ///< y locations at which to evaluate
    373                                     const psVector *z,             ///< z locations at which to evaluate
    374                                     const psDPolynomial3D *myPoly  ///< Coefficients for the polynomial
    375                                    );
    376 
    377 psVector *psDPolynomial4DEvalVector(const psVector *w,             ///< w locations at which to evaluate
    378                                     const psVector *x,             ///< x locations at which to evaluate
    379                                     const psVector *y,             ///< y locations at which to evaluate
    380                                     const psVector *z,             ///< z locations at which to evaluate
    381                                     const psDPolynomial4D *myPoly  ///< Coefficients for the polynomial
    382                                    );
     363    double z     ///< Value z at which to evaluate
     364);
     365
     366psVector *psDPolynomial1DEvalVector(
     367    const psDPolynomial1D *myPoly, ///< Coefficients for the polynomial
     368    const psVector *x             ///< x locations at which to evaluate
     369);
     370
     371psVector *psDPolynomial2DEvalVector(
     372    const psDPolynomial2D *myPoly,  ///< Coefficients for the polynomial
     373    const psVector *x,             ///< x locations at which to evaluate
     374    const psVector *y             ///< y locations at which to evaluate
     375);
     376
     377psVector *psDPolynomial3DEvalVector(
     378    const psDPolynomial3D *myPoly,  ///< Coefficients for the polynomial
     379    const psVector *x,             ///< x locations at which to evaluate
     380    const psVector *y,             ///< y locations at which to evaluate
     381    const psVector *z             ///< z locations at which to evaluate
     382);
     383
     384psVector *psDPolynomial4DEvalVector(
     385    const psDPolynomial4D *myPoly,  ///< Coefficients for the polynomial
     386    const psVector *w,             ///< w locations at which to evaluate
     387    const psVector *x,             ///< x locations at which to evaluate
     388    const psVector *y,             ///< y locations at which to evaluate
     389    const psVector *z             ///< z locations at which to evaluate
     390);
    383391
    384392
Note: See TracChangeset for help on using the changeset viewer.