00001 /* 00002 * Parameter.h 00003 * 00004 * Created on: Apr 30, 2012 00005 * Author: Brenda Javornik (e-mail: brendaj (at) nwra.com) 00006 */ 00007 00008 #ifndef PARAMETER_H_ 00009 #define PARAMETER_H_ 00010 00011 #include "utilities.h" 00012 #include "lambda.h" 00013 #include "FileMapAndParameters.h" 00014 #include "FITSParameters.h" 00015 00020 typedef struct ParameterTypeNode { 00021 Float currentValue; 00022 Float currentStep; 00023 LambdaSet parameterRange; 00024 struct ParameterTypeNode *next; 00025 void (*increment) (struct ParameterTypeNode *); 00026 bool (*more) (struct ParameterTypeNode *); 00027 } ParameterType; 00028 00029 void incrementParameter(ParameterType *pt); 00030 bool moreParameters(ParameterType *pt); 00031 void addParameter(LambdaSet ls); 00032 void incrementSigma(ParameterType *pt); 00033 00034 // Currently, there are four parameters, mu, sigma, nu, and epsilon 00035 #define NUM_PARAMETERS MAX_FITS_PARMS 00036 00037 /* 00038 // Global variables 00039 // Parameters is a pointer to the head of a linked list of parameters. 00040 // Mu, Nu, and Sigma are pointers to individual elements/nodes of the 00041 // parameter list. 00042 ParameterType *Parameters = NULL; 00043 ParameterType *Nu = NULL; 00044 ParameterType *Mu = NULL; 00045 ParameterType *Sigma = NULL; 00046 */ 00047 00048 ParameterType *getSigma(); 00049 void setSigma(ParameterType *pt); 00050 00051 void setSigmaStep(int steps); 00052 00053 ParameterType *getParameters(); 00054 00055 ParameterType *getMu(); 00056 void setMu(ParameterType *pt); 00057 00058 ParameterType *getNu(); 00059 void setNu(ParameterType *pt); 00060 00061 ParameterType *getEpsilon(); 00062 void setEpsilon(ParameterType *pt); 00063 00064 void initLoopParameters(InputParms inputParms); 00065 00066 void destroyParameters(ParameterType *pt); 00067 00068 void doSomething(Float *parmValuesPtr, int *parmStepsPtr, int *nParms); 00069 00072 #endif /* PARAMETER_H_ */