00001 /** @file psMinimizePowell.c 00002 * \brief basic minimization functions 00003 * @ingroup Math 00004 * 00005 * This file will contain function prototypes for various Powell 00006 * chi-squared minimization routines. 00007 * 00008 * @author GLG, MHPCC 00009 * 00010 * @version $Revision: 1.3 $ $Name: rel12 $ 00011 * @date $Date: 2006/02/07 23:14:21 $ 00012 * 00013 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii 00014 * 00015 */ 00016 00017 #ifndef PS_MINIMIZE_POWELL_H 00018 #define PS_MINIMIZE_POWELL_H 00019 00020 /** \file psMinimizePowell.h 00021 * \brief minimization operations 00022 * \ingroup Stats 00023 */ 00024 /** \addtogroup Stats 00025 * \{ 00026 */ 00027 00028 #include "psMinimizeLMM.h" 00029 #include "psVector.h" 00030 #include "psMemory.h" 00031 #include "psArray.h" 00032 #include "psImage.h" 00033 #include "psMatrix.h" 00034 #include "psPolynomial.h" 00035 #include "psSpline.h" 00036 #include "psStats.h" 00037 #include "psTrace.h" 00038 #include "psError.h" 00039 #include "psConstants.h" 00040 00041 /** Specifies the format of a user-defined function that the general Powell 00042 * minimizer routine will accept. 00043 * 00044 * @return float: the single float value of the function given the parameters 00045 * and coordinate vectors. 00046 */ 00047 typedef 00048 float (*psMinimizePowellFunc)( 00049 const psVector *params, ///< Parameters used to evaluate the function 00050 const psArray *coords ///< Coordinates at which to evaluate 00051 ); 00052 00053 /** Minimizes a specified function based on the Powell method. 00054 * 00055 * @return bool: True if successful. 00056 */ 00057 bool psMinimizePowell( 00058 psMinimization *min, ///< Minimization specification 00059 psVector *params, ///< "Best guess" for parameters that minimize func 00060 const psVector *paramMask, ///< Parameters to be held fixed by minimizer 00061 const psArray *coords, ///< Measurement coordinates 00062 psMinimizePowellFunc func ///< Specified function 00063 ); 00064 00065 /** Specifies the format of a user-defined function that the general Powell chi- 00066 * squared minimizer routine will accept. 00067 * 00068 * @return psVector*: Calculated values given the parameters and coordinates. 00069 */ 00070 typedef 00071 psVector *(*psMinimizeChi2PowellFunc)( 00072 const psVector *params, ///< Parameters used to evaluate the function 00073 const psArray *coords ///< Coordinates at which to evaluate 00074 ); 00075 00076 /** Minimizes a specified function based on the Powell chi-squared method. 00077 * 00078 * @return bool: True is successful. 00079 */ 00080 bool psMinimizeChi2Powell( 00081 psMinimization *min, ///< Minimization specification 00082 psVector *params, ///< "Best guess" for parameters that minimize func 00083 psMinConstrain *constrain, 00084 const psArray *coords, ///< Measurement coordinates 00085 const psVector *value, ///< Measured values at the coordinates 00086 const psVector *error, ///< Errors in the measure values (or NULL) 00087 psMinimizeChi2PowellFunc model ///< Specified function 00088 ); 00089 00090 /* \} */// End of MathGroup Functions 00091 00092 #endif // #ifndef PS_MINIMIZE_POWELL_H 00093
1.4.4