IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jun 13, 2005, 4:54:15 PM (21 years ago)
Author:
drobbin
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/dataManip/psMinimize.h

    r4162 r4243  
    88 *  @author GLG, MHPCC
    99 *
    10  *  @version $Revision: 1.43 $ $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 $
    1212 *
    1313 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3737#include "psConstants.h"
    3838
     39/** A psMinimization data structure.
     40 * 
     41 *  Contains numerical analysis parameters/values
     42 */
    3943typedef struct
    4044{
     
    4751psMinimization;
    4852
    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*/
     57psMinimization *psMinimizationAlloc(
     58    psS32 maxIter,                     ///< Number of minimization iterations to perform.
     59    psF32 tol                          ///< Requested error tolerance
     60);
    5261
    5362/** Derive a polynomial fit.
     
    7180);
    7281
    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 */
     89psSpline1D *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 */
    80101typedef
    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 
     102psF64 (*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 */
     112psBool 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 */
     128psBool 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 */
     143psF64 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*/
    110157typedef
    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 
     158psF32 (*psMinimizePowellFunc)(
     159    const psVector *params,            ///<
     160    const psArray *coords              ///<
     161);
     162
     163
     164/**
     165 * 
     166 *
     167 *  @return psBool:   True if
     168 */
     169psBool 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 */
     182psVector *psMinimizeLMChi2Gauss1D(
     183    psImage *deriv,                    ///<
     184    const psVector *params,            ///<
     185    const psArray *coords              ///<
     186);
     187
     188/**
     189 * 
     190 *
     191 *  @return psVector*:   
     192 */
     193psVector *psMinimizePowellChi2Gauss1D(
     194    const psVector *params,            ///<
     195    const psArray *coords              ///<
     196);
     197
     198/**
     199 * 
     200 * 
     201 * 
     202*/
    127203typedef
    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);
     204psVector *(*psMinimizeChi2PowellFunc)(
     205    const psVector *params,            ///<
     206    const psArray *coords              ///<
     207);
     208
     209
     210/**
     211 * 
     212 *
     213 *  @return psBool:   True if
     214 */
     215psBool 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 */
     230bool psGaussJordan(
     231    psImage *a,                        ///<
     232    psVector *b                        ///<
     233);
    141234
    142235/* \} */// End of MathGroup Functions
Note: See TracChangeset for help on using the changeset viewer.