Changeset 3854
- Timestamp:
- May 5, 2005, 12:21:55 PM (21 years ago)
- Location:
- trunk/psLib/src
- Files:
-
- 2 edited
-
dataManip/psMinimize.c (modified) (15 diffs)
-
math/psMinimize.c (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psMinimize.c
r3853 r3854 9 9 * @author GLG, MHPCC 10 10 * 11 * @version $Revision: 1.11 2$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-05-05 22: 15:16$11 * @version $Revision: 1.113 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-05-05 22:21:55 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 60 60 XXX: Use a static vector. 61 61 *****************************************************************************/ 62 void psBuildSums1D(psF64 x,63 psS32 polyOrder,64 psVector* sums)62 static void buildSums1D(psF64 x, 63 psS32 polyOrder, 64 psVector* sums) 65 65 { 66 66 psS32 i = 0; … … 96 96 XXX: do an F64 version? 97 97 *****************************************************************************/ 98 psF32 *CalculateSecondDerivs(const psVector* x, ///< Ordinates (or NULL to just use the indices)99 const psVector* y) ///< Coordinates100 { 101 psTrace(".psLib.dataManip. CalculateSecondDerivs", 4,102 "---- CalculateSecondDerivs() begin ----\n");98 static psF32 *calculateSecondDerivs(const psVector* x, ///< Ordinates (or NULL to just use the indices) 99 const psVector* y) ///< Coordinates 100 { 101 psTrace(".psLib.dataManip.calculateSecondDerivs", 4, 102 "---- calculateSecondDerivs() begin ----\n"); 103 103 104 104 psS32 i; … … 125 125 u[i] = ((6.0 * u[i] / (X[i+1] - X[i-1])) - (sig * u[i-1])) / p; 126 126 127 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,127 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 128 128 "X[%d] is %f\n", i, X[i]); 129 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,129 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 130 130 "Y[%d] is %f\n", i, Y[i]); 131 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,131 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 132 132 "u[%d] is %f\n", i, u[i]); 133 133 } … … 140 140 derivs2[k] = derivs2[k] * derivs2[k+1] + u[k]; 141 141 142 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,142 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 143 143 "derivs2[%d] is %f\n", k, derivs2[k]); 144 144 } 145 145 146 146 psFree(u); 147 psTrace(".psLib.dataManip. CalculateSecondDerivs", 4,148 "---- CalculateSecondDerivs() end ----\n");147 psTrace(".psLib.dataManip.calculateSecondDerivs", 4, 148 "---- calculateSecondDerivs() end ----\n"); 149 149 return(derivs2); 150 150 } … … 347 347 // If we get here, then we know these are cubic splines. We first 348 348 // generate the second derivatives at each data point. 349 mySpline->p_psDeriv2 = CalculateSecondDerivs(x32, y32);349 mySpline->p_psDeriv2 = calculateSecondDerivs(x32, y32); 350 350 for (i=0;i<y32->n;i++) 351 351 psTrace(".psLib.dataManip.psVectorFitSpline1D", 6, … … 1194 1194 1195 1195 /****************************************************************************** 1196 VectorFitPolynomial1DCheb(): This routine will fit a Chebyshev polynomial of1196 vectorFitPolynomial1DCheb(): This routine will fit a Chebyshev polynomial of 1197 1197 degree myPoly to the data points (x, y) and return the coefficients of that 1198 1198 polynomial. 1199 1199 1200 1200 XXX: yErr is currently ignored. 1201 1202 XXX: Use private name?1203 1201 *****************************************************************************/ 1204 psPolynomial1D *VectorFitPolynomial1DCheby(psPolynomial1D* myPoly,1202 static psPolynomial1D *vectorFitPolynomial1DCheby(psPolynomial1D* myPoly, 1205 1203 const psVector* x, 1206 1204 const psVector* y, … … 1249 1247 psFree(fScalar); 1250 1248 1251 psTrace(".psLib.dataManip. VectorFitPolynomial1DCheby", 6,1249 psTrace(".psLib.dataManip.vectorFitPolynomial1DCheby", 6, 1252 1250 "(x, X, y, f(X)) is (%f, %f, %f, %f)\n", 1253 1251 x->data.F64[i], X, y->data.F64[i], f->data.F64[i]); … … 1280 1278 XXX: Use recycled vectors. 1281 1279 *****************************************************************************/ 1282 psPolynomial1D* VectorFitPolynomial1DOrd(psPolynomial1D* myPoly,1280 static psPolynomial1D* vectorFitPolynomial1DOrd(psPolynomial1D* myPoly, 1283 1281 const psVector* x, 1284 1282 const psVector* y, … … 1297 1295 psVector* xSums = NULL; 1298 1296 1299 psTrace(".psLib.dataManip. VectorFitPolynomial1DOrd", 4,1300 "---- VectorFitPolynomial1DOrd() begin ----\n");1297 psTrace(".psLib.dataManip.vectorFitPolynomial1DOrd", 4, 1298 "---- vectorFitPolynomial1DOrd() begin ----\n"); 1301 1299 // printf("VectorFitPolynomial1D()\n"); 1302 1300 // for (i=0;i<x->n;i++) { … … 1328 1326 if (yErr == NULL) { 1329 1327 for (i = 0; i < X->n; i++) { 1330 psBuildSums1D(X->data.F64[i], 2 * polyOrder, xSums);1328 buildSums1D(X->data.F64[i], 2 * polyOrder, xSums); 1331 1329 1332 1330 for (k = 0; k < polyOrder; k++) { … … 1342 1340 } else { 1343 1341 for (i = 0; i < X->n; i++) { 1344 psBuildSums1D(X->data.F64[i], 2 * polyOrder, xSums);1342 buildSums1D(X->data.F64[i], 2 * polyOrder, xSums); 1345 1343 1346 1344 for (k = 0; k < polyOrder; k++) { … … 1375 1373 psFree(xSums); 1376 1374 1377 psTrace(".psLib.dataManip. VectorFitPolynomial1DOrd", 4,1378 "---- VectorFitPolynomial1DOrd() begin ----\n");1375 psTrace(".psLib.dataManip.vectorFitPolynomial1DOrd", 4, 1376 "---- vectorFitPolynomial1DOrd() begin ----\n"); 1379 1377 return (myPoly); 1380 1378 } … … 1436 1434 psPolynomial1D *rc = NULL; 1437 1435 if (myPoly->type == PS_POLYNOMIAL_CHEB) { 1438 rc = VectorFitPolynomial1DCheby(myPoly, x64, y64, yErr64);1436 rc = vectorFitPolynomial1DCheby(myPoly, x64, y64, yErr64); 1439 1437 } else if (myPoly->type == PS_POLYNOMIAL_ORD) { 1440 rc = VectorFitPolynomial1DOrd(myPoly, x64, y64, yErr64);1438 rc = vectorFitPolynomial1DOrd(myPoly, x64, y64, yErr64); 1441 1439 } else { 1442 1440 psError(PS_ERR_BAD_PARAMETER_VALUE, true, … … 2171 2169 XXX: This is F32 only 2172 2170 *****************************************************************************/ 2173 psF32 myPowellChi2Func(const psVector *params,2174 const psArray *coords)2171 static psF32 myPowellChi2Func(const psVector *params, 2172 const psArray *coords) 2175 2173 { 2176 2174 psTrace(".psLib.dataManip.myPowellChi2Func", 4, -
trunk/psLib/src/math/psMinimize.c
r3853 r3854 9 9 * @author GLG, MHPCC 10 10 * 11 * @version $Revision: 1.11 2$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-05-05 22: 15:16$11 * @version $Revision: 1.113 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-05-05 22:21:55 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 60 60 XXX: Use a static vector. 61 61 *****************************************************************************/ 62 void psBuildSums1D(psF64 x,63 psS32 polyOrder,64 psVector* sums)62 static void buildSums1D(psF64 x, 63 psS32 polyOrder, 64 psVector* sums) 65 65 { 66 66 psS32 i = 0; … … 96 96 XXX: do an F64 version? 97 97 *****************************************************************************/ 98 psF32 *CalculateSecondDerivs(const psVector* x, ///< Ordinates (or NULL to just use the indices)99 const psVector* y) ///< Coordinates100 { 101 psTrace(".psLib.dataManip. CalculateSecondDerivs", 4,102 "---- CalculateSecondDerivs() begin ----\n");98 static psF32 *calculateSecondDerivs(const psVector* x, ///< Ordinates (or NULL to just use the indices) 99 const psVector* y) ///< Coordinates 100 { 101 psTrace(".psLib.dataManip.calculateSecondDerivs", 4, 102 "---- calculateSecondDerivs() begin ----\n"); 103 103 104 104 psS32 i; … … 125 125 u[i] = ((6.0 * u[i] / (X[i+1] - X[i-1])) - (sig * u[i-1])) / p; 126 126 127 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,127 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 128 128 "X[%d] is %f\n", i, X[i]); 129 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,129 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 130 130 "Y[%d] is %f\n", i, Y[i]); 131 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,131 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 132 132 "u[%d] is %f\n", i, u[i]); 133 133 } … … 140 140 derivs2[k] = derivs2[k] * derivs2[k+1] + u[k]; 141 141 142 psTrace(".psLib.dataManip. CalculateSecondDerivs", 6,142 psTrace(".psLib.dataManip.calculateSecondDerivs", 6, 143 143 "derivs2[%d] is %f\n", k, derivs2[k]); 144 144 } 145 145 146 146 psFree(u); 147 psTrace(".psLib.dataManip. CalculateSecondDerivs", 4,148 "---- CalculateSecondDerivs() end ----\n");147 psTrace(".psLib.dataManip.calculateSecondDerivs", 4, 148 "---- calculateSecondDerivs() end ----\n"); 149 149 return(derivs2); 150 150 } … … 347 347 // If we get here, then we know these are cubic splines. We first 348 348 // generate the second derivatives at each data point. 349 mySpline->p_psDeriv2 = CalculateSecondDerivs(x32, y32);349 mySpline->p_psDeriv2 = calculateSecondDerivs(x32, y32); 350 350 for (i=0;i<y32->n;i++) 351 351 psTrace(".psLib.dataManip.psVectorFitSpline1D", 6, … … 1194 1194 1195 1195 /****************************************************************************** 1196 VectorFitPolynomial1DCheb(): This routine will fit a Chebyshev polynomial of1196 vectorFitPolynomial1DCheb(): This routine will fit a Chebyshev polynomial of 1197 1197 degree myPoly to the data points (x, y) and return the coefficients of that 1198 1198 polynomial. 1199 1199 1200 1200 XXX: yErr is currently ignored. 1201 1202 XXX: Use private name?1203 1201 *****************************************************************************/ 1204 psPolynomial1D *VectorFitPolynomial1DCheby(psPolynomial1D* myPoly,1202 static psPolynomial1D *vectorFitPolynomial1DCheby(psPolynomial1D* myPoly, 1205 1203 const psVector* x, 1206 1204 const psVector* y, … … 1249 1247 psFree(fScalar); 1250 1248 1251 psTrace(".psLib.dataManip. VectorFitPolynomial1DCheby", 6,1249 psTrace(".psLib.dataManip.vectorFitPolynomial1DCheby", 6, 1252 1250 "(x, X, y, f(X)) is (%f, %f, %f, %f)\n", 1253 1251 x->data.F64[i], X, y->data.F64[i], f->data.F64[i]); … … 1280 1278 XXX: Use recycled vectors. 1281 1279 *****************************************************************************/ 1282 psPolynomial1D* VectorFitPolynomial1DOrd(psPolynomial1D* myPoly,1280 static psPolynomial1D* vectorFitPolynomial1DOrd(psPolynomial1D* myPoly, 1283 1281 const psVector* x, 1284 1282 const psVector* y, … … 1297 1295 psVector* xSums = NULL; 1298 1296 1299 psTrace(".psLib.dataManip. VectorFitPolynomial1DOrd", 4,1300 "---- VectorFitPolynomial1DOrd() begin ----\n");1297 psTrace(".psLib.dataManip.vectorFitPolynomial1DOrd", 4, 1298 "---- vectorFitPolynomial1DOrd() begin ----\n"); 1301 1299 // printf("VectorFitPolynomial1D()\n"); 1302 1300 // for (i=0;i<x->n;i++) { … … 1328 1326 if (yErr == NULL) { 1329 1327 for (i = 0; i < X->n; i++) { 1330 psBuildSums1D(X->data.F64[i], 2 * polyOrder, xSums);1328 buildSums1D(X->data.F64[i], 2 * polyOrder, xSums); 1331 1329 1332 1330 for (k = 0; k < polyOrder; k++) { … … 1342 1340 } else { 1343 1341 for (i = 0; i < X->n; i++) { 1344 psBuildSums1D(X->data.F64[i], 2 * polyOrder, xSums);1342 buildSums1D(X->data.F64[i], 2 * polyOrder, xSums); 1345 1343 1346 1344 for (k = 0; k < polyOrder; k++) { … … 1375 1373 psFree(xSums); 1376 1374 1377 psTrace(".psLib.dataManip. VectorFitPolynomial1DOrd", 4,1378 "---- VectorFitPolynomial1DOrd() begin ----\n");1375 psTrace(".psLib.dataManip.vectorFitPolynomial1DOrd", 4, 1376 "---- vectorFitPolynomial1DOrd() begin ----\n"); 1379 1377 return (myPoly); 1380 1378 } … … 1436 1434 psPolynomial1D *rc = NULL; 1437 1435 if (myPoly->type == PS_POLYNOMIAL_CHEB) { 1438 rc = VectorFitPolynomial1DCheby(myPoly, x64, y64, yErr64);1436 rc = vectorFitPolynomial1DCheby(myPoly, x64, y64, yErr64); 1439 1437 } else if (myPoly->type == PS_POLYNOMIAL_ORD) { 1440 rc = VectorFitPolynomial1DOrd(myPoly, x64, y64, yErr64);1438 rc = vectorFitPolynomial1DOrd(myPoly, x64, y64, yErr64); 1441 1439 } else { 1442 1440 psError(PS_ERR_BAD_PARAMETER_VALUE, true, … … 2171 2169 XXX: This is F32 only 2172 2170 *****************************************************************************/ 2173 psF32 myPowellChi2Func(const psVector *params,2174 const psArray *coords)2171 static psF32 myPowellChi2Func(const psVector *params, 2172 const psArray *coords) 2175 2173 { 2176 2174 psTrace(".psLib.dataManip.myPowellChi2Func", 4,
Note:
See TracChangeset
for help on using the changeset viewer.
