Changeset 2433
- Timestamp:
- Nov 24, 2004, 11:59:43 AM (22 years ago)
- Location:
- trunk/psLib/src
- Files:
-
- 10 edited
-
dataManip/psDataManipErrors.dat (modified) (1 diff)
-
dataManip/psDataManipErrors.h (modified) (2 diffs)
-
dataManip/psFunctions.c (modified) (32 diffs)
-
dataManip/psFunctions.h (modified) (8 diffs)
-
dataManip/psRandom.c (modified) (4 diffs)
-
math/psPolynomial.c (modified) (32 diffs)
-
math/psPolynomial.h (modified) (8 diffs)
-
math/psRandom.c (modified) (4 diffs)
-
math/psSpline.c (modified) (32 diffs)
-
math/psSpline.h (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psDataManipErrors.dat
r2425 r2433 38 38 psFunctions_NOT_ENOUGH_DATAPOINTS Given vector does not have enough data points for %d-order interpolation. 39 39 # 40 psRandom_UNKNOWN_RANDFOM_NUMBER_GENERATOR_TYPE Unknown Random Number Generator Type 41 # 40 42 psMatrix_COUNT_DIFFERS Number of elements inconsistent, %d vs %d. Number of elements must match. 41 43 psMatrix_IMAGE_SIZE_DIFFERS Specified psImage dimensions differed, %dx%d vs %dx%d. -
trunk/psLib/src/dataManip/psDataManipErrors.h
r2411 r2433 7 7 * @author Robert DeSonia, MHPCC 8 8 * 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 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 54 54 #define PS_ERRORTEXT_psFunctions_TYPE_NOT_SUPPORTED "Input psVector type, %s, is not supported." 55 55 #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" 56 57 #define PS_ERRORTEXT_psMatrix_COUNT_DIFFERS "Number of elements inconsistent, %d vs %d. Number of elements must match." 57 58 #define PS_ERRORTEXT_psMatrix_IMAGE_SIZE_DIFFERS "Specified psImage dimensions differed, %dx%d vs %dx%d." -
trunk/psLib/src/dataManip/psFunctions.c
r2431 r2433 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.6 8$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-11-24 2 0:34:13 $9 * @version $Revision: 1.69 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-11-24 21:59:43 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 399 399 if (myPoly->mask[loop_x][loop_y] == 0) { 400 400 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); 403 403 } 404 404 } … … 465 465 if (myPoly->mask[loop_x][loop_y][loop_z] == 0) { 466 466 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); 470 470 } 471 471 } … … 545 545 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) { 546 546 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); 551 551 } 552 552 } … … 651 651 if (myPoly->mask[loop_x][loop_y] == 0) { 652 652 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); 655 655 } 656 656 } … … 718 718 if (myPoly->mask[loop_x][loop_y][loop_z] == 0) { 719 719 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); 723 723 } 724 724 } … … 798 798 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) { 799 799 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); 804 804 } 805 805 } … … 1160 1160 } 1161 1161 1162 float psPolynomial1DEval( float x, const psPolynomial1D* myPoly)1162 float psPolynomial1DEval(const psPolynomial1D* myPoly, float x) 1163 1163 { 1164 1164 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1176 1176 } 1177 1177 1178 psVector *psPolynomial1DEvalVector(const ps Vector *x,1179 const ps Polynomial1D *myPoly)1178 psVector *psPolynomial1DEvalVector(const psPolynomial1D *myPoly, 1179 const psVector *x) 1180 1180 { 1181 1181 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1189 1189 tmp = psVectorAlloc(x->n, PS_TYPE_F32); 1190 1190 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]); 1192 1192 } 1193 1193 … … 1198 1198 } 1199 1199 1200 float psPolynomial2DEval( float x, float y, const psPolynomial2D* myPoly)1200 float psPolynomial2DEval(const psPolynomial2D* myPoly, float x, float y) 1201 1201 { 1202 1202 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1214 1214 } 1215 1215 1216 psVector *psPolynomial2DEvalVector(const psVector *x, 1217 const psVector *y, 1218 const psPolynomial2D *myPoly) 1216 psVector *psPolynomial2DEvalVector(const psPolynomial2D *myPoly, 1217 const psVector *x, 1218 const psVector *y) 1219 1219 1220 { 1220 1221 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1237 1238 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1238 1239 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 1242 1244 } 1243 1245 … … 1251 1253 } 1252 1254 1253 float psPolynomial3DEval( float x, float y, float z, const psPolynomial3D* myPoly)1255 float psPolynomial3DEval(const psPolynomial3D* myPoly, float x, float y, float z) 1254 1256 { 1255 1257 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1267 1269 } 1268 1270 1269 psVector *psPolynomial3DEvalVector(const psVector *x, 1271 psVector *psPolynomial3DEvalVector(const psPolynomial3D *myPoly, 1272 const psVector *x, 1270 1273 const psVector *y, 1271 const psVector *z ,1272 const psPolynomial3D *myPoly) 1274 const psVector *z) 1275 1273 1276 { 1274 1277 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1297 1300 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1298 1301 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], 1300 1304 myY->data.F32[i], 1301 myZ->data.F32[i] ,1302 myPoly); 1305 myZ->data.F32[i]); 1306 1303 1307 } 1304 1308 … … 1315 1319 } 1316 1320 1317 float psPolynomial4DEval( float w, float x, float y, float z, const psPolynomial4D* myPoly)1321 float psPolynomial4DEval(const psPolynomial4D* myPoly, float w, float x, float y, float z) 1318 1322 { 1319 1323 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1331 1335 } 1332 1336 1333 psVector *psPolynomial4DEvalVector(const psVector *w, 1337 psVector *psPolynomial4DEvalVector(const psPolynomial4D *myPoly, 1338 const psVector *w, 1334 1339 const psVector *x, 1335 1340 const psVector *y, 1336 const psVector *z, 1337 const psPolynomial4D *myPoly) 1341 const psVector *z) 1338 1342 { 1339 1343 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1368 1372 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1369 1373 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], 1371 1376 myX->data.F32[i], 1372 1377 myY->data.F32[i], 1373 myZ->data.F32[i] ,1374 myPoly); 1378 myZ->data.F32[i]); 1379 1375 1380 } 1376 1381 … … 1555 1560 1556 1561 1557 double psDPolynomial1DEval( double x, const psDPolynomial1D* myPoly)1562 double psDPolynomial1DEval(const psDPolynomial1D* myPoly, double x) 1558 1563 { 1559 1564 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1571 1576 } 1572 1577 1573 psVector *psDPolynomial1DEvalVector(const psVector *x, 1574 const psDPolynomial1D *myPoly) 1578 psVector *psDPolynomial1DEvalVector(const psDPolynomial1D *myPoly, 1579 const psVector *x) 1580 1575 1581 { 1576 1582 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1584 1590 tmp = psVectorAlloc(x->n, PS_TYPE_F64); 1585 1591 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]); 1587 1594 } 1588 1595 … … 1594 1601 1595 1602 1596 double psDPolynomial2DEval(double x, double y, const psDPolynomial2D* myPoly) 1603 double psDPolynomial2DEval(const psDPolynomial2D* myPoly, 1604 double x, 1605 double y) 1597 1606 { 1598 1607 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1610 1619 } 1611 1620 1612 psVector *psDPolynomial2DEvalVector(const ps Vector *x,1613 const psVector * y,1614 const ps DPolynomial2D *myPoly)1621 psVector *psDPolynomial2DEvalVector(const psDPolynomial2D *myPoly, 1622 const psVector *x, 1623 const psVector *y) 1615 1624 { 1616 1625 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1633 1642 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1634 1643 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 1638 1648 } 1639 1649 … … 1648 1658 1649 1659 1650 double psDPolynomial3DEval(double x, double y, double z, const psDPolynomial3D* myPoly) 1660 double psDPolynomial3DEval(const psDPolynomial3D* myPoly, 1661 double x, 1662 double y, 1663 double z) 1651 1664 { 1652 1665 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1664 1677 } 1665 1678 1666 psVector *psDPolynomial3DEvalVector(const psVector *x, 1679 psVector *psDPolynomial3DEvalVector(const psDPolynomial3D *myPoly, 1680 const psVector *x, 1667 1681 const psVector *y, 1668 const psVector *z ,1669 const psDPolynomial3D *myPoly) 1682 const psVector *z) 1683 1670 1684 { 1671 1685 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1694 1708 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1695 1709 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], 1697 1712 myY->data.F64[i], 1698 myZ->data.F64[i] ,1699 myPoly); 1713 myZ->data.F64[i]); 1714 1700 1715 } 1701 1716 … … 1712 1727 } 1713 1728 1714 double psDPolynomial4DEval(double w, double x, double y, double z, const psDPolynomial4D* myPoly) 1729 double psDPolynomial4DEval(const psDPolynomial4D* myPoly, 1730 double w, 1731 double x, 1732 double y, 1733 double z) 1715 1734 { 1716 1735 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1728 1747 } 1729 1748 1730 psVector *psDPolynomial4DEvalVector(const psVector *w, 1749 psVector *psDPolynomial4DEvalVector(const psDPolynomial4D *myPoly, 1750 const psVector *w, 1731 1751 const psVector *x, 1732 1752 const psVector *y, 1733 const psVector *z, 1734 const psDPolynomial4D *myPoly) 1753 const psVector *z) 1735 1754 { 1736 1755 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1765 1784 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1766 1785 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], 1768 1788 myX->data.F64[i], 1769 1789 myY->data.F64[i], 1770 myZ->data.F64[i] ,1771 myPoly); 1790 myZ->data.F64[i]); 1791 1772 1792 } 1773 1793 … … 2110 2130 2111 2131 if (x < (spline->domains)[0]) { 2112 return(psPolynomial1DEval(x, spline->spline[0])); 2132 return(psPolynomial1DEval(spline->spline[0], 2133 x)); 2113 2134 } 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)); 2119 2142 } 2120 2143 -
trunk/psLib/src/dataManip/psFunctions.h
r2431 r2433 12 12 * @author George Gusciora, MHPCC 13 13 * 14 * @version $Revision: 1.3 4$ $Name: not supported by cvs2svn $15 * @date $Date: 2004-11-24 2 0:34:13 $14 * @version $Revision: 1.35 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2004-11-24 21:59:43 $ 16 16 * 17 17 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 163 163 */ 164 164 float psPolynomial1DEval( 165 float x, ///< location at which to evaluate166 const psPolynomial1D* myPoly ///< Coefficients for the polynomial165 const psPolynomial1D* myPoly, ///< Coefficients for the polynomial 166 float x ///< location at which to evaluate 167 167 ); 168 168 … … 172 172 */ 173 173 float 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 */ 183 float psPolynomial3DEval( 184 const psPolynomial3D* myPoly, ///< Coefficients for the polynomial 174 185 float x, ///< x location at which to evaluate 175 186 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 188 188 ); 189 189 … … 193 193 */ 194 194 float psPolynomial4DEval( 195 const psPolynomial4D* myPoly, ///< Coefficients for the polynomial 195 196 float w, ///< w location at which to evaluate 196 197 float x, ///< x location at which to evaluate 197 198 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 202 psVector *psPolynomial1DEvalVector( 203 const psPolynomial1D *myPoly, ///< Coefficients for the polynomial 204 const psVector *x ///< x locations at which to evaluate 205 ); 206 207 psVector *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 213 psVector *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 220 psVector *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 ); 223 227 224 228 /*****************************************************************************/ … … 323 327 */ 324 328 double psDPolynomial1DEval( 325 double x, ///< Value at which to evaluate326 const psDPolynomial1D* myPoly ///< Coefficients for the polynomial329 const psDPolynomial1D* myPoly, ///< Coefficients for the polynomial 330 double x ///< Value at which to evaluate 327 331 ); 328 332 … … 332 336 */ 333 337 double psDPolynomial2DEval( 338 const psDPolynomial2D* myPoly, ///< Coefficients for the polynomial 334 339 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 337 341 ); 338 342 … … 342 346 */ 343 347 double psDPolynomial3DEval( 348 const psDPolynomial3D* myPoly, ///< Coefficients for the polynomial 344 349 double x, ///< Value x at which to evaluate 345 350 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 348 352 ); 349 353 … … 353 357 */ 354 358 double psDPolynomial4DEval( 359 const psDPolynomial4D* myPoly, ///< Coefficients for the polynomial 355 360 double w, ///< Value w at which to evaluate 356 361 double x, ///< Value x at which to evaluate 357 362 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 366 psVector *psDPolynomial1DEvalVector( 367 const psDPolynomial1D *myPoly, ///< Coefficients for the polynomial 368 const psVector *x ///< x locations at which to evaluate 369 ); 370 371 psVector *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 377 psVector *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 384 psVector *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 ); 383 391 384 392 -
trunk/psLib/src/dataManip/psRandom.c
r2432 r2433 10 10 * @author GLG, MHPCC 11 11 * 12 * @version $Revision: 1. 1$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-11-24 2 0:55:01$12 * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-11-24 21:59:43 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 20 20 #include <float.h> 21 21 #include <math.h> 22 #include <gsl/gsl_rng.h> 23 #include <gsl/gsl_randist.h> 22 24 25 #include "psMemory.h" 23 26 #include "psRandom.h" 24 27 #include "psScalar.h" 28 #include "psError.h" 29 #include "psTrace.h" 30 #include "psLogMsg.h" 31 #include "psConstants.h" 32 #include "psDataManipErrors.h" 25 33 26 34 /* … … 39 47 psU64 seed) 40 48 { 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 } 41 63 return(NULL); 42 64 } … … 44 66 void psRandomReset(psRandom *rand, 45 67 psU64 seed) 46 {} 68 { 69 gsl_rng_set(rand->gsl, seed); 70 } 47 71 48 72 psF64 psRandomUniform(const psRandom *r) 49 73 { 50 return( 0.0);74 return(gsl_rng_uniform(r->gsl)); 51 75 } 52 76 53 77 psF64 psRandomGaussian(const psRandom *r) 54 78 { 55 return(0.0); 79 // XXX: What should sigma be? 80 return(gsl_ran_gaussian(r->gsl, 1.0)); 56 81 } 57 82 58 83 psF64 psRandomPoisson(const psRandom *r, psF64 mean) 59 84 { 60 return( 0.0);85 return((psF64) gsl_ran_poisson(r->gsl, mean)); 61 86 } -
trunk/psLib/src/math/psPolynomial.c
r2431 r2433 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.6 8$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-11-24 2 0:34:13 $9 * @version $Revision: 1.69 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-11-24 21:59:43 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 399 399 if (myPoly->mask[loop_x][loop_y] == 0) { 400 400 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); 403 403 } 404 404 } … … 465 465 if (myPoly->mask[loop_x][loop_y][loop_z] == 0) { 466 466 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); 470 470 } 471 471 } … … 545 545 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) { 546 546 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); 551 551 } 552 552 } … … 651 651 if (myPoly->mask[loop_x][loop_y] == 0) { 652 652 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); 655 655 } 656 656 } … … 718 718 if (myPoly->mask[loop_x][loop_y][loop_z] == 0) { 719 719 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); 723 723 } 724 724 } … … 798 798 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) { 799 799 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); 804 804 } 805 805 } … … 1160 1160 } 1161 1161 1162 float psPolynomial1DEval( float x, const psPolynomial1D* myPoly)1162 float psPolynomial1DEval(const psPolynomial1D* myPoly, float x) 1163 1163 { 1164 1164 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1176 1176 } 1177 1177 1178 psVector *psPolynomial1DEvalVector(const ps Vector *x,1179 const ps Polynomial1D *myPoly)1178 psVector *psPolynomial1DEvalVector(const psPolynomial1D *myPoly, 1179 const psVector *x) 1180 1180 { 1181 1181 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1189 1189 tmp = psVectorAlloc(x->n, PS_TYPE_F32); 1190 1190 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]); 1192 1192 } 1193 1193 … … 1198 1198 } 1199 1199 1200 float psPolynomial2DEval( float x, float y, const psPolynomial2D* myPoly)1200 float psPolynomial2DEval(const psPolynomial2D* myPoly, float x, float y) 1201 1201 { 1202 1202 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1214 1214 } 1215 1215 1216 psVector *psPolynomial2DEvalVector(const psVector *x, 1217 const psVector *y, 1218 const psPolynomial2D *myPoly) 1216 psVector *psPolynomial2DEvalVector(const psPolynomial2D *myPoly, 1217 const psVector *x, 1218 const psVector *y) 1219 1219 1220 { 1220 1221 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1237 1238 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1238 1239 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 1242 1244 } 1243 1245 … … 1251 1253 } 1252 1254 1253 float psPolynomial3DEval( float x, float y, float z, const psPolynomial3D* myPoly)1255 float psPolynomial3DEval(const psPolynomial3D* myPoly, float x, float y, float z) 1254 1256 { 1255 1257 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1267 1269 } 1268 1270 1269 psVector *psPolynomial3DEvalVector(const psVector *x, 1271 psVector *psPolynomial3DEvalVector(const psPolynomial3D *myPoly, 1272 const psVector *x, 1270 1273 const psVector *y, 1271 const psVector *z ,1272 const psPolynomial3D *myPoly) 1274 const psVector *z) 1275 1273 1276 { 1274 1277 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1297 1300 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1298 1301 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], 1300 1304 myY->data.F32[i], 1301 myZ->data.F32[i] ,1302 myPoly); 1305 myZ->data.F32[i]); 1306 1303 1307 } 1304 1308 … … 1315 1319 } 1316 1320 1317 float psPolynomial4DEval( float w, float x, float y, float z, const psPolynomial4D* myPoly)1321 float psPolynomial4DEval(const psPolynomial4D* myPoly, float w, float x, float y, float z) 1318 1322 { 1319 1323 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1331 1335 } 1332 1336 1333 psVector *psPolynomial4DEvalVector(const psVector *w, 1337 psVector *psPolynomial4DEvalVector(const psPolynomial4D *myPoly, 1338 const psVector *w, 1334 1339 const psVector *x, 1335 1340 const psVector *y, 1336 const psVector *z, 1337 const psPolynomial4D *myPoly) 1341 const psVector *z) 1338 1342 { 1339 1343 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1368 1372 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1369 1373 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], 1371 1376 myX->data.F32[i], 1372 1377 myY->data.F32[i], 1373 myZ->data.F32[i] ,1374 myPoly); 1378 myZ->data.F32[i]); 1379 1375 1380 } 1376 1381 … … 1555 1560 1556 1561 1557 double psDPolynomial1DEval( double x, const psDPolynomial1D* myPoly)1562 double psDPolynomial1DEval(const psDPolynomial1D* myPoly, double x) 1558 1563 { 1559 1564 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1571 1576 } 1572 1577 1573 psVector *psDPolynomial1DEvalVector(const psVector *x, 1574 const psDPolynomial1D *myPoly) 1578 psVector *psDPolynomial1DEvalVector(const psDPolynomial1D *myPoly, 1579 const psVector *x) 1580 1575 1581 { 1576 1582 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1584 1590 tmp = psVectorAlloc(x->n, PS_TYPE_F64); 1585 1591 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]); 1587 1594 } 1588 1595 … … 1594 1601 1595 1602 1596 double psDPolynomial2DEval(double x, double y, const psDPolynomial2D* myPoly) 1603 double psDPolynomial2DEval(const psDPolynomial2D* myPoly, 1604 double x, 1605 double y) 1597 1606 { 1598 1607 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1610 1619 } 1611 1620 1612 psVector *psDPolynomial2DEvalVector(const ps Vector *x,1613 const psVector * y,1614 const ps DPolynomial2D *myPoly)1621 psVector *psDPolynomial2DEvalVector(const psDPolynomial2D *myPoly, 1622 const psVector *x, 1623 const psVector *y) 1615 1624 { 1616 1625 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1633 1642 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1634 1643 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 1638 1648 } 1639 1649 … … 1648 1658 1649 1659 1650 double psDPolynomial3DEval(double x, double y, double z, const psDPolynomial3D* myPoly) 1660 double psDPolynomial3DEval(const psDPolynomial3D* myPoly, 1661 double x, 1662 double y, 1663 double z) 1651 1664 { 1652 1665 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1664 1677 } 1665 1678 1666 psVector *psDPolynomial3DEvalVector(const psVector *x, 1679 psVector *psDPolynomial3DEvalVector(const psDPolynomial3D *myPoly, 1680 const psVector *x, 1667 1681 const psVector *y, 1668 const psVector *z ,1669 const psDPolynomial3D *myPoly) 1682 const psVector *z) 1683 1670 1684 { 1671 1685 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1694 1708 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1695 1709 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], 1697 1712 myY->data.F64[i], 1698 myZ->data.F64[i] ,1699 myPoly); 1713 myZ->data.F64[i]); 1714 1700 1715 } 1701 1716 … … 1712 1727 } 1713 1728 1714 double psDPolynomial4DEval(double w, double x, double y, double z, const psDPolynomial4D* myPoly) 1729 double psDPolynomial4DEval(const psDPolynomial4D* myPoly, 1730 double w, 1731 double x, 1732 double y, 1733 double z) 1715 1734 { 1716 1735 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1728 1747 } 1729 1748 1730 psVector *psDPolynomial4DEvalVector(const psVector *w, 1749 psVector *psDPolynomial4DEvalVector(const psDPolynomial4D *myPoly, 1750 const psVector *w, 1731 1751 const psVector *x, 1732 1752 const psVector *y, 1733 const psVector *z, 1734 const psDPolynomial4D *myPoly) 1753 const psVector *z) 1735 1754 { 1736 1755 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1765 1784 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1766 1785 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], 1768 1788 myX->data.F64[i], 1769 1789 myY->data.F64[i], 1770 myZ->data.F64[i] ,1771 myPoly); 1790 myZ->data.F64[i]); 1791 1772 1792 } 1773 1793 … … 2110 2130 2111 2131 if (x < (spline->domains)[0]) { 2112 return(psPolynomial1DEval(x, spline->spline[0])); 2132 return(psPolynomial1DEval(spline->spline[0], 2133 x)); 2113 2134 } 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)); 2119 2142 } 2120 2143 -
trunk/psLib/src/math/psPolynomial.h
r2431 r2433 12 12 * @author George Gusciora, MHPCC 13 13 * 14 * @version $Revision: 1.3 4$ $Name: not supported by cvs2svn $15 * @date $Date: 2004-11-24 2 0:34:13 $14 * @version $Revision: 1.35 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2004-11-24 21:59:43 $ 16 16 * 17 17 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 163 163 */ 164 164 float psPolynomial1DEval( 165 float x, ///< location at which to evaluate166 const psPolynomial1D* myPoly ///< Coefficients for the polynomial165 const psPolynomial1D* myPoly, ///< Coefficients for the polynomial 166 float x ///< location at which to evaluate 167 167 ); 168 168 … … 172 172 */ 173 173 float 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 */ 183 float psPolynomial3DEval( 184 const psPolynomial3D* myPoly, ///< Coefficients for the polynomial 174 185 float x, ///< x location at which to evaluate 175 186 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 188 188 ); 189 189 … … 193 193 */ 194 194 float psPolynomial4DEval( 195 const psPolynomial4D* myPoly, ///< Coefficients for the polynomial 195 196 float w, ///< w location at which to evaluate 196 197 float x, ///< x location at which to evaluate 197 198 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 202 psVector *psPolynomial1DEvalVector( 203 const psPolynomial1D *myPoly, ///< Coefficients for the polynomial 204 const psVector *x ///< x locations at which to evaluate 205 ); 206 207 psVector *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 213 psVector *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 220 psVector *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 ); 223 227 224 228 /*****************************************************************************/ … … 323 327 */ 324 328 double psDPolynomial1DEval( 325 double x, ///< Value at which to evaluate326 const psDPolynomial1D* myPoly ///< Coefficients for the polynomial329 const psDPolynomial1D* myPoly, ///< Coefficients for the polynomial 330 double x ///< Value at which to evaluate 327 331 ); 328 332 … … 332 336 */ 333 337 double psDPolynomial2DEval( 338 const psDPolynomial2D* myPoly, ///< Coefficients for the polynomial 334 339 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 337 341 ); 338 342 … … 342 346 */ 343 347 double psDPolynomial3DEval( 348 const psDPolynomial3D* myPoly, ///< Coefficients for the polynomial 344 349 double x, ///< Value x at which to evaluate 345 350 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 348 352 ); 349 353 … … 353 357 */ 354 358 double psDPolynomial4DEval( 359 const psDPolynomial4D* myPoly, ///< Coefficients for the polynomial 355 360 double w, ///< Value w at which to evaluate 356 361 double x, ///< Value x at which to evaluate 357 362 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 366 psVector *psDPolynomial1DEvalVector( 367 const psDPolynomial1D *myPoly, ///< Coefficients for the polynomial 368 const psVector *x ///< x locations at which to evaluate 369 ); 370 371 psVector *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 377 psVector *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 384 psVector *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 ); 383 391 384 392 -
trunk/psLib/src/math/psRandom.c
r2432 r2433 10 10 * @author GLG, MHPCC 11 11 * 12 * @version $Revision: 1. 1$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-11-24 2 0:55:01$12 * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-11-24 21:59:43 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 20 20 #include <float.h> 21 21 #include <math.h> 22 #include <gsl/gsl_rng.h> 23 #include <gsl/gsl_randist.h> 22 24 25 #include "psMemory.h" 23 26 #include "psRandom.h" 24 27 #include "psScalar.h" 28 #include "psError.h" 29 #include "psTrace.h" 30 #include "psLogMsg.h" 31 #include "psConstants.h" 32 #include "psDataManipErrors.h" 25 33 26 34 /* … … 39 47 psU64 seed) 40 48 { 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 } 41 63 return(NULL); 42 64 } … … 44 66 void psRandomReset(psRandom *rand, 45 67 psU64 seed) 46 {} 68 { 69 gsl_rng_set(rand->gsl, seed); 70 } 47 71 48 72 psF64 psRandomUniform(const psRandom *r) 49 73 { 50 return( 0.0);74 return(gsl_rng_uniform(r->gsl)); 51 75 } 52 76 53 77 psF64 psRandomGaussian(const psRandom *r) 54 78 { 55 return(0.0); 79 // XXX: What should sigma be? 80 return(gsl_ran_gaussian(r->gsl, 1.0)); 56 81 } 57 82 58 83 psF64 psRandomPoisson(const psRandom *r, psF64 mean) 59 84 { 60 return( 0.0);85 return((psF64) gsl_ran_poisson(r->gsl, mean)); 61 86 } -
trunk/psLib/src/math/psSpline.c
r2431 r2433 7 7 * polynomials. It also contains a Gaussian functions. 8 8 * 9 * @version $Revision: 1.6 8$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-11-24 2 0:34:13 $9 * @version $Revision: 1.69 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2004-11-24 21:59:43 $ 11 11 * 12 12 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 399 399 if (myPoly->mask[loop_x][loop_y] == 0) { 400 400 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); 403 403 } 404 404 } … … 465 465 if (myPoly->mask[loop_x][loop_y][loop_z] == 0) { 466 466 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); 470 470 } 471 471 } … … 545 545 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) { 546 546 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); 551 551 } 552 552 } … … 651 651 if (myPoly->mask[loop_x][loop_y] == 0) { 652 652 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); 655 655 } 656 656 } … … 718 718 if (myPoly->mask[loop_x][loop_y][loop_z] == 0) { 719 719 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); 723 723 } 724 724 } … … 798 798 if (myPoly->mask[loop_w][loop_x][loop_y][loop_z] == 0) { 799 799 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); 804 804 } 805 805 } … … 1160 1160 } 1161 1161 1162 float psPolynomial1DEval( float x, const psPolynomial1D* myPoly)1162 float psPolynomial1DEval(const psPolynomial1D* myPoly, float x) 1163 1163 { 1164 1164 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1176 1176 } 1177 1177 1178 psVector *psPolynomial1DEvalVector(const ps Vector *x,1179 const ps Polynomial1D *myPoly)1178 psVector *psPolynomial1DEvalVector(const psPolynomial1D *myPoly, 1179 const psVector *x) 1180 1180 { 1181 1181 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1189 1189 tmp = psVectorAlloc(x->n, PS_TYPE_F32); 1190 1190 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]); 1192 1192 } 1193 1193 … … 1198 1198 } 1199 1199 1200 float psPolynomial2DEval( float x, float y, const psPolynomial2D* myPoly)1200 float psPolynomial2DEval(const psPolynomial2D* myPoly, float x, float y) 1201 1201 { 1202 1202 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1214 1214 } 1215 1215 1216 psVector *psPolynomial2DEvalVector(const psVector *x, 1217 const psVector *y, 1218 const psPolynomial2D *myPoly) 1216 psVector *psPolynomial2DEvalVector(const psPolynomial2D *myPoly, 1217 const psVector *x, 1218 const psVector *y) 1219 1219 1220 { 1220 1221 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1237 1238 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1238 1239 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 1242 1244 } 1243 1245 … … 1251 1253 } 1252 1254 1253 float psPolynomial3DEval( float x, float y, float z, const psPolynomial3D* myPoly)1255 float psPolynomial3DEval(const psPolynomial3D* myPoly, float x, float y, float z) 1254 1256 { 1255 1257 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1267 1269 } 1268 1270 1269 psVector *psPolynomial3DEvalVector(const psVector *x, 1271 psVector *psPolynomial3DEvalVector(const psPolynomial3D *myPoly, 1272 const psVector *x, 1270 1273 const psVector *y, 1271 const psVector *z ,1272 const psPolynomial3D *myPoly) 1274 const psVector *z) 1275 1273 1276 { 1274 1277 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1297 1300 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1298 1301 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], 1300 1304 myY->data.F32[i], 1301 myZ->data.F32[i] ,1302 myPoly); 1305 myZ->data.F32[i]); 1306 1303 1307 } 1304 1308 … … 1315 1319 } 1316 1320 1317 float psPolynomial4DEval( float w, float x, float y, float z, const psPolynomial4D* myPoly)1321 float psPolynomial4DEval(const psPolynomial4D* myPoly, float w, float x, float y, float z) 1318 1322 { 1319 1323 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1331 1335 } 1332 1336 1333 psVector *psPolynomial4DEvalVector(const psVector *w, 1337 psVector *psPolynomial4DEvalVector(const psPolynomial4D *myPoly, 1338 const psVector *w, 1334 1339 const psVector *x, 1335 1340 const psVector *y, 1336 const psVector *z, 1337 const psPolynomial4D *myPoly) 1341 const psVector *z) 1338 1342 { 1339 1343 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1368 1372 tmp = psVectorAlloc(vecLen, PS_TYPE_F32); 1369 1373 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], 1371 1376 myX->data.F32[i], 1372 1377 myY->data.F32[i], 1373 myZ->data.F32[i] ,1374 myPoly); 1378 myZ->data.F32[i]); 1379 1375 1380 } 1376 1381 … … 1555 1560 1556 1561 1557 double psDPolynomial1DEval( double x, const psDPolynomial1D* myPoly)1562 double psDPolynomial1DEval(const psDPolynomial1D* myPoly, double x) 1558 1563 { 1559 1564 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1571 1576 } 1572 1577 1573 psVector *psDPolynomial1DEvalVector(const psVector *x, 1574 const psDPolynomial1D *myPoly) 1578 psVector *psDPolynomial1DEvalVector(const psDPolynomial1D *myPoly, 1579 const psVector *x) 1580 1575 1581 { 1576 1582 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1584 1590 tmp = psVectorAlloc(x->n, PS_TYPE_F64); 1585 1591 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]); 1587 1594 } 1588 1595 … … 1594 1601 1595 1602 1596 double psDPolynomial2DEval(double x, double y, const psDPolynomial2D* myPoly) 1603 double psDPolynomial2DEval(const psDPolynomial2D* myPoly, 1604 double x, 1605 double y) 1597 1606 { 1598 1607 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1610 1619 } 1611 1620 1612 psVector *psDPolynomial2DEvalVector(const ps Vector *x,1613 const psVector * y,1614 const ps DPolynomial2D *myPoly)1621 psVector *psDPolynomial2DEvalVector(const psDPolynomial2D *myPoly, 1622 const psVector *x, 1623 const psVector *y) 1615 1624 { 1616 1625 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1633 1642 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1634 1643 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 1638 1648 } 1639 1649 … … 1648 1658 1649 1659 1650 double psDPolynomial3DEval(double x, double y, double z, const psDPolynomial3D* myPoly) 1660 double psDPolynomial3DEval(const psDPolynomial3D* myPoly, 1661 double x, 1662 double y, 1663 double z) 1651 1664 { 1652 1665 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1664 1677 } 1665 1678 1666 psVector *psDPolynomial3DEvalVector(const psVector *x, 1679 psVector *psDPolynomial3DEvalVector(const psDPolynomial3D *myPoly, 1680 const psVector *x, 1667 1681 const psVector *y, 1668 const psVector *z ,1669 const psDPolynomial3D *myPoly) 1682 const psVector *z) 1683 1670 1684 { 1671 1685 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1694 1708 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1695 1709 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], 1697 1712 myY->data.F64[i], 1698 myZ->data.F64[i] ,1699 myPoly); 1713 myZ->data.F64[i]); 1714 1700 1715 } 1701 1716 … … 1712 1727 } 1713 1728 1714 double psDPolynomial4DEval(double w, double x, double y, double z, const psDPolynomial4D* myPoly) 1729 double psDPolynomial4DEval(const psDPolynomial4D* myPoly, 1730 double w, 1731 double x, 1732 double y, 1733 double z) 1715 1734 { 1716 1735 PS_POLY_CHECK_NULL(myPoly, NAN); … … 1728 1747 } 1729 1748 1730 psVector *psDPolynomial4DEvalVector(const psVector *w, 1749 psVector *psDPolynomial4DEvalVector(const psDPolynomial4D *myPoly, 1750 const psVector *w, 1731 1751 const psVector *x, 1732 1752 const psVector *y, 1733 const psVector *z, 1734 const psDPolynomial4D *myPoly) 1753 const psVector *z) 1735 1754 { 1736 1755 PS_POLY_CHECK_NULL(myPoly, NULL); … … 1765 1784 tmp = psVectorAlloc(vecLen, PS_TYPE_F64); 1766 1785 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], 1768 1788 myX->data.F64[i], 1769 1789 myY->data.F64[i], 1770 myZ->data.F64[i] ,1771 myPoly); 1790 myZ->data.F64[i]); 1791 1772 1792 } 1773 1793 … … 2110 2130 2111 2131 if (x < (spline->domains)[0]) { 2112 return(psPolynomial1DEval(x, spline->spline[0])); 2132 return(psPolynomial1DEval(spline->spline[0], 2133 x)); 2113 2134 } 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)); 2119 2142 } 2120 2143 -
trunk/psLib/src/math/psSpline.h
r2431 r2433 12 12 * @author George Gusciora, MHPCC 13 13 * 14 * @version $Revision: 1.3 4$ $Name: not supported by cvs2svn $15 * @date $Date: 2004-11-24 2 0:34:13 $14 * @version $Revision: 1.35 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2004-11-24 21:59:43 $ 16 16 * 17 17 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 163 163 */ 164 164 float psPolynomial1DEval( 165 float x, ///< location at which to evaluate166 const psPolynomial1D* myPoly ///< Coefficients for the polynomial165 const psPolynomial1D* myPoly, ///< Coefficients for the polynomial 166 float x ///< location at which to evaluate 167 167 ); 168 168 … … 172 172 */ 173 173 float 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 */ 183 float psPolynomial3DEval( 184 const psPolynomial3D* myPoly, ///< Coefficients for the polynomial 174 185 float x, ///< x location at which to evaluate 175 186 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 188 188 ); 189 189 … … 193 193 */ 194 194 float psPolynomial4DEval( 195 const psPolynomial4D* myPoly, ///< Coefficients for the polynomial 195 196 float w, ///< w location at which to evaluate 196 197 float x, ///< x location at which to evaluate 197 198 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 202 psVector *psPolynomial1DEvalVector( 203 const psPolynomial1D *myPoly, ///< Coefficients for the polynomial 204 const psVector *x ///< x locations at which to evaluate 205 ); 206 207 psVector *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 213 psVector *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 220 psVector *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 ); 223 227 224 228 /*****************************************************************************/ … … 323 327 */ 324 328 double psDPolynomial1DEval( 325 double x, ///< Value at which to evaluate326 const psDPolynomial1D* myPoly ///< Coefficients for the polynomial329 const psDPolynomial1D* myPoly, ///< Coefficients for the polynomial 330 double x ///< Value at which to evaluate 327 331 ); 328 332 … … 332 336 */ 333 337 double psDPolynomial2DEval( 338 const psDPolynomial2D* myPoly, ///< Coefficients for the polynomial 334 339 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 337 341 ); 338 342 … … 342 346 */ 343 347 double psDPolynomial3DEval( 348 const psDPolynomial3D* myPoly, ///< Coefficients for the polynomial 344 349 double x, ///< Value x at which to evaluate 345 350 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 348 352 ); 349 353 … … 353 357 */ 354 358 double psDPolynomial4DEval( 359 const psDPolynomial4D* myPoly, ///< Coefficients for the polynomial 355 360 double w, ///< Value w at which to evaluate 356 361 double x, ///< Value x at which to evaluate 357 362 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 366 psVector *psDPolynomial1DEvalVector( 367 const psDPolynomial1D *myPoly, ///< Coefficients for the polynomial 368 const psVector *x ///< x locations at which to evaluate 369 ); 370 371 psVector *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 377 psVector *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 384 psVector *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 ); 383 391 384 392
Note:
See TracChangeset
for help on using the changeset viewer.
