Changeset 4243 for trunk/psLib/src/dataManip/psMinimize.h
- Timestamp:
- Jun 13, 2005, 4:54:15 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/dataManip/psMinimize.h (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/dataManip/psMinimize.h
r4162 r4243 8 8 * @author GLG, MHPCC 9 9 * 10 * @version $Revision: 1.4 3$ $Name: not supported by cvs2svn $11 * @date $Date: 2005-06- 08 23:40:45$10 * @version $Revision: 1.44 $ $Name: not supported by cvs2svn $ 11 * @date $Date: 2005-06-14 02:54:12 $ 12 12 * 13 13 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 37 37 #include "psConstants.h" 38 38 39 /** A psMinimization data structure. 40 * 41 * Contains numerical analysis parameters/values 42 */ 39 43 typedef struct 40 44 { … … 47 51 psMinimization; 48 52 49 psMinimization *psMinimizationAlloc(psS32 maxIter, ///< Number of minimization iterations to perform. 50 psF32 tol ///< Requested error tolerance 51 ); 53 /** Allocates a psMinimization structure. 54 * 55 * @return psMinimization* : a new psMinimization struct 56 */ 57 psMinimization *psMinimizationAlloc( 58 psS32 maxIter, ///< Number of minimization iterations to perform. 59 psF32 tol ///< Requested error tolerance 60 ); 52 61 53 62 /** Derive a polynomial fit. … … 71 80 ); 72 81 73 psSpline1D *psVectorFitSpline1D(psSpline1D *mySpline, ///< The spline which will be generated. 74 const psVector* x, ///< Ordinates (or NULL to just use the indices) 75 const psVector* y, ///< Coordinates 76 const psVector* yErr ///< Errors in coordinates, or NULL 77 ); 78 79 // XXX: Add Doxygen comments here. 82 /** Derive a one-dimensional spline fit. 83 * 84 * Given a psSpline1D data structure and a set of x,y vectors, this routine generates 85 * the linear splines which satisfy those data points. 86 * 87 * @return psSpline1D*: the calculated one-dimensional splines 88 */ 89 psSpline1D *psVectorFitSpline1D( 90 psSpline1D *mySpline, ///< The spline which will be generated. 91 const psVector* x, ///< Ordinates (or NULL to just use the indices) 92 const psVector* y, ///< Coordinates 93 const psVector* yErr ///< Errors in coordinates, or NULL 94 ); 95 96 /** Defines a Levenberg-Marquardt function of a collection of parameters evaluated at a given position. 97 * 98 * @return psF64: a single floating-point value which is the value of the function given the parameters 99 * and coordinate vectors, along with the derivatives of the function with respect to each of the parameters. 100 */ 80 101 typedef 81 psF64 (*psMinimizeLMChi2Func)(psVector *deriv, 82 psVector *params, 83 psVector *x); 84 85 psBool psMinimizeLMChi2(psMinimization *min, 86 psImage *covar, 87 psVector *params, 88 const psVector *paramMask, 89 const psArray *x, 90 const psVector *y, 91 const psVector *yErr, 92 psMinimizeLMChi2Func func); 93 94 psBool p_psMinLM_GuessABP (psImage *Alpha, 95 psVector *Beta, 96 psVector *Params, 97 psImage *alpha, 98 psVector *beta, 99 psVector *params, 100 psF64 lambda); 101 102 psF64 p_psMinLM_SetABX (psImage *alpha, 103 psVector *beta, 104 psVector *params, 105 const psArray *x, 106 const psVector *y, 107 const psVector *dy, 108 psMinimizeLMChi2Func func); 109 102 psF64 (*psMinimizeLMChi2Func)( 103 psVector *deriv, ///< derivatives of the function 104 psVector *params, ///< the parameters used to evaluate the function 105 psVector *x ///< positions for evaluation 106 ); 107 108 /** Fits a specified function based on the Levenberg-Marquardt method. 109 * 110 * @return psBool: True unless an error occurred. 111 */ 112 psBool psMinimizeLMChi2( 113 psMinimization *min, ///< 114 psImage *covar, ///< 115 psVector *params, ///< 116 const psVector *paramMask, ///< 117 const psArray *x, ///< 118 const psVector *y, ///< 119 const psVector *yErr, ///< 120 psMinimizeLMChi2Func func ///< 121 ); 122 123 /** 124 * 125 * 126 * @return psBool: True if 127 */ 128 psBool p_psMinLM_GuessABP( 129 psImage *Alpha, ///< 130 psVector *Beta, ///< 131 psVector *Params, ///< 132 psImage *alpha, ///< 133 psVector *beta, ///< 134 psVector *params, ///< 135 psF64 lambda ///< 136 ); 137 138 /** 139 * 140 * 141 * @return psF64: 142 */ 143 psF64 p_psMinLM_SetABX ( 144 psImage *alpha, ///< 145 psVector *beta, ///< 146 psVector *params, ///< 147 const psArray *x, ///< 148 const psVector *y, ///< 149 const psVector *dy, ///< 150 psMinimizeLMChi2Func func); ///< 151 152 /** 153 * 154 * 155 * @return psF32: 156 */ 110 157 typedef 111 psF32 (*psMinimizePowellFunc)(const psVector *params, 112 const psArray *coords); 113 114 psBool psMinimizePowell(psMinimization *min, 115 psVector *params, 116 const psVector *paramMask, 117 const psArray *coords, 118 psMinimizePowellFunc func); 119 120 psVector *psMinimizeLMChi2Gauss1D(psImage *deriv, 121 const psVector *params, 122 const psArray *coords); 123 124 psVector *psMinimizePowellChi2Gauss1D(const psVector *params, 125 const psArray *coords); 126 158 psF32 (*psMinimizePowellFunc)( 159 const psVector *params, ///< 160 const psArray *coords ///< 161 ); 162 163 164 /** 165 * 166 * 167 * @return psBool: True if 168 */ 169 psBool psMinimizePowell( 170 psMinimization *min, ///< 171 psVector *params, ///< 172 const psVector *paramMask, ///< 173 const psArray *coords, ///< 174 psMinimizePowellFunc func ///< 175 ); 176 177 /** 178 * 179 * 180 * @return psVector*: 181 */ 182 psVector *psMinimizeLMChi2Gauss1D( 183 psImage *deriv, ///< 184 const psVector *params, ///< 185 const psArray *coords ///< 186 ); 187 188 /** 189 * 190 * 191 * @return psVector*: 192 */ 193 psVector *psMinimizePowellChi2Gauss1D( 194 const psVector *params, ///< 195 const psArray *coords ///< 196 ); 197 198 /** 199 * 200 * 201 * 202 */ 127 203 typedef 128 psVector *(*psMinimizeChi2PowellFunc)(const psVector *params, 129 const psArray *coords); 130 131 psBool psMinimizeChi2Powell(psMinimization *min, 132 psVector *params, 133 const psVector *paramMask, 134 const psArray *coords, 135 const psVector *value, 136 const psVector *error, 137 psMinimizeChi2PowellFunc func); 138 139 // XXX EAM : psGaussJordan provided as an alternate to LU Decomp for psMinimizeLMChi2 140 bool psGaussJordan (psImage *a, psVector *b); 204 psVector *(*psMinimizeChi2PowellFunc)( 205 const psVector *params, ///< 206 const psArray *coords ///< 207 ); 208 209 210 /** 211 * 212 * 213 * @return psBool: True if 214 */ 215 psBool psMinimizeChi2Powell( 216 psMinimization *min, ///< 217 psVector *params, ///< 218 const psVector *paramMask, ///< 219 const psArray *coords, ///< 220 const psVector *value, ///< 221 const psVector *error, ///< 222 psMinimizeChi2PowellFunc func ///< 223 ); 224 225 /** 226 * 227 * 228 * @return bool: True if 229 */ 230 bool psGaussJordan( 231 psImage *a, ///< 232 psVector *b ///< 233 ); 141 234 142 235 /* \} */// End of MathGroup Functions
Note:
See TracChangeset
for help on using the changeset viewer.
