Doxygen Source Code Documentation
model_constant.c
Go to the documentation of this file.00001 /***************************************************************************** 00002 Major portions of this software are copyrighted by the Medical College 00003 of Wisconsin, 1994-2000, and are released under the Gnu General Public 00004 License, Version 2. See the file README.Copyright for details. 00005 ******************************************************************************/ 00006 00007 /* 00008 This file contains routines to initialize and implement the 00009 constant plus noise model. 00010 00011 File: model_constant.c 00012 Author: B. Douglas Ward 00013 Date: 29 May 1997 00014 00015 */ 00016 00017 00018 /*---------------------------------------------------------------------------*/ 00019 00020 #include <math.h> 00021 #include "NLfit_model.h" 00022 00023 00024 void noise_model 00025 ( 00026 float * gn, /* parameters for noise model */ 00027 int ts_length, /* length of time series data */ 00028 float ** x_array, /* independent variable matrix */ 00029 float * ts_array /* estimated noise model time series */ 00030 ); 00031 00032 00033 /*---------------------------------------------------------------------------*/ 00034 /* 00035 Routine to initialize the noise model by defining the number of parameters 00036 in the noise model, the name of the noise model, and the default values 00037 for the minimum and maximum parameter constraints. 00038 */ 00039 00040 DEFINE_MODEL_PROTOTYPE 00041 00042 MODEL_interface * initialize_model () 00043 { 00044 MODEL_interface * mi = NULL; 00045 00046 00047 /*----- allocate memory space for model interface -----*/ 00048 mi = (MODEL_interface *) XtMalloc (sizeof(MODEL_interface)); 00049 00050 00051 /*----- define constant plus noise model -----*/ 00052 00053 /*----- name of this model -----*/ 00054 strcpy (mi->label, "Constant"); 00055 00056 /*----- this is a noise model -----*/ 00057 mi->model_type = MODEL_NOISE_TYPE; 00058 00059 /*----- number of parameters in the model -----*/ 00060 mi->params = 1; 00061 00062 /*----- parameter labels -----*/ 00063 strcpy (mi->plabel[0], "constant"); 00064 00065 /*----- minimum and maximum parameter constraints -----*/ 00066 mi->min_constr[0] = -100.0; mi->max_constr[0] = 100.0; 00067 00068 /*----- function which implements the model -----*/ 00069 mi->call_func = &noise_model; 00070 00071 00072 /*----- return pointer to the model interface -----*/ 00073 return (mi); 00074 } 00075 00076 00077 /*---------------------------------------------------------------------------*/ 00078 /* 00079 Routine to calculate the time series which results from the constant plus 00080 noise model and model parameters. 00081 00082 Definition of model parameters: 00083 00084 gn[0] = constant coefficient 00085 */ 00086 00087 void noise_model 00088 ( 00089 float * gn, /* parameters for noise model */ 00090 int ts_length, /* length of time series data */ 00091 float ** x_array, /* independent variable matrix */ 00092 float * ts_array /* estimated noise model time series */ 00093 ) 00094 00095 { 00096 int it; /* time index */ 00097 float fval; /* time series value at time t */ 00098 00099 00100 for (it = 0; it < ts_length; it++) 00101 { 00102 fval = gn[0]; 00103 ts_array[it] = fval; 00104 } 00105 00106 } 00107